아래는 우분투 페도라 등 X-Windows 계열 리눅스 Desktop 환경에서 런쳐아이콘 (윈도우에서 바로가기에 해당) 생성하는 방법이다.
예를 들면 이클립스 Linux 버전을 다운받은 후 실행아이콘이 없어서 매번 console 로 실행해야 하는 불편함을 제거 할 수 있다.
이클립스 실행 아이콘 생성을 예로 들면 아래와 같은 과정을 따라하면 된다.
1. 아래 명령어로 vi 편집 창을 연다.
$ vi /usr/share/applications/eclipse.desktop
2. 아래 텍스트를 입력 한다.
(vi 사용법을 모르시는 분들은 다른 Editor 등을 통해 편집하셔도 당연히 됩니다.)
(eclipse 의 설치 경로는 "/opt" 라고 가정 합니다.)
---------------- 아래 ----------------
[Desktop Entry]
Name=eclipse
Type=Application
Exec=/opt/eclipse/eclipse
Icon=/opt/eclipse/icon.png
---------------- 아래 끝 --------------
3. 패널등의 검색화면에서 eclipse 를 타이핑 하면 실행 아이콘을 볼 수 있다.
2018년 5월 25일 금요일
톰캣의 원리? - 작성중
"추상화 시켜서 하나하나 이해해 나가는데 효율적이다.
그렇다고 물론 무조건적으로 추상화 시키게 답은 아니다.
하층 구조를 어느 정도 염두하면서 추상화해 이해할 필요가 있다."
일단,
- 클라이언트에서 서버로의 html,jsp,servlet 페이지 호출
- 서버의 웹서버 프로그램(apache)에서 처음으로 처리
html페이지 요청일 경우, 그대로 클라이언트에게 html페이지 전송
html페이지가 아닌 jsp 나 servelt 일 경우, 웹컨테이너(tomcat) 에게 넘겨서 처리
- 웹컨테이너는 "jsp or servlet -> html" 변환시켜 웹서버 프로그램에게 다시 넘김
- 웹서버 프로그램은 변환된 html페이지를 클라이언트에게 전송
- 먼저 client 가 http://localhost:8080/index.jsp를 쳐서 요청을 한다고 하면
- 웹서버 프로그램(apache)에서 html이 아니기 때문에 jsp를 해석하기 위해서 tomcat의 common/lib 폴더를 뒤져서
해당 jsp파일을 servlet로 컴파일 합니다.
- 한번 컴파일 된 jsp파일은 다시 요청이 될 때, 변경사항이 없으면
기존에 컴파일된 서블릿을 그대로 사용하고 변동사항이 있으면 다시 컴파일하게됩니다.
- 오히려 JAVA application에서 컴파일 작업을 일일이 해주는것 대신에
jsp page를 호출하면 container가 자동으로 컴파일 작업을 해주는 것입니다.
텍스트파일 인코딩 바꾸기
for l in ./*.*
do
iconv -c -f euc-kr -t utf-8 $l > $l.tmp
mv $l.tmp $l
done
chmod -x conver.sh//파일 권한변경
sh conver.sh//쉘스크립트 파일 실행
우분투에서 오른쪽 alt키한와 한/영키 동작 문제
오른쪽 alt키와 한/영키가 같이 있는 노트북의 경우, 한/영키가 오른쪽 alt기능을 하므로 번거로운 현상이 발생한다.
아래 명령어중 하나로 해결 가능하다.
xmodmap -e 'keycode 108 = Hangul'
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'remove mod1 = Hangul'
하지만 Lenovo-s405 모델의 경우
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'keycode 108 = Hangul'
두 명령을 연속으로 입력해야 잘 동작함.
아래 명령어중 하나로 해결 가능하다.
xmodmap -e 'keycode 108 = Hangul'
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'remove mod1 = Hangul'
하지만 Lenovo-s405 모델의 경우
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'keycode 108 = Hangul'
두 명령을 연속으로 입력해야 잘 동작함.
압축한 파일들 파일명 깨짐 현상을 방지
# 윈도우에서 압축한 파일 우분투에서 풀 때
unzip -O CP949 압축파일명
주의: 대문자 O 입니다 숫자 0 아닙니다.
# 그외 나머지의 경우 7zip을 사용
sudo apt-get install p7zip
7zr a [파일명.7z] [폴더명]
7zr a hello.7z hello더
7z a basic.7z basic
7z e basic.7z
unzip -O CP949 압축파일명
주의: 대문자 O 입니다 숫자 0 아닙니다.
# 그외 나머지의 경우 7zip을 사용
sudo apt-get install p7zip
7zr a [파일명.7z] [폴더명]
7zr a hello.7z hello더
7z a basic.7z basic
7z e basic.7z
우분투 런처 아이콘 생성하기
출처 : http://eiggerc.blogspot.kr/2012/08/eclipse.html
공식 사이트에서 받은 이클립스는 런처에 아이콘이 없어서 실행 하기 불편 하다
그래서 만들어 주면 되는데
공식 사이트에서 다운받은 이클립스를 런처 패널에 추가하는 방법은
(실행 파일 런처에 아이콘 추가)
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon= /home/chs/develop/eclipse/icon.xpm 아이콘 경로 설정
Exec= /home/chs/develop/eclipse/eclipse 실행 파일 경로 설정
Terminal=false
Categories=Development;IDE;Java;
*.desktop 으로 저장 ex) eclipse.desktop
저장된 파일을 런처로 드래그 하면 실행 아이콘 생성
공식 사이트에서 받은 이클립스는 런처에 아이콘이 없어서 실행 하기 불편 하다
그래서 만들어 주면 되는데
공식 사이트에서 다운받은 이클립스를 런처 패널에 추가하는 방법은
(실행 파일 런처에 아이콘 추가)
[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon= /home/chs/develop/eclipse/icon.xpm 아이콘 경로 설정
Exec= /home/chs/develop/eclipse/eclipse 실행 파일 경로 설정
Terminal=false
Categories=Development;IDE;Java;
*.desktop 으로 저장 ex) eclipse.desktop
저장된 파일을 런처로 드래그 하면 실행 아이콘 생성
리눅스 파일 인코딩 변환 명령어
# *.c 인 파일만 변경할 경우
find . -name '*.c' -type f -execdir iconv -f euckr -t utf-8 {} -o {}.tmp \; -execdir mv -f {}.tmp {} \;
find . -name '*.c' -type f -execdir iconv -f euckr -t utf-8 {} -o {}.tmp \; -execdir mv -f {}.tmp {} \;
Linux On USB : USB에서 리눅스 시스템 구축
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@
@@ TINY LFS ON USB
@@
@@ Host : ubuntu 13.04 64bit
@@ Target : linux kernel 3.11.0 / busybox-1.21.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
참고:
http://wiki.kldp.org/wiki.php/LinuxBasedOnUSB-StorageDevice
http://blog.naver.com/skkong89?Redirect=Log&logNo=90036081183
사설:
처음에 위 두 사이트를 참고하여 syslinux를 부트로더로 사용하여 시스템을 만들어보려고 3일동안 머리를 싸맸지만 실패했다.
현재 syslinux의 최신 버전은 6.01인데 최신 pc에서는 잘 돌아가질 않는다. (물론 qemu에서는 돌아갔다.)
게다가 검색하다가 알게된 사실은 syslinux는 최신 하드웨어드를 잘 지원하지 않는다고 한다.
속도면에서는 grub보다 syslinux가 빠르다는 의견이 있어서 syslinux를 사용해보려 했으나, 결국은 grub으로 구축하였다.
뭐 어쨌거나, 앞으로 디스크포맷형식이 msdos에서 GPT로 바뀔것이고 결국은 GPT를 잘 지원하고 있는 GRUB으로 하는게 맞는 일인것도 같다.
밑으로 진행되는 설명에서, 쉘명령어의 경우에는 "###", "###" 으로 감쌌으며, 파일에 들어갈 내용의 경우에는 "<<<", ">>>" 으로 감쌌다.
그리고 주석은 "" 으로 처리 하였다.
// [1] 가상 루트 파일 시스템 이미지 생성
###
sudo su;
mkdir USBLFS;
cd USBLFS;
dd if=/dev/zero of=rootfs bs=1M count=100;
mkfs.ext2 -F -i 2000 rootfs;
mkdir rootfs_loop;
mount -o loop rootfs rootfs_loop/;
###
// [2] Busybox 설치
###
wget http://www.busybox.net/downloads/busybox-1.21.1.tar.bz2;
tar xvfz busybox-1.21.1.tar.bz2;
cd busybox-1.21.1;
make menuconfig;
make;
make CONFIG_PREFIX=../rootfs_loop install;
###
아래 옵션을 적용하여 Busybox패키지의 실행파일들 static으로 컴파일하여 [3]번 과정을 생략 하도록 한다.
"Busybox Settings -> Build Options -> [*] Build BusyBox as a static binary(no shared libs)"
// [3][Option] Busybox가 참조하는 라이브러리 복사 (아래 파일들은 정확하지 않다)
###
cd bin;
ldd busybox;
linux-gate.so.1 => (0xffffe000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7ef9000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7ed6000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7dba000)
/lib/ld-linux.so.2 (0xb7f31000)
cd ..;
mkdir -p lib/tls;
cp /lib/tls/libcrypt.so.1 lib/tls/;
cp /lib/tls/libm.so.6 lib/tls/;
cp /lib/tls/libc.so.6 lib/tls/;
cp /lib/ld-linux.so.2 lib/;
###
// [4] 나머지 루트 파일 시스템 디렉토리 생성
1) etc
###
mkdir etc;
vi etc/fstab;
###
<<<
proc /proc proc defaults 0 0
>>>
###
vi etc/inittab;
###
<<<
::sysinit:/etc/init.d/rcS
tty1::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
>>>
###
mkdir etc/init.d/;
vi etc/init.d/rcS;
###
<<<
#! /bin/sh
/bin/mount -a
>>>
###
chmod ugo+x etc/init.d/rcS
###
2) dev
###
mkdir dev;
vi mkdev.sh;
###
<<<
#! /bin/sh
#
# makedev.sh - creates device files for a busybox boot floppy image
# we do our work in the dev/ directory
if [ -z "$1" ]; then
echo "usage: `basename $0` path/to/dev/dir"
exit 1
fi
cd $1
# miscellaneous one-of-a-kind stuff
mknod console c 5 1
mknod full c 1 7
mknod kmem c 1 2
mknod mem c 1 1
mknod null c 1 3
mknod port c 1 4
mknod random c 1 8
mknod urandom c 1 9
mknod zero c 1 5
ln -s /proc/kcore core
# IDE HD devs
# note: not going to bother creating all concievable partitions; you can do
# that yourself as you need 'em.
mknod hda b 3 0
mknod hdb b 3 64
mknod hdc b 22 0
mknod hdd b 22 64
# loop devs
for i in `seq 0 7`; do
mknod loop$i b 7 $i
done
# ram devs
for i in `seq 0 9`; do
mknod ram$i b 1 $i
done
ln -s ram1 ram
# ttys
mknod tty c 5 0
for i in `seq 0 9`; do
mknod tty$i c 4 $i
done
# virtual console screen devs
for i in `seq 0 9`; do
mknod vcs$i b 7 $i
done
ln -s vcs0 vcs
# virtual console screen w/ attributes devs
for i in `seq 0 9`; do
mknod vcsa$i b 7 $i
done
ln -s vcsa0 vcsa
>>>
###
sh mkdev.sh ./dev/
###
3) proc
###
mkdir proc;
###
// [5] 루트 파일 시스템 이미지 생성
###
umount rootfs_loop;
gzip -9 rootfs;
###
// [6] 커널 이미지 생성
# make menuconfig
Block devices
[*] Loopback device support
...
[*] Network block device support
[*] RAM disk support
(4096) Default RAM disk size (kbytes)
[*] Inital RAM disk (initrd) support
# make bzImage
// [7] USB 포맷
###
fdisk -l;
umount /dev/sdc1;
parted /dev/sdc;
mklabel;
msdos;
mkpartfs
primary
ext2
1
-1
###
// [8] USB에 파일 복사
###
mount /dev/sdc1 /mnt;
mkdir /mnt/boot;
cp bzImage /mnt/boot;
cp rootfs.gz /mnt/boot;
###
// [9] GRUB 설치
###
mkdir /mnt/boot/grub;
vi /mnt/boot/grub/grub.cfg;
###
<<<
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod ext2
set root=(hd0,msdos1)
menuentry "Linux 3.11.0" {
linux /boot/bzImage root=/dev/ram0 rw
initrd /boot/rootfs.gz
}
>>>
###
grub-install /dev/sdc --boot-directory=/mnt/boot
umount /mnt
###
@@
@@ TINY LFS ON USB
@@
@@ Host : ubuntu 13.04 64bit
@@ Target : linux kernel 3.11.0 / busybox-1.21.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
참고:
http://wiki.kldp.org/wiki.php/LinuxBasedOnUSB-StorageDevice
http://blog.naver.com/skkong89?Redirect=Log&logNo=90036081183
사설:
처음에 위 두 사이트를 참고하여 syslinux를 부트로더로 사용하여 시스템을 만들어보려고 3일동안 머리를 싸맸지만 실패했다.
현재 syslinux의 최신 버전은 6.01인데 최신 pc에서는 잘 돌아가질 않는다. (물론 qemu에서는 돌아갔다.)
게다가 검색하다가 알게된 사실은 syslinux는 최신 하드웨어드를 잘 지원하지 않는다고 한다.
속도면에서는 grub보다 syslinux가 빠르다는 의견이 있어서 syslinux를 사용해보려 했으나, 결국은 grub으로 구축하였다.
뭐 어쨌거나, 앞으로 디스크포맷형식이 msdos에서 GPT로 바뀔것이고 결국은 GPT를 잘 지원하고 있는 GRUB으로 하는게 맞는 일인것도 같다.
밑으로 진행되는 설명에서, 쉘명령어의 경우에는 "###", "###" 으로 감쌌으며, 파일에 들어갈 내용의 경우에는 "<<<", ">>>" 으로 감쌌다.
그리고 주석은 "" 으로 처리 하였다.
// [1] 가상 루트 파일 시스템 이미지 생성
###
sudo su;
mkdir USBLFS;
cd USBLFS;
dd if=/dev/zero of=rootfs bs=1M count=100;
mkfs.ext2 -F -i 2000 rootfs;
mkdir rootfs_loop;
mount -o loop rootfs rootfs_loop/;
###
// [2] Busybox 설치
###
wget http://www.busybox.net/downloads/busybox-1.21.1.tar.bz2;
tar xvfz busybox-1.21.1.tar.bz2;
cd busybox-1.21.1;
make menuconfig;
make;
make CONFIG_PREFIX=../rootfs_loop install;
###
아래 옵션을 적용하여 Busybox패키지의 실행파일들 static으로 컴파일하여 [3]번 과정을 생략 하도록 한다.
"Busybox Settings -> Build Options -> [*] Build BusyBox as a static binary(no shared libs)"
// [3][Option] Busybox가 참조하는 라이브러리 복사 (아래 파일들은 정확하지 않다)
###
cd bin;
ldd busybox;
linux-gate.so.1 => (0xffffe000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7ef9000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7ed6000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7dba000)
/lib/ld-linux.so.2 (0xb7f31000)
cd ..;
mkdir -p lib/tls;
cp /lib/tls/libcrypt.so.1 lib/tls/;
cp /lib/tls/libm.so.6 lib/tls/;
cp /lib/tls/libc.so.6 lib/tls/;
cp /lib/ld-linux.so.2 lib/;
###
// [4] 나머지 루트 파일 시스템 디렉토리 생성
1) etc
###
mkdir etc;
vi etc/fstab;
###
<<<
proc /proc proc defaults 0 0
>>>
###
vi etc/inittab;
###
<<<
::sysinit:/etc/init.d/rcS
tty1::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
>>>
###
mkdir etc/init.d/;
vi etc/init.d/rcS;
###
<<<
#! /bin/sh
/bin/mount -a
>>>
###
chmod ugo+x etc/init.d/rcS
###
2) dev
###
mkdir dev;
vi mkdev.sh;
###
<<<
#! /bin/sh
#
# makedev.sh - creates device files for a busybox boot floppy image
# we do our work in the dev/ directory
if [ -z "$1" ]; then
echo "usage: `basename $0` path/to/dev/dir"
exit 1
fi
cd $1
# miscellaneous one-of-a-kind stuff
mknod console c 5 1
mknod full c 1 7
mknod kmem c 1 2
mknod mem c 1 1
mknod null c 1 3
mknod port c 1 4
mknod random c 1 8
mknod urandom c 1 9
mknod zero c 1 5
ln -s /proc/kcore core
# IDE HD devs
# note: not going to bother creating all concievable partitions; you can do
# that yourself as you need 'em.
mknod hda b 3 0
mknod hdb b 3 64
mknod hdc b 22 0
mknod hdd b 22 64
# loop devs
for i in `seq 0 7`; do
mknod loop$i b 7 $i
done
# ram devs
for i in `seq 0 9`; do
mknod ram$i b 1 $i
done
ln -s ram1 ram
# ttys
mknod tty c 5 0
for i in `seq 0 9`; do
mknod tty$i c 4 $i
done
# virtual console screen devs
for i in `seq 0 9`; do
mknod vcs$i b 7 $i
done
ln -s vcs0 vcs
# virtual console screen w/ attributes devs
for i in `seq 0 9`; do
mknod vcsa$i b 7 $i
done
ln -s vcsa0 vcsa
>>>
###
sh mkdev.sh ./dev/
###
3) proc
###
mkdir proc;
###
// [5] 루트 파일 시스템 이미지 생성
###
umount rootfs_loop;
gzip -9 rootfs;
###
// [6] 커널 이미지 생성
# make menuconfig
Block devices
[*] Loopback device support
...
[*] Network block device support
[*] RAM disk support
(4096) Default RAM disk size (kbytes)
[*] Inital RAM disk (initrd) support
# make bzImage
// [7] USB 포맷
###
fdisk -l;
umount /dev/sdc1;
parted /dev/sdc;
mklabel;
msdos;
mkpartfs
primary
ext2
1
-1
###
// [8] USB에 파일 복사
###
mount /dev/sdc1 /mnt;
mkdir /mnt/boot;
cp bzImage /mnt/boot;
cp rootfs.gz /mnt/boot;
###
// [9] GRUB 설치
###
mkdir /mnt/boot/grub;
vi /mnt/boot/grub/grub.cfg;
###
<<<
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod ext2
set root=(hd0,msdos1)
menuentry "Linux 3.11.0" {
linux /boot/bzImage root=/dev/ram0 rw
initrd /boot/rootfs.gz
}
>>>
###
grub-install /dev/sdc --boot-directory=/mnt/boot
umount /mnt
###
(미흡)리눅스에서 태스크, 프로레스, 스레드
커널 레벨에서는 모든 실행 흐름을 태스크(Task)로 정의하고 다룬다.
유저 레벨에서는 기준에 따라 프로세스, 스레드로 나누어 생각할 수 있다.
fork()는 부모프로세스(fork()를 호출한 프로세스)의 메모리상태와 레지스터상태를 그대로 copy-on-write 방식으로 복사하여 자식프로세스를 만든다.(copy-on-wirte방식은 최근에 개선된 fork()의 기능이다.)
반면에 스레드로 생성된 프로세스는 스택을 제외 하고 부모 프로세스와 상당부분을 공유하므로, 생성 속도가 fork에 비해서 빠르다.
*context : 태스크의 실행흐름과 관련있는 레지스터값의 집합
유저 레벨에서는 기준에 따라 프로세스, 스레드로 나누어 생각할 수 있다.
fork()는 부모프로세스(fork()를 호출한 프로세스)의 메모리상태와 레지스터상태를 그대로 copy-on-write 방식으로 복사하여 자식프로세스를 만든다.(copy-on-wirte방식은 최근에 개선된 fork()의 기능이다.)
반면에 스레드로 생성된 프로세스는 스택을 제외 하고 부모 프로세스와 상당부분을 공유하므로, 생성 속도가 fork에 비해서 빠르다.
*context : 태스크의 실행흐름과 관련있는 레지스터값의 집합
vdi mount
# VBoxManage clonehd xxx_2003.vdi dump -variant Fixed
0%..10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 1c63f183-3dc4-46d3-9357-a161abe4c007
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
# hexdump -C -v dump | grep -i ntfs
00012e00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
^C
# mount -o loop,offset=0x00012e00,umask=000 -o ro dump tmp/
# ls tmp
=> 폴더 내용이 보인다.
0%..10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 1c63f183-3dc4-46d3-9357-a161abe4c007
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
# hexdump -C -v dump | grep -i ntfs
00012e00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
^C
# mount -o loop,offset=0x00012e00,umask=000 -o ro dump tmp/
# ls tmp
=> 폴더 내용이 보인다.
Gnome ubuntu 에서 root 로그인 추가
sudo passwd root
sudo sh -c 'echo "greeter-show-manual-login=true" >> /etc/lightdm/lightdm.conf'
sudo sh -c 'echo "greeter-show-manual-login=true" >> /etc/lightdm/lightdm.conf'
리눅스에서 파일명 인코딩 변환
리눅스에서 파일명/디렉토리명에 대한 인코딩 변환(euc-kr과 utf-8 변환 등)은 convmv라는 프로그램을 이용하여 수행할 수 있다. 사용방법은 파일 내용에 대한 인코딩 변환에 사용되는 iconv와 유사하다.
# convmv --notest -f euc-kr -t utf-8 -r 디렉토리명
convmv는 yum을 이용하여 다음과 같이 설치하면 된다.
# yum install convmv
# convmv --notest -f euc-kr -t utf-8 -r 디렉토리명
convmv는 yum을 이용하여 다음과 같이 설치하면 된다.
# yum install convmv
우분투 10.04 버전 시작프로그램, 키보드 쇼트컷 커맨드 입력관련 버그
sh -c "sleep 0.02; gnome-screenshot --area"
약간 실행전 갭을 줌으로써 해결 가능
약간 실행전 갭을 줌으로써 해결 가능
페도라20 nabi 설치
# 참고
https://wiki.kldp.org/wiki.php/nabi
http://jabcholove.tistory.com/158
http://blog.daum.net/_blog/BlogTypeView.do?blogid=03lpI&articleno=15651560&categoryId=658837®dt=20130216123329
# 1 - 기존거 지우기
su
yum erase ibus ibus-hangul libhangul
yum install glibc-devel gcc cpp gtk2-devel
yum groupinstall korean-support
# 2 - libhangul 0.1.0 설치하기
./configure --prefix=/usr
make
make install
설치되었는지 확인
pkg-config --list-all | sort | grep libhangul
만약 리스트에 libhangul이 안나와있을경우 아래명령 고고
export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
다시 확인 명령해보고 libhangul이 안나온다면 libhangul.pc 파일의 위치를 찾아내서 위와같은명령으로 응용해서 위치를 잡아줘야합니다. 그래야 나비 설치할때 오류가 안납니다.
# 3 - nabi 설치하기
./configure --prefix=/usr
make
make install
# 4 - 나비인식시키기
root 를 해제하고 진행
/etc/sysconfig/i18n 파일이 있지만, 여기에 nabi 설정을 저장해도 적용되지 않는다.
~/.bash_profile에
export XIM=nabi
export XMODIFIERS="@im=nabi"
export XIM_PROGRAM=/usr/bin/nabi
export GTK_IM_MODULE=xim
을 입력하면, 다음에 로그인 할 때 한글을 이용할 수 있다
# 5 - 시작프로그램등록
# 6 - 라이브러리 이동
sudo cp /usr/lib/libhangul* /usr/lib64/
https://wiki.kldp.org/wiki.php/nabi
http://jabcholove.tistory.com/158
http://blog.daum.net/_blog/BlogTypeView.do?blogid=03lpI&articleno=15651560&categoryId=658837®dt=20130216123329
# 1 - 기존거 지우기
su
yum erase ibus ibus-hangul libhangul
yum install glibc-devel gcc cpp gtk2-devel
yum groupinstall korean-support
# 2 - libhangul 0.1.0 설치하기
./configure --prefix=/usr
make
make install
설치되었는지 확인
pkg-config --list-all | sort | grep libhangul
만약 리스트에 libhangul이 안나와있을경우 아래명령 고고
export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
다시 확인 명령해보고 libhangul이 안나온다면 libhangul.pc 파일의 위치를 찾아내서 위와같은명령으로 응용해서 위치를 잡아줘야합니다. 그래야 나비 설치할때 오류가 안납니다.
# 3 - nabi 설치하기
./configure --prefix=/usr
make
make install
# 4 - 나비인식시키기
root 를 해제하고 진행
/etc/sysconfig/i18n 파일이 있지만, 여기에 nabi 설정을 저장해도 적용되지 않는다.
~/.bash_profile에
export XIM=nabi
export XMODIFIERS="@im=nabi"
export XIM_PROGRAM=/usr/bin/nabi
export GTK_IM_MODULE=xim
을 입력하면, 다음에 로그인 할 때 한글을 이용할 수 있다
# 5 - 시작프로그램등록
# 6 - 라이브러리 이동
sudo cp /usr/lib/libhangul* /usr/lib64/
Installing Quartus on a 64-bit Linux system
yum install libXext.i686 freetype.i686 fontconfig.i686 libpng.i686 libSM.i686
If you can't get window which is made by hot-key
== /usr/bin/lxterminal2 ========================
1 lxterminal
2 python getfocus.py
==========================================
== ~/getfocus.py ============================
1 import os
2 import subprocess
3 batcmd="xdotool search lx"
4 result = subprocess.check_output(batcmd, shell=True)
5 result = result.split('\n')
6 result.sort()
7 target = result[len(result)-1]
8 cmd = "xdotool windowactivate " + target
9 os.system(cmd)
==========================================
and link hot-key command with "lxterminal2"
1 lxterminal
2 python getfocus.py
==========================================
== ~/getfocus.py ============================
1 import os
2 import subprocess
3 batcmd="xdotool search lx"
4 result = subprocess.check_output(batcmd, shell=True)
5 result = result.split('\n')
6 result.sort()
7 target = result[len(result)-1]
8 cmd = "xdotool windowactivate " + target
9 os.system(cmd)
==========================================
and link hot-key command with "lxterminal2"
Linux tar utility split compress/decompress (리눅스 분할 압축)
1. Splite compress (분할 압축)
tar czvf - source | split -b 100m - source.tar.gz
2. Decompress (압축 해제)
cat source.tar.gz* | tar xzvf -
tar czvf - source | split -b 100m - source.tar.gz
2. Decompress (압축 해제)
cat source.tar.gz* | tar xzvf -
피드 구독하기:
글 (Atom)