3편까지 해서 모두 잘 따라오셨다면 이제 X를 설치할 차례다. 필자의 경우, X를 쓰지않고 콘솔에서 모든 걸 다 해결하기 위하여 프레임버퍼, 부트스플래쉬 등등 여러가지 유틸리티를 깔아봤긴 했지만 일단은 한글을 읽고쓰는 것이 불가능하다는 큰 단점 때문에 일단 X를 빌드하긴 했다.

또다른 X 빌드의 이유 중 하나는, 인터넷 공유기의 암호가 WPA로 되어있는데 WPA 접속을 가능하게끔 해주는 패키지의 속성에 반드시 X를 빌드해야만 했다. USE="-X"를 넣고해도 소용이 없었다. 그래서 무선랜도 가능해야했고 혹시나 모를 비상을 위해서 X와 KDE로 빌드를 시작했다.

사실, X-Windows 설치에 비하면 지금까지 해왔던건 아무 것도 아니다. 그래픽카드마다 드라이버 잡아줘야하고 xorg.conf 파일 세팅해줘야하고 엄청난 컴파일 시간을 보내야하고... 그나마 96년도부터 리눅스를 써온 필자로서는 xorg.conf 파일의 설정이 그리 어렵게 느껴지진 않았지만, 처음 해보시는 분들은 아마 크게 당황하실 거다. 게다가 필자가 처음 젠투를 설치했었던 대략 2004년도 당시의 컴퓨터로는 젠투 기본시스템+X+GNOME+Firefox까지 빌드하는데 무려 일주일씩 걸렸었다. 그런데 그 짓을 무려 7번이나 했다.

아마 X를 빌드하다보면 2-3개 패키지 정도는 에러내면서 설치를 멈출거다. 그 정도는 사실 에러메시지 보면서 해결해내야한다. 필자 역시 프로그래머는 아니지만 에러메시지 보고 대략 추측으로 때려서 해결한 문제가 대부분이다. 또한, 젠투에서 패키지 빌드하는 도중에 뱉어내는 에러들은 대부분 USE 플래그에서 일어난다. 일부 문제의 경우는 ACCEPT_KEYWORDS에서 생기는 경우도 있지만 대부분은 USE에서 난다.
단순한 에러의 예를 들자면
메시지: Configure: error: --zip not found in $PATH
이러한 메시지가, 길고 긴 emerge 에러메시지 중간에 위치하는데, 이런걸 들여다보면 해결이 보이지 않는가?
emerge zip 하면 해결이 되는 거다.

조금 더 해보자.
phpmyadmin을 빌드하다 에러를 냈다. phpmyadmin이, 뭔가를 컴파일해서 만들어내는 패키지가 아님에도 불구하고 에러를 냈다. 처음에는 이해가 되질 않았다. 사실 지금도 이해는 안가긴 하고 사이트가서 직접 파일들 다운받아다 압축만 풀면 해결되는 문제니까 그럴 수 있었지만 그냥 해결을 하고싶었다.
에러메시지가 길긴 하지만 올려본다.

뭐 솔직히 나도 무슨 말인지는 모른다. 나도 프로그래머가 아니니까.
다만 눈길이 가는 부분이 있다면
 * dev-lang/php-5.2.11-r1 needs to be re-installed with all of the following
 * USE flags enabled:
 * 
 * crypt ctype pcre session unicode
 * 
 * as well as any of the following USE flags enabled:
 * 
 * mysql or mysqli if using dev-lang/php-5
이 부분이다.
해석을 해보면, "아래의 USE Flags를 활성화시켜서 php를 재설치해야합니다, crypt, ctype pcre session unicode"
"또한 만약 php5를 사용 중이라면 다음 패키지도 USE 플래그를 활성화시켜야합니다. mysql 또는 mysqli"

간단하다. USE="crpt, ctype pcre session unicode" emerge -avq php mysql 했다.
그리고나서 emerge phpmyadmin 했다. 설치가 잘 됐다.

X 설치를 준비하자. 일단 사운드 데몬을 설치한다.
# emerge alsa-utils
# alsaconf 사운드카드를 잡아주는 유틸리티이다.
# rc-update add alsasound boot 아마도 boot에 등록하는 첫 데몬이 아닐까 싶다.
# gpasswd -a USERNAME audio USERNAME에 각자의 로긴아이디를 넣는다. 사운드를 이용하게해준다
# emerge madplay mpg123 gstreamer 콘솔에서 사용할 수 있는 mp3 플레이어를 설치한다.
# env-update;source /etc/prpofile
# mpg123 test.mp3 MP3 파일 하나를 가져다 테스트 해본다.
# emerge pmount 일반유저로서 USB 저장장치 등을 마운트/마운트해제 할 수 있게 해주는 툴이다.

다음  avahi를 설치해야하는데, 사실 이거없이 X 이용하는데는 지장이 없겠지만 필자 생각으로는 이걸 먼저 해야할 것 같다. 그래야 후에 문제가 생기지 않을 것 같다. 다만 avahi에 걸려있는 의존적인 패키지들이 많기 때문에 이거 빌드하는데 시간이 꽤 걸릴 거다.
# emerge avahi

다 됐으면 X를 빌드하자. X는 데스크탑 매니져를 빌드하면 당연히 의존관계에 있기 때문에 같이 딸려오니, 데스크탑 매니져를 설치하자. 필자는 KDE를 설치했으므로, KDE를 기준으로 설명한다. 혹시모르니까 X가 빌드되어있는지 확인해보자.
# emerge -pv xorg-server

노트북 쓰신다면 마우스패드 (시냅틱) 드라이버를 설치해야한다. 이거 안하면 정말 피곤하다. 마우스가 지멋대로 움직이는데, 아마 노트북을 집어던지실지도 모른다.
# emerge -avq xserver-xorg-input-synaptics

-pv는 뭐뭐 설치될지 패키지 리스트만 물어보고 끝나지만 -av를 붙여주면 리스트를 보여주고 설치할 건지 아닐건지를 물어본다. 필자는 명령어를 두 번 타이핑할 일이 없는 -av가 개인적으로 더 편하다.
 일단 USE 플래그 먼저 점검을 해야하는데 KDE를 설치할 때 -gtk를 하지말자. 한글입력기를 설치해야하는데, ibus, scim-qtimm 등이 작동이 잘 안된다. 적어도 필자의 시스템에서는 그랬다. 둘다 전혀 작동이 되질않았고 결국은 국산 nabi를 이용해서 해결을 봤다. 근데 nabi는 gtk 어플이기 때문에 -gtk를 넣으면 안된다.
먼저 어떤 패키지들이 어떤 속성을 갖고있는지 체크를 해보자.
# emerge -pv kdebase-meta

kdebase-meta라는 패키지는, 패키지 이름이 아니라 KDE의 기본패키지들의 목록을 갖고있는 패키지다. 따라서 kdebase-meta로 -pv를 날려주면 KDE의 기본시스템에 어떤 패키지들이 설치되는지를 보여준다. 내용을 보시고 만약 본인이 (-)를 해준 옵션이 있다면 USE를 수정해주자. 그런 다음 빌드를 시작하자.
# emerge -q kdebase-meta

-q 옵션은 빌드하면서 나타내는 컴파일러 메시지를 화면에 뿌려주지 않는다. 조용히 빌드해주고 에러가 났을시만 메시지를 뿌려준다. 전기세라도 좀 아낄겸 Alt+F2로 다른 콘솔로 넘어가 setterm -blank 3을 해주자. 키보드 입력이 없을시 3분 후에 모니터를 꺼준다.

X까지 같이 빌드하기 때문에 꽤 오래 걸릴거다. 밤에 시작해서 아침에 자고일어나면 끝나있을 거다. 이제 나머지 KDE패키지들을 빌드한다. 역시 -pv를 줘서 USE플래그를 확인한다. 그리고 빌드를 시작한다.
# emerge -pv kde-meta
# emerge -q kde-meta

한 가지 덧붙이자면, meta라는 패키지 자체가 뭔가 있는 패키지가 아니라 관련패키지의 목록을 갖고있는 패키지이기 때문에 컴파일하다 중간에 에러내면서 멈추면, 다시 수정하고 emerge kde-meta를 했다간 이미 컴파일이 끝난 패키지도 다시 다 하는 것을 볼 수 있다. 이것은, emerge가 해당 패키지가 빌드가 됐는지 안되는지에 대한 여부를 판별하지 않기 때문이고 또한, 해당목록에 존재하는 패키지를 다시 설치하려고 하기 때문에다. 말로 설명하기가 어려운데, 해보시면 이해가 가실 거다. 그나마 다행인 것은 kdebase-meta는 패키지가 몇 개 안된다.

kde-meta는 아주 많다. 끝나고나면 패키지를 꼭 적용해주고 xorg.conf를 설정해야한다.
# env-update; source /etc/profile
# Xorg -configure

이제 ls /root를 하면 못보던 파일 하나가 있을 거다. Xorg가 자동으로 설정을 잡아서 내놓은 파일인데 이것을 테스트삼아서 X를 띄워보고, 잘 뜨면 이 파일을 그대로 쓰면 되겠다. 혹시 모르니까, 다른 컴으로부터 루트로 ssh에 접속해있자. 이거 실행하고나면 키보드가 안먹을 수도 있다. 다운된 건 아니다. 키보드가 응답을 안하는데, 이유는 잘 모르겠다. 필자의 시스템에만 한정된 현상일 수도 있다.
# X -config /root/xorg.con.new

하고나면 뭔가 뜨긴 뜬거 같은데 보이지는 않고, 다시말해 까만화면을 백라이트가 비추고있는 듯한 화면이 뜰거다. 이제 Ctrl+Alt+Back Space를 눌러서 X를 종료하고 xorg.conf 파일을 만들어준다.
키보드와 마우스의 기본적인 움직임 정책파일을 세팅해줘야한다.
# cp /usr/share/hal/fdi/policy/10osvendor/10-input-policy.fdi /etc/hal/fdi/policy
# cp /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /etc/hal/fdi/policy

/etc/hal/fdi/policy/10-x11-input.fdi 파일을 편집에서 라인 한 줄을 추가시킨다.
<match key="info.capabilities" contains="input.keys">
      <merge key="input.x11_driver" type="string">keyboard</merge>
      <merge key="input.xkb.options" type="string">terminate:ctrl_alt_bksp</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
             string="Linux">
        <merge key="input.x11_driver" type="string">evdev<merge>
      </match>
</match>

이제 kdm을 띄운다. kdm은 root에서만 띄울 수 있다.
# cp /root/xorg.conf.new /etc/X11/xorg.conf
# kdm

X의 설치가 끝났다. 솔직히 중간중간 에러나서 컴파일이 중단된 게 많았는데, 이걸 하나씩 잡아가면서 스크린샷을 찍지 못했던 게 개인적으로 아쉬웠다. 콘솔에서도 스크린샷을 찍을 수 있는 유틸이 있다는 걸 알았다면 더 좋았을텐데 무척 아쉽다.

한글입력기 nabi를 설치하고 로케일을 세팅해줘야한다. 이것은 구글링하시면 수도없이 쏟아져나온다. 다만 한가지 다른 점은 우리는 KDE를 빌드했으므로 GTK_IM_MODULE=nabi 말고도 QT_IM_MODULE=nabi를 추가시켜줘야한다는 점이다.

그외 설치했던 툴로는, fbgrab (콘솔에서 스크린샷을 찍는 툴), links2 (콘솔용 그래픽 웹브라우저) 정도가 있다.
되도록이면 X를 띄우지 않기 위해서 콘솔용 툴들을 구글링을 통해서 많이 접했고 대부분을 설치해서 써봤다. 정말 X 없이도 그런대로 쓸만했었다. 물론 데탑용 컴퓨터로서는 최고의 매킨토시가 있었으니 그런대로 쓸만했었겠지. 참고로 부트스플래시 사용할 때, Grub에 vga=792 옵션 있으면 커널 부팅메시지가 전부 보여서 별로 예쁘지가 않았다. 부트스플래시 사용할거면 차라리 vga 옵션은 꺼주는 게 낫다. 어차피 부트스플래시를 이용한 고해상도 콘솔을 쓸거니까.

젠투용 각종 테마들은 http://gentoo-art.org/ 에서 구할 수 있다.

젠투 설치기를 여기서 끝마치기로 한다.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
이제부터는 시간 오래 걸리고 지루한 것만 남았다.

부트스트랩 과정을 지켜보신 분은 아시겠지만 중간에 gcc를 컴파일하는 과정이 있다. 사실 그거 앉아서 지켜보는 사람이 별로 없을텐데 본인은 아주 이상한 성격이라서 컴파일하는거 아무 뜻도 모르면서 그냥 계속 지켜본다. 일단 부트스트랩이 끝났다는 의미는, 시스템을 설치할 준비가 됐다는 얘기다.

먼저, 컴파일러의 작동을 캐싱해주는 C Cache를 설치하자. 앞서도 잠깐 설명했지만, C 컴파일러가 실행하는 단순/반복 작업에 해당하는 것들을 캐싱을 해서, 다음번 컴파일할 때 더 빨리 컴파일해줄 수 있도록하는 프로그램이다. 아마도, 여러번 컴파일할 일이 있을까 라고 생각하실 분이 계실텐데, 있다. 분명히 생긴다. 그러니까 캐쉬 설치한다고 손해보는 것도 아니니까 그냥 설치하자.  참고로, 컴파일할 때 화면에 나오는 메시지들을 보고싶지 않으면 -q 옵션을 붙이시면 된다.  그러면 패키지당 딱 2줄만 표시한다.
# emerge -q ccache

C Cache에 대한 make.conf 설정은 앞편에서 했으니 링크만 좀 잡아주도록 하자. C Cache가 유저별로 캐싱디렉토리를 저장하게 되어있는데, 어차피 이 글을 보는 분들은 개인적인 컴퓨터에 젠투를 설치하실 분이니 그냥 캐싱을 한 디렉터리에 하도록 하자.

# rm -rf ~/.cache
# ln -s /var/tmp/ccache $HOME/.ccache

이것으로 C Cache의 설정이 완료됐다. 뭔가 하나 컴파일이 끝난 뒤 ccache -s 를 하면 캐시된 상황을 보여줄거다. 뭔가 숫자가 조금이라도 올라가는 것 같으면 작동하고 있는거다.

이제 부트스트랩 과정에서 설치된 패키지들을 적용시키자.
# env-update
# source /etc/profile

사실, env-update를 꼭 해야할만한 패키지들은, 설치가 끝나면 알아서 해주긴 하는데 그래도 혹시 모르니까 하자. 젠투 쓰다보면 저 위의 명령어는 손에 붙는다. 습관적으로 때리게 된다. 
이제 perl을 빌드할 차례다. perl에 의존적인 패키지들을 위해 아래의 명령어를 쳐준다.
# emerge --nodeps -q gdbm libperl perl

내가 설치 중 참고한 http://xprogrammer.tistory.com/40 문서에 의하면, 위의 패키지를 먼저 설치해주지 않으면 나중에 두고두고 후회할 일이 생긴다는데, 나는 저 메시지보고 바로 설치를 해버려서 무슨 후회할 일이 생기는지는 잘 모르겠다. 실험정신이 투철한 분이 계시면 그냥 건너뛰어보셔도 되겠다. --nodeps는 의존성 관계 무시하고 설치하라는 옵션이다.

설치가 끝난 뒤 패키지를 적용한다.
# env-update
# source /etc/profile

이제 시스템을 설치한다. 듀얼코어/코어2듀어 사용자라고 해도 꽤 걸린다. 특히 글쓴이가 만들어놓은 make.conf 파일을 그대로 쓰시과 eselect의 프로파일에서 GNOME이나 KDE를 선택하셨다면 300개가 넘는 패키지를 컴파일하려고 할거다.  일단, 베이스만 빨리 빌드하시고 싶으시면 다시 프로파일을 1번으로 바꾸시면 된다.  그러면 약 180개 정도의 패키지를 빌드한다.
# emerge -eq system

-e 옵션은 해당 패키지와 의존성 관계된 모든 패키지를 다시 컴파일하는 옵션이다. 보통의 경우는 아마 쓸 일이 없을텐데 CFLAGS를 바꿨다거나 gcc 버젼이 아주 크게 업데이트 됐을 때 이외에는 아마 안쓸거다.
위의 시스템 빌드가 끝나고 나면 아래의 명령어를 입력해서 제대로 설치가 됐는지 확인한다.
# emerge -epv system

뭔가 주르륵 나오는데, 일단 딴건 다 무시하고, 맨 앞에 [ebuild R]이라고 적혀있는지만 확인하자.
만약 [ebuild N] 이라고 적혀있으면, 해당 패키지는 설치가 안됐다는 얘기다. 그런데 여기서 설치안된 패키지 빌드한답시고 -e 붙였다간 시스템 전체를 싸그리 다시 다 컴파일할 거다 (위에 설명한대로). 그러니 설치가 안된건 그냥 개별적으로만 하자. emerge package_name 하시면 되겠다.

시스템을 적용시키자.
# env-update; source /etc/profile

아까 위에서 emerge -epv system 해서 확인하실 때 util-linux, shadow, psmisc, module-init-tools, procps, man, pciutils 설치됐는지 같이 확인하자. 없으면 설치하자.
만약 pciutils 설치하자 에러나면 다음과 같이 한다.
# USE="-zlib" emerge -q pciutils

위의 USE="-zlib" 라는 의미는, pciutils를 설치할 때만 일시적으로 zlib 플래그를 제거하고 설치하겠다는 것을 의미한다. 종종 쓰게될 거다. 특히 GNOME이나 KDE 설치할 때는 플래그들이 많을수록 복잡해지기 때문에 USE 플래그 때문에 설치가 안되는 일이 많이 생긴다. 그 정도는 에러메시지 보고 고칠 정도는 되야된다.
컴퓨터 이름을 정해야한다.
# nano /etc/conf.d/hostname

아마 샘플이 들어있을텐데 형식은 이렇다.
HOSTNAME="computer_name"
저장한다. nano의 저장 후 종료키는 Ctrl+x다. 아마 vi가 설치되어있을테니 원하시는 것으로 하시면 된다.
이제 컴퓨터 도메인 이름을 세팅해야한다.
# vi /etc/hosts

형식은 대강 다음과 같이 하시면 된다.
127.0.0.1     computer_name.computer_domain computer_name localhost

이제 랜카드를 잡아줘야한다. 이거 보시는 분들은 모두 집에서 공유기 쓰실테니 dhcp로 ip를 잡아줘야할거다.
# emerge -q dhcpcd
# rc-update add dhcpcd default

위의 rc-update는 매우 유용하고 편리한 명령어인데, 부팅시 시작하는 프로그램들(서버데몬)을 등록/제거해주는 명령어다. rc-update add 하면 등록, delete 제거이다. 뒤의 default는  시작프로그램을 의미하고 boot라고 하면 부팅할 때 윈도우로 치자면 드라이버 로딩하는 것 같은 개념인데 대부분의 데스크탑유저가 boot에 등록할 일은 거의 없을 거다. 어쨌든, 위와 같이 해주고 세팅을 해줘야한다.
# vi /etc/conf.d/net

랜카드가 eth0 이신 분들은 아래와 같이 넣는다.
config_eth0="dhcp"

끝이다. 매우 쉽지 않은가. 이제 0부팅하면서 랜카드가 자동으로 활성화되도록 한다.
# cd /etc/init.d
# ln -s net.lo net.eth0 
# rc-update add net.eth0 default

초반 제일 중요하다고 볼 수 있는 ssh를 설치하자.
# emerge ssh
# rc-update add sshd default

다음 ssh를 사용하려면 일반사용자를 등록하고 패스워드를 정하자.
일단 root 패스워드부터 만들자.

# passwd
# adduser USERNAME -m -d /home/USERNAME -G users,wheel,audio -s /bin/bash
# passwd USERNAME

그 이외 몇가지 필수적인 시스템 툴을 설치하자.
# emerge -q syslog-ng vixie-cron hotplug gentoolkit dbus hald rdate grub

설치가 되는 중간에, Alt+2 키를 눌러 다음 콘솔로 넘어가서 몇가지 작업을 해주자.

# chroot /mnt/gentoo /bin/bash
# env-update (chroot 하고난 다음에는 반드시 해야한다)
# source /etc/profile

먼저 시스템의 시간을 설정하자.
# ln -sf /usr/share/zoneinfo/Pacific/Honolulu /etc/localtime

글쓴이는 지상낙원 하와이에 살아서 호놀룰루로 시간을 맞췄다. 한국 사시는 분들은 Asia/Seoul 하시면 되고, 그외 해외 사시는 분들은 ls /usr/share/zoneinfo 하셔서 해당지역을 /etc/localtime으로 링크해주시면 된다.

이제 fstab 파일을 수정해야한다. 이거 잘못 수정하는 것이 커널패닉의 원인이기 때문에 잘해야한다. 어렵지는 않은데, 파티션에 대한 개념이 안잡혀있으면 어려울 거다.
# vi /etc/fstab

처음 열면
/dev/BOOT     /boot     어쩌구저쩌구
/dev/ROOT     /         어쩌구저쩌구
라고 되어있는데 여기서 BOOT, ROOT이거를 꼭 편집해야한다. 이번 젠투설치하면서 구글링을 수도없이 많이 했는데 이거 그대로 놓고 커널패닉 난다고 질문하는 분 여럿 봤다.
먼저 필자의 fstab이다.

/dev/sda3               /               ext3            noatime         1 1
/dev/sda4               none            swap            sw              0 0
/dev/cdrom              /mnt/cdrom      auto            noauto,ro       0 0
shm                     /dev/shm        tmpfs           nodev,nosuid,noexec    0 0
proc                    /proc           proc            default         0 0

첫번째 부분은 디바이스명이고 두번째 부분은 마운트 포인트, 세번째는 파일시스템 종류, 네번째는 옵션, 마지막은 덤프와 패스 옵션이다.
세번째꺼까지는 아마 필자나 여러분이나 비슷비슷할 거다. 만약 /boot 파티션을 따로 넣어주신 분이라면,
/dev/BOOT              /boot           ext2            noauto,noatime  1 2
정도로 넣어주시면 되겠다. 어디까지나 fstab 예제에서 갖고왔다.
참고로 덤프/패스에서 패스 부분은, 1을 넣으면 마운트 일정횟수 도달시 fsck를 실행해서 파일시스템을 체크하고, 0을 넣으면 검사하지 않는다.

그 다음 1번 콘솔에서 걸어놓은 패키지들의 빌드가 끝났으면 패키지를 등록하고 몇몇을 부팅시 자동으로 실행되게 등록한다.

# env-update;source /etc/profile
# rc-update add syslog-ng default
# rc-update add vixie-cron default
# rc-update add hotplug default
# rc-update add dbus default
# rc-update add rdate default

타임서버와 시간을 맞춘다.
#vi /etc/conf.d/rdate

RDATE_SERVER="gentoo.pool.ntp.org" 대충 이런 식으로 디폴트값이 되어있을텐데 따옴표 안에
"time.bora.net"을 넣자. 참고로, 아까 위에 타임존 링크를 거신 분이라면 해외에 사시는 분들도 보라넷으로 시간동기가 가능하다.
이제 시간을 맞춰주자.
# /etc/init.d/rdate start

아마 한동안은 부팅시 /etc/init.d 혹은 conf.d 등의 시간이 안맞다던가 뭐 파일이 미래에 수정됐다느니하는 메시지를 보실 수도 있다. 근데 rdate를 부팅시 자동으로 뜨게 등록했으니 조금만 쓰다보면 안나올거다.
이제 grub을 설정하자.
mtab을 만들어준다.
# grep -v rootfs /proc/mounts > /etc/mtab

Grub을 설치한다.
# grub-install --no-floppy /dev/sda

여기서 시간 좀 걸릴 수 있다.
# grub --no-floppy /dev/sda

Grub 프롬프트가 나오면 아래와 같이 입력한다.
grub> root (hd0,0)      # 첫번째 파티션이면 0,0이고 두번째 파티션이면 0,1 그리고 세번째 파티션이면 0,2이다.
grub> setup (hd0)      # 첫번째 하드디스크면 hd0이다. 두번째는 당연히 1이다.
grub> quit

이제 Grub이 설치됐다. 설정을 해보자.
# vi /boot/grub/grub.conf

default 0     # 첫번째 메뉴를 기본값으로 한다.
timeout 3    # 부팅메뉴시 자동으로 부팅되도록하는 시간이다. 초단위로 정한다.
splashimage=(hd0,2)/boot/grub/splash.xpm.gz # Grub 메뉴에서 배경그림을 나오게끔 하는 옵션이다. 넣고 싶으신 분은 /boot/grub/에 해당파일이 있는지 확인하고 파일명이 맞는지까지 보자. hd0,2는 첫번째 하드의 3번째 파티션이라는 의미이다. 

title Gentoo Linux
root (hd0,2)
kernel 
initrd
savedefault

title Windows 7
rootnoverify (hd0,1)
makeactive
chainloader +1

이 정도로 간단하게 하시면 되겠다. 리눅스 부팅부분에 kernel 하고 다음 부분을 적어줘야하는데 이건 커널컴파일이 끝나고 적도록 하자. 

이제 마지막 과정이라고 할 수 있는 커널을 컴파일할 차례다. 초보분이시라면 가장 겁나는 부분이 아닐까 싶다. 이런 분들을 위해서 젠투는 알아서 컴파일해주는 도구를 마련해줬다.
일단은 커널 소스부터 받아오자.
# emerge -q gentoo-sources

여기서 커널을 직접 세팅해서 컴파일할 줄 아시는 분들은 (굳이 이 매뉴얼 자체가 필요없으신 분들이겠지만) 바로 /usr/src/linux로 가셔서 진행하시면 되겠고, 모르시는 분들은 커널컴파일 도구로 커널을 설치하자. 직접 컴파일하실 분들에게 참고로 말씀드리자면 genkernel로 커널을 컴파일하는 것과 직접 하는 것은 /boot/grub/grub.conf 파일의 내용이 다름을 유의하자.
# emerge -q genkernel
# genkernel

시간이 꽤 오래 걸린다. 대부분의 컴퓨터에서 부팅할 수 있는 범용적인 커널을 만들기 위해 대부분의 기능들을 모듈로 컴파일해버리기 때문에 꽤 오래 걸린다. 끝나고나면 ls /boot 해서 커널이 설치됐는지 확인하자.
확인이 됐으면 이제 남은 /boot/grub/grub.conf 파일을 수정할 차례다.
커널의 정확한 이름을 적어놓고 grub 파일을 편집한다.
# vi /boot/grub/grub.conf

kernel 다음에다 아래과 같이 입력한다.
kernel /boot/kernel-genkernel-x86-2.6.30-gentoo-r6 root=/dev/ram0 init=/linuxrc \
             ramdisk=8192 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-2.6.30-gentoo-r6

genkernel로 커널을 설치한 분이 아니시라면 아래와 같이 간단하게만 해도 된다. 또간 initrd는 빼도 된다.
/boot/vmlinuz-2.6.31-gentoo-r6 root=/dev/sda3 ro

저장하자.
이제 모든 설치가 다 끝나고 최소한의 리눅스 시스템이 완성됐다. 마지막으로, 설치된 모든 패키지들의 의존성 관계를 검사하자.
# revdep-rebuild
# env-update; source /etc/profile

그외 설치는 다음편에서 계속한다.


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
대망의 make.conf  파일 편집이다. 사실 이것을 지금하지 않아도 부트스트랩을 하는데는 문제가 없지만, CFLAGS 때문에 그냥 미리 다 세팅해놓고 시작했다.

사실 젠투의 최적화는 여전히 말이 많은 부분이고 논쟁의 여지가 있는 부분이다. 따라서, make.conf의 CFLAGS는 별로 의미없는 옵션일지도 모르겠지만 1편에서도 적었듯이 내가 만족스럽다는데 누가 뭐라고 하겠는가. 이 글을 읽는 분이라면, 누가 이래든 저래든 젠투설치 하실 분이라고 생각한다. 젠투 최적화의 허와 실에 대해서 알고싶으신 분은 http://kldp.org/node/81215 글을 읽어보시면 되겠다. 아마 매우 도움이 될 거다.

먼저 필자의 make.conf 파일을 올려서 설명해드린다. 내 블로그를 좀 읽어보신 분은 보셨겠지만 나는 전산학도도, 전산업계에 근무했던 사람이 아니다. 어디까지나 금융권에서 예금이랑 대출상담하면서 직장생활했었고 단지 리눅스는 취미로 했을 뿐이다 (2014년 9월 개정하는 현재는 전산업계에 근무하고 있다).

1편에서 얘기하면 까먹으실까봐 지금 얘기한다.
글쓴이의 시스템은 인텔 제온 E5-2643, 램64기가, nVidia 쿼드로 K4000 정도다.

/etc/make.conf 파일은 대략 3개의 섹션으로 나뉜다고 볼 수 있다(라고 생각한다). 
첫번째 섹션은 전체적인 환경을 설정하는 섹션, 두번째는 USE Flag, 세번째는 미러링서버 지정이다.
USE Flag도 전체적인 환경을 설정한다고 볼 수 있지만 USE Flag 자체만으로도 상당히 어렵기 때문에 굳이 나눴다.

CHOST="x86_64-pc-linux-gnu" 
64비트로 빌드할 것을 정한다. 32비트로 원하시면 CHOST="i686-pc-linux-gnu"로 하시면 된다.
보다 자세한 사항은 http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel 여기를 참고하시면 된다.

CFLAGS="-march=corei7-avx -msse -msse2 -msse3 -mmmx -O2 -pipe -fomit-frame-pointer"
먼저 이 부분에 대한 자세한 사항은 여기를 클릭하시라.
내가 프로그래머가 아니니 설명이 틀릴 수도 있다는 점을 이해부탁드린다.
코어2듀오일 경우 mtune=core2 -march=core2 옵션을 붙이시면 된다.
mssse3 msse3은, 사실 gcc 홈페이지에도 어떻게 붙이면 어떻게 된다는 정확한 설명이 없는데,
cat /proc/cpuinfo 하시면 나오는 부분이니 없으면 빼시고, 있으면 넣으시면 되겠다. 필자는 저렇게 넣고
이상없이 잘 됐다. mssse3이 msse3보다 나중에 나온 명령어인데, mssse3이 msse3까지 포함하는건지 아닌지
설명이 없어서 그냥 넣어버렸다.
-O3은 최적화의 레벨을 정하는 건데, 보통 가장 권장되는 옵션은 -O2이다. -O3가 가장 높은 레벨인데 사실 -O9
까지 있지만 O3 이상은 다 똑같단다. 그리고 O3로 컴파일했다고 해서 얻는 이득보다는 손해가 더 많고 O3로 해봐야
더 느려질 수 있다.
-pipe와 -fomit-frame-pointer는 권장되는 옵션이다. 그래서 보통 다들 꼭 넣는다. 나도 뭔지는 모른다.
설명을 하자면, fomit-frame-pointer는, 쓰이지않는 포인터를 생략해버린다는 옵션인데 그게 무슨 말인지는
잘 모르겠다.
보통 가장 일반적인, 즉 누구에게나 전부 이상없이 빌드할 수 있는 옵션 플래그를 불러보자면, 아마도
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=native-O2 -pipe"
정도이리라 싶다.

CXXFLAGS="${CFLAGS}"
대충 감이 오실 거다. 위에꺼랑 똑같이 하겠다는 거다.

MAKE_OPTS="-j17 -l32"
j값은 자기 컴퓨터가 가진 CPU 코어 갯수에 +1을 하면 된다.  총 작업수를 의미한다.
l값은 CPU 코어 갯수에 2를 곱한다.  코어가 16개 (물리 8 + 하이퍼쓰레딩 8 = 16)라면 숫자는 32가 된다.

VIDEO_CARDS="intel i965"
그래픽카드를 지정하는 것인데, 위의 예제는 인텔통합칩셋을 쓰시는 분을 위한 예제이다.

ALSA_CARDS="hda-intel"
역시 인텔통합칩셋에서 사용하는 사운드카드의 드라이버명이다. 참고로 GM45 칩셋이다. 그외 칩셋들은 "ALSA_CARDS"로 구글링하시면 나올거다. 대충 눈치껏 보고 넣으면 된다.

ACCEPT_KEYWORDS="amd64"
64비트로 빌드시 amd64를 넣고, 32비트일시 x86을 넣으시면 된다. 참고로 인텔 코어2듀오더 amd64라고 한다. 틸드(~)를 넣으면 소프트웨어를 최상위 불안정 버전까지 써보겠다는 의미가 된다.  참고로, 빌드 중 에러가 간간히 난다.

LINGUAS="en ko"
언어를 세팅해준다. 본인은 미국에 살고있기 때문에 컴퓨터에 통째로 한글만 나오면 좀 이상하다. 그리고 여기 사람들이 내 노트북의 모니터를 들여다볼 때 영어가 아니면 좀 불편해하는 감이 없지않아 있다. 그래서 일단 영어를 가장 먼저 했고 다음에 한국어를 넣었다. 사실 이게 순서가 상관은 없을 것 같은데, 그래도 혹시 몰라서 이렇게 했다.

FEATURES="ccache"
반복되는 컴파일의 캐쉬기능을 넣는 옵션이다. 다만, 이 옵션은 ccache라는 패키지를 빌드해야만 하는데, 그 전까지는 적용되지 않는다. 부트스트랩할 때부터 넣어놔도, 알아서 무시하고 빌드한다. 난 귀찮아서 미리 넣었다.

CCACHE_SIZE="2G"
위의 ccache의 캐쉬사이즈다. 캐쉬는 하드에 저장된다.

CCACHE_DIR="/var/tmp/ccache"
ccache의 경로를 지정한다. 이건 바꾸지 말자.

INPUT_DEVICES="evdev mouse keyboard synaptics"
입력장치를 나열한다. 노트북을 쓰신다면 시냅틱 마우스패드 입력기를 넣는다.

다음은 USE Flags다. 전부 다 설명할 수 없으니 USE flags의 설명이 나온 웹사이트 링크를 드린다.
엔하위키의 설명을 한 번 보시길 추천해드린다.

USE 플래그는, 시스템 전역 세팅을 위한 것인데 쉽게 설명드리자면, 만약 ffmpeg를 플래그에 넣었다면 X와 GNOME 혹은 KDE를 빌드할 때 동영상 관련 프로그램을 컴파일시 ffmpeg를 포함시켜서 빌드를 하게 된다.

아래는 필자의 세팅이다. 필자는 GNOME을 안쓰고 KDE를 쓰기로 했다. 남들 다 쓰는 GNOME을 안쓰는 이유는, 남들이 다 쓰는 걸 쓰고싶지 않아서다. 그래서 젠투를 쓰고 맥을 쓰는 이유지. 그외에도 쿠분투의 KDE를 보고 리눅스가 이렇게 발전했는가를 몸소 체험했다. 너무 예뻤다. 마지막으로, 미국에서 잘나가는 핸드폰 중 하나인 블랙베리의 프로그램들이 QT기반이란다.
GNOME으로 컴파일 하시고 싶으면 -qt4 -kde 하시고 gtk gnome 넣으시면 되겠다.  굳이 -qt4 -kde를 하진 않아도 된다.  kde나 qt를 사용하는 프로그램을 절대로 빌드하고싶지 않다면 -를 쓰면 된다.
필자는 abc 순서대로 적어놨다. 한줄로 길게 늘어뜨리면 편집할 때 귀찮다.

USE="-3dnow -3dfx  
a52 aac acpi apm alsa apache2 avahi aqua autoipd
berkdb bluetooth 
cjk curl cups crypt 
dga directfb drl dts  dvd dvdr dbus 
fbcon fbcondecor ffmpeg firefox flac 
gcj gd gif gpm gzip  
hal 
imagemagick imap innodb ipod -ipv6 iconv 
java javascript jpeg jpeg2k 
kde 
ldap 
-mozila mp3 mp4 mpeg msn -matrox mysql mysqli mhash mng 
ncurses networkmanager nls 
ogg opengl 
pcmcia pdf perl php png pnp -postgres python plasma 
qt4 quicktime 
readline ruby 
samba subversion ssl -slp svga szip sql svg smp 
tcl threads tk truetype tiff tcpd 
unicode usb 
vhosts vorbis -voodoo3 vim-syntax 
wifi win32codecs webkit 
X Xaw3d x264 xml xmlrpc xvid xcomposite 
zeroconf zlib"

나머지 미러설정인데, 이건 1편에서의 mirrorselect 명령을 실행했으면 설정되어있는 부분이다.


이제 대략의 설치할 준비는 다 끝났다. 사실 설치준비가 별 거 없다.
네트워크 설정 -> 파티션 준비/포맷 -> make.conf 파일 설정
이게 다다. 다만 우분투처럼 마우스 클릭만으로 끝나는 설치가 아니다보니 어렵게 느껴질 뿐인 것이고, 또한 다른 글에서 언급했듯 파티션이라던가 하는 아주 기본적인 내용에 대한 기초가 없어서 어렵게 느껴지는 것이다.

이제 루트디렉토리를 / 에서 /mnt/gentoo로 바꿔서 부트스트랩을 시작한다.
# chroot /mnt/gentoo /bin/bash

환경설정을 읽어와야한다.
# env-update; source /etc/profile

젠투 Portage의 트리를 받아와야한다. 이게 뭐하는 거냐면, 우분투/데비안 유저들이 apt-get install xchat2 라고 입력하면, 의존성 관계되는 패키지를 자동으로 계산해서 필요한 파일들을 모조리 받아와서 설치하는 시스템인데 젠투의 emerge도 그런 역할을 한다. 다만, Portage는 -BSD의 Port는- 프로그램들의 버전, 의존성관계, 컴파일하는 방법 등이 기술된 파일/디렉토리를 받아와서 오프라인이더라도 패키지의 검색이 가능하게끔 되어있다. 그래서 주기적으로 이 트리를 갱신해줘야한다. 
# emerge-webrsync

예전에는 rsync 프로토콜을 이용해서 한 5분쯤 걸리는 거 같은게 엄청나게 많은 것들을 보여줬는데, emerge-webrsync는 그냥 대충 간단한 메시지 정도만 보여준다.

이제 프로파일을 선택해야한다.  프로파일이란, 이 시스템이 최종적으로 어떤 상태로 갈 것인지를 정해서 시스템이 해당 목표로 빌드되도록 할 수 있다.  프로파일의 목록을 보자.
# eselect profile list
[1]  default/linux/amd64/13.0 *
[2]  default/linux/amd64/13.0/selinux
[3]  default/linux/amd64/13.0/desktop
[4]  default/linux/amd64/13.0/desktop/gnome
[5]  default/linux/amd64/13.0/desktop/gnome/systemd
[6]  default/linux/amd64/13.0/desktop/kde
[7]  default/linux/amd64/13.0/desktop/kde/systemd
[8]  default/linux/amd64/13.0/developer
[9]  default/linux/amd64/13.0/no-multilib
[10] default/linux/amd64/13.0/x32
[11] hardened/linux/amd64
[12] hardened/linux/amd64/selinux
[13] hardened/linux/amd64/no-multilib
[14] hardened/linux/amd64/no-multilib/selinux
[15] default/linux/uclibc/amd64
[16] hardened/linux/uclibc/amd64
지금은 아무런 프로파일도 선택되어있지 않으므로 1번에 * 표시가 되어있을 거다.  만약 그놈 데스크탑으로 빌드를 하고싶다면 4번이나 5번을 하면 된다.  참고로 systemd는 현재 날짜 기준으로 문제가 많으므로, 4번을 선택하면 된다.

#eselect profile set 4
#eselect profile list

4번에 * 표시가 되어있는 것을 볼 수 있다.

이것만 끝나면 신발끈(Boot Strap)을 묶자. 신발끈을 묶는 과정은 젠투의 패키지 시스템인 Portage와 필수패키지에 해당하는 gcc 등의, 시스템을 빌드할 수 있는 최소한의 패키지 8개로 구성되어있다.
# cd /usr/portage
# scripts/bootstrap.sh

필자의 시스템에서는 대략 1시간 가량 걸렸다. 여기까지가 Stage 1에 해당한다.
신발끈이 안묶어진다고 해서 포기하거나 우울해지지 말자. 사실 신발끈 안묶어지는 발이 많다고 한다. 근데, 사실 신발끈 못묶는다고 해서 그 사람이 나사가 하나 빠졌다던가 소위 말하는 병신은 아니지않나. 안되는 사람도 많으니, 안되는 거 붙잡고 삽질하지 말고 과감하게 Stage 3으로 넘어가시라. 그리고나서 시스템 전체를 다시 통째로 컴파일하면 Stage 1부터 한거랑 똑같이 된다.

참고로, 젠투 설치한다고 컴퓨터 끄지도 못하고 계시는 분들이 많아서 말씀드린다만 설치하다가 밖에 오랫동안 나가봐야할 일이 있으면 끄셔도 된다. 방법을 알려드린다.

먼저 chroot에서 빠져나가야한다.
# exit

다음 설치하다만 파티션들을 언마운트 해야한다.
# umount /mnt/gentoo/proc
# umount /mnt/gentoo

스왑파티션을 off 해준다.
# swapoff /dev/sda4

이제 종료한다.
# halt
또는
# poweroff

그런다음, 나중에 다시 설치할 때는 젠투설치씨디로 부팅을 한뒤, 아래와 같이 한다.
# mount /dev/sda3 /mnt/gentoo
# mount -t proc none /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# swapon /dev/sda4
# chroot /mnt/gentoo /bin/bash
# env-update; source /etc/profile (이거 빼먹으면 안된다)

다음 나머지를 이어서 하시면 되겠다.
Stage 2부터는 다음편에 한다.


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
남자라면 Stage 1부터라고 말씀하시는데, 뭐 사실 그런 것보다는 원래 젠투를 설치하고 사용하고자하는 목적이 리눅스에 대해서 더 깊이 알려고 하는 것이라고 생각하기 때문에 Stage 1부터 시작한다고 생각한다. Stage 3부터 시작하실 분들은 다른 인터넷 상의 매뉴얼을 참고하시거나 Arch Linux라는 것을 쓰시길 권한다.
 
당연한 얘기지만, 이 설치기는 리눅스를 조금 쓰실 줄 아는 분들 중에서, 막연히 젠투설치가 겁나는 분들을 위해서 작성했다.

먼저, 파티션은 이미 준비가 끝난 상태라고 가정하면서 시작한다.
젠투설치는 인터넷이 되야만 설치가 가능하기 때문에 먼저 랜카드부터 잡아준다.
# net-setup eth0

젠투의 특이한 점은, ssh를 통한 네트워크 설치가 가능하다는 점이다.
# /etc/init.d/sshd start
# passwd

리눅스를 설치할 파티션을 포맷한다. 나는 저널링이 가능한 ext3로 포맷을 했다.
# mkfs.ext4 /dev/sda3

스왑파티션을 쓸 수 있게 만들어준다.
# mkswap /dev/sda4
# swapon /dev/sda4

이제 젠투를 설치할 파티션을 마운트 해보자.
# mount /dev/sda3 /mnt/gentoo

이제 다운받은 stage3 파일을 /mnt/gentoo에다 복사한다. stage1부터 시작할 건데, stage3 파일 밖에 없다.
이건 젠투측에서 stage 1이랑 2를 없애기 위해서 그렇게 하긴 한건데, 사실 stage1부터 시작이 가능하다.
다운받은 파일의 압축을 풀자. http://distfiles.gentoo.org/releases/ 여기 가면 스테이지 파일이 있으니까,
wget으로 받으셔도 된다.
# tar xfj stage3.bz2

Proc와 몇몇 특수 파일시스템을 마운트 한다
# mount -t proc none /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev

인터넷이 되야하므로 /etc/resolv.conf 파일을 복사한다.
# cp /etc/resolv.conf /mnt/gentoo/etc/

미러를 선택하자.  빠른 미러를 선택하자.
# mirrorselect -s3 -b10 -D -c 'South Korea' -o >> /mnt/gentoo/etc/portage/make.conf

이제 대망의 make.conf 파일을 수정할 차례다. 이게 젠투의 핵심이자, 이것 때문에 젠투를 수십번도 더 설치하게 만드는 장본인이다. 본인은 최적화를 통한 가볍고 빠른 리눅스 설치가 목적이며, 최적화 그거 별로 차이 없네마네 하고 주장하시는 분들의 의견과는 무관하게 내가 하고싶은대로 한다. 최적화라는 것이, 자기 만족이지 않나.
인텔칩셋을 쓰시는 분들은 http://wiki.gentoo.org/wiki/Safe_CFLAGS 여기서 안전한 C Flags를 보시면된다. 
본 파일의 수정은 다음 편부터 한다.


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
작년쯤에 젠투를 오래된 노트북에 설치하다가  맛이 가는 바람에 결국은 설치하지 못했었다. 그때 나름대로 장황한 글을 적었었는데 그 마음은 여전히 변함이 없다. 
실은 며칠 전에, 한 4일 간에 걸쳐서 젠투를 설치했었는데 무선랜이 죽어라 안잡히는 것이었다. (인텔 센트리노 5100AGN) irc.hanric.org #gentoo의 badung님의 도움을 받아서 빨리 세팅했지만, 무선랜은 죽어라 안잡혔다. 짜증나서 지워버리고 쿠분투를 깔았는데, 세상에... 너무 예쁜 것이었다.
쓰기 편하고 예쁘긴 한데, 뭔가 좀 낯설긴 했지만 뭐 원래 그런 것이니 써보기로 하자고 마음 먹고서 시작했다. 하루이틀 지나다가, 갑자기 런레벨에 뭔가를 (사실 뭐라고 표현해야할지 잘 모르겠다) 추가해야할 일이 생겨서 나도 모르게 rc-update add xxxxx default를 쳤는데, 당연히 명령어가 없다고 나왔다. 이걸 어떻게 추가해야할까하고 웹서핑을 좀 하다가, 문득 이런 생각이 들었다.
"아~ 젠투가 편하긴 편하구나..." 하는 생각이 드는게 아닌가...

솔직히 말해서 젠투설치는 정말로 쉽다. 우분투나 쿠분투, 기타 등등의 배포판과 비교하면, 그래 좀 어렵긴 하지만 매뉴얼보면서 그대로 따라하면 안될 게 전혀 없다. 나도 2003년도 젠투 처음 쓸 때는 아무 것도 모르고 시작했고 그때 당시도 그냥 매뉴얼 보면서 그대로 했을 뿐이다. 명령어를 치면서 이걸 왜 하는지도 모르고 했던 것이다. 즉, 나도 이 글을 읽는 누군가와 똑같았던 것이었다. 그래서 이것에 대해서 한참을 쓰긴 했다.
(http://jswlinux.tistory.com/entry/젠투리눅스-설치)

같은 유닉스인 맥을 쓰면서도 여전히 리눅스를 갈망하는 것은, 나도 어쩔 수 없는 Linuxer라는 사실을 말해주는 것 같다. 와이프가 자기 노트북을 나한테 양보해주기로 했다. 기종은 Sony Vaio VGN-NS190J.
하드웨어는, 인텔 코어2듀어 2.0GHz에 램4기가, 인텔 GM45 내장 그래픽에 블루레이 드라이브 정도. 게임하기에는 좀 부족하지만, 리눅스를 설치해서 쓰기에는 과분한 사양이다.

먼저 Acronis Disk Suite라는 프로그램으로 윈도우가 설치된 하드를 쪼갰다. 250기가 하드 중에서 리눅스한테는 70기가 정도를 줬다. 젠투리눅스 사이트에 가서 10.0 버젼을 다운받고 씨디로 구웠다.
현재 내 하드디스크 상황은

/dev/sda1 - Sony Recovery partition
/dev/sda2 - Windows 7

위와 같이 나눠져있는 상태이며, /dev/sda2에서 70기가 정도를 잘라낸 뒤,

/dev/sda3 EXT3 Linux partition
/dev/sda4 Linux Swap

정도로 나눌 것이다.

준비물은 젠투설치씨디, Stage 1 파일이 전부다. Stage 1파일은 wget으로 받아오면 되긴한데, 나처럼 깔고지우고 반복을 엄청나게 하시는 분은 따로 갖고계시길 바란다. 그외 젠투를 설치할 컴퓨터의 정확한 하드웨어 스펙.
그거야, 리눅스 쓰시는 분들에게는 기본적인 소양이라고 생각하겠다.

설치는 http://xprogrammer.tistory.com/ 블로그를 약간 참고했으며, 그외 forums.gentoo.org와 www.gentoo.org의 문서들, 그리고 en.gentoo-wiki.com 문서들 위주로 참고했다. 그 이외의 문서들은 사실 거의 도움이 되지 않았다. 결국 젠투사이트에 있는 것들이 진리라는 사실이 입증된거다.

서두 끝.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

Center에 있는 Starbuck를 갔다.

원래 Starbucks 커피는 별로 안좋아하는 편인데, 그 근처에 커피샵에 그거 하나 밖에 없어서 선택의 여지는 없었다.

크리스마스용 선물세트 같은 걸로 나온 건가본데, 내 예상을 깨고, 가격이 $12.

너무 싸서 하나 샀다. 하나 더 살걸 그랬나...





블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
Linkinus용 스크립트로, 현재 화면의 스크린샷을 찍어서 irc 대화방에 링크를 올려주는 스크립트입니다.
코딩은 아주 허접합니다. 제가 전 직업이 은행원, 전공이 회계라는 사실을 염두에 두세요.

먼저, 유닉스를 다룰 줄 아는 분에게만 해당됩니다. 그렇지 않으면 본 스크립트를 쓰시기가 매우 어렵습니다.
패스워드 없이 ssh로 로그인할 수 있는 서버가 필요합니다. 홈계정에 Temp라는 폴더를 만들어주세요 (~/Temp)
스크립트의 파일 경로는 /Users/account/Library/Application Support/Linkinus/Scripts 입니다.

파일명을 sc.scpt라고 하시면, /sc 라고만 입력하셔도 스크린샷을 찍으실 수 있습니다.

-- -----------------------------------------------------------------------------------------------------

-- 아래 세 줄과, [스크린샷 by jswlinux] 부분은 시간 투자해 만든 절 위해서 지우지 말아주세요.

-- 수정은 자유롭게 하셔도 되지만, 원 제작자의 이름과 이메일 주소는 반드시 표기해주세요.

-- Screenshot upload Script for Linkinus

-- by Seowon Jung; seowon@hawaii.edu, Seony@irc.hanirc.org #ubuntu, #mac

-- Version 0.1

-- -----------------------------------------------------------------------------------------------------


on linkinuscmd()

set theString to "[스크린샷 by jswlinux]: "

tell application "Finder"

do shell script "TODAY=`date | sed -e 's/://g' | awk '{print $1 $2 $3 $6 $4}'`;/usr/sbin/screencapture -t jpg ~/Temp/$TODAY.jpg"

do shell script "SCREENSHOT=`ls ~/Temp/`; scp -P22 ~/Temp/$SCREENSHOT servername.com:/home/homedirectory/screenshots/"

set filename to do shell script "ls ~/Temp/"

do shell script "SCREENSHOT=`ls ~/Temp/`; rm -f ~/TEMP/$SCREENSHOT"

set collover to "Linkinus"

end tell

 

set theString to theString & "http://업로드하실 서버의 주소와 경로/" & filename

return theString

end linkinuscmd


이상입니다.

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

애플의 매직마우스를 샀다.


생긴건 요렇게 생겼다.

여태 살면서 본 마우스 중에서는 최강의 디자인이라고 말하고 싶다.

일단 한 번 보면 사고싶단 생각이 들고, 애플 홈페이지에서 동작하는 모습을 보면 반드시 사야겠단

일념에 사로잡힌다.




기존에 사용했었던 마이크로소프트의 아크 마우스와의 비교.

특이한 점이 뭐가 있을까?

바로 휠버튼이 없다는 점이다.

그러면 스크롤은 어떻게?

마우스 중앙에 손가락을 갖다대고 스크롤하는 듯한 시늉을 하면 스크롤이 된다.

한 마디로 노트북에 있는 터치패드가 마우스에 있다는 얘기...

 

최고다.

다만 비싸다.

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,


얼마 전 윈도우7이 나왔다는 소식을 듣고 함 깔아볼까나~ 하는 생각이 들었다.

자칭 맥빠, 리눅스 광신도가 윈도우에 관심을 보이다니... 이건 배신, 배반이었다...

맥빠가 된 이후, 소프트웨어는 왠만하면 구입하자라는 나만의 신념을 갖게됐고 이후 몇몇

맥 프로그램을 구입해서 쓰고있다.

윈도우7... 가격이 장난이 아니다... 그래서 좀 고민을 하다가 어라... 학생할인이란 게 있단다...

유학생도 학생이니,  win741.com인가 거시긴가하는 사이트에 가서 구입을 했다.

그리고 와이프가 쓰는 소니 바이오에다 설치를 했다.

 

얘기가 잠깐 샜는데, 학생업글판은 홈프리미엄 버젼이었고 여기서는 언어팩이 설치가 안된다.

그래서 구글링을 했는데 스누피님의 블로그(http://snoopybox.co.kr/764)를 보게됐고 홈피를

보다보니 해병대에 관한 포스팅을 봤다. 그 글에 달린 댓글이 거의 해병대 출신들에 의해 달린

글들이었는데, 그걸 보다보니 갑자기 군생활 하던 시절의 생각이 났다...

나는 사실 군생활을 즐겨서 얘기하거나 하진 않는다. 익히 알려진대로 해병대의 이미지가 한국에선

그다지 좋은 편이 아니었고, 아무리 해병대가 빡센 부대라고는 해도, 군생활은 누구에게나 힘들기

때문에 나는 힘들게 했고 육군 나온 분들은 편안하게 했다는 이미지를 주고싶진 않았기 때문이다.

 

나는 (스누피님 블로그에 써있는 말대로) 대한민국 해병대 청룡병장 857기이다. ㅎㅎ

22살이라는 다소 늦은 나이에 입대를 했고 포항 신병훈련단을 거쳐 2사단 5연대 2대대 화기중대

81mm 박격포병으로 자대배치를 받았다. 그때당시 내가 배치받은 곳은 2대대본부 옆에 위치한

화기중본이었고 새로지은 깨끗한 시설에서 첫 생활을 했다...

 

그때당시는 무척이나 무서웠었는데 - 이등병이니 당연하겠지만 - 이상했던 건, 내무실에 이등병들만

모여있었다는 거다. 나중에 알고보니 당시 5연대장인 배정인 연대장께서 5연대 병장들 싸그리 모아놓고

자갈 깔은 연병장에서 2-3시간을 굴렸다는 거다. 이것 역시 이렇게 된 이유가 있었는데, 당시 해병대

사령관께서, "2사단은 무슨 깡패부대야"라고 호통을 치던 게 그렇게 됐다는 거다.

어찌됐든, 그런 연대 분위기 때문에 구타/얼차려 등의 행위가 일시적으로 중단된 시기였고 운이

좋았던 나는 비교적 좋은 분위기에서 이등병 시절을 보냈다.

그때 화기중본에서 쫄병 구타하기로 아주 유명한 선임이 있었는데, 이 선임이 얼마나 무서웠냐면

"사람 패는 걸 즐기는" 취미가 있었던 거다. 그냥 톡톡/깔짝깔짝 때리는 수준이 아니라, 후임병을 완전

샌드백 취급했단거다. 날라차기 돌려차기 개머리판/팔꿈치 가격 등. 그런데도 나처럼 기합빠진 쫄병이

이분한테 안맞고 생활했다는 건, 당시 병장들 사이에서 구타에 대한 분위기가 얼마나 살벌했냐를

증명하는 거나 마찬가지였었다...

 

어찌됐든 덕분에 분위기가 화기애애했던 이등병들과 일병들... 쫄병의 고충을 함께 겪는 두 계급들

사이에서 나름대로 지낼만한 군생활을 했다.

5연대가 다 그렇지만, 대대가 돌아가면서 전방근무를 선다. 당시 3대대가 전방 도서지역에서

근무를 섰었고 2대대는 강화도 북한접경지역에서만 근무를 섰다. 그래서 2대대 내에서도

돌아가면서 전방근무를 서는데, 우리 화기중본도 강화도 철산리 지역으로 전방근무를 서게됐다.

짐을 싸고 이등병이라는, 정말로 모든 것이 무서울 시기에, 또 다시 낯선 지역으로 낯선 선임들과

만나게 됐다.

 

전방근무는 정말 살벌했다. 강화도는 북한하고 불과 2Km 이내에 있는 곳인데다 특히 강이 있어서

수로를 이용한 남침에 자주 이용되는 곳이다. 더 웃긴 건, 강화도 주민의 반은 간첩이라고 할 정도로

심한 곳이다. 특히 포병애들 훈련할 때 얘기를 들어보면, 포병이나 전차 쪽 애들이 산에서 훈련할 때

약초나 나물 등을 캐러온 아줌마 아저씨들이 훈련하는 걸 아주 유심히 본다고 한다.

그래서 몇몇 간부들이 가서, 훈련하니까 다른데로 이동해달라고 하면 잠시 없어졌다가 다시 몰래

나타나서 아주 유심히 관찰한다고 한다.

 

뭐 어찌됐든, 전방에서 근무서면서 정말로 간첩이 나타날거라고 굳게믿은 나는 적외선 탐지기로

근무시간 내내 들여다보면서 근무를 섰고, 결국엔 시간이 가면서 간첩은 안나타날 거라는 생각을

갖게됐다. 거기서 벽에 손가락 하나만을 기댄채 서서 잠들 수 있는 초인적인 스킬도 갖게됐다.

 

여기서도 사람 패는 게 취미인 선임이 하나 있었다. 다행히 계급이 일병이어서 그닥 힘이 없었다는

점이 다행스러웠지만, 전방 경계근무 특성상 밀폐된 공간에서 둘이만 남는다는 게 결정적이었다.

그런데 사람패는 게 취미인 사람들의 특징이, 오히려 같이 근무를 서게되면 아주 잘해준다는 거다.

이 사람도 같이 근무서는 날에는 구타/얼차려 이런 거 전혀 없이 농담따먹기나 하면서 근무시간을

보냈다.

그런데 사실 전방근무에서는 조금 이유가 있는데, 전방근무는 실탄을 장전하고 근무하기 때문에

후임병을 너무 심하게 굴리면 홧김에 총질을 할지 모른다는 얘기가 있었기 때문이다.

이 선임 말고도 또 다른 수색대 출신의 선임도 사람 패는 걸 아주 좋아했는데, 역시 마찬가지로

근무 같이 나가면 농담따먹기 하고 같이 나간 후임병 아주 편안한 자세로 근무서게하고 그랬다.

하지만 근무시간 외에는 아주 악명높았다.

이곳 전방 철산리, 문주란이라고 부르는 곳에서 이등병 대부분의 시절을 보냈다.

 

이병 오장 (말호봉) 때 연대본부 작전과 행정병으로 차출되가는 내 군생활 일대 최대의 시련을

겪게된다... 행정병이면 좋은 거 아닐까? 뭐 대부분은 좋을거다. 하지만 작전과는 최악의 부서였다...

밤9시 10시 업무는 기본이었고, 5연대가 전방부대다보니 뭐 이상한 것만 떠도 전 간부집합에

덩달아 작전병까지 불려나가는 신세가 됐었다. 불려나가서 뭐 했을까?

강화도와 북한 사이에 흐르는 강이 하나 있는데, 거기에 무슨 물체가 하나 감지되면 그거 좌표

찍어준다고 불려와서 상황실에서 압정으로 좌표나 찍고있었단 거다...

물론, 전방에서 근무하는 대원들은 그 시간에 일어나서 비상대기했겠지...

그거 생각하면 그나마 좀 위안이 된다...

문제는 일요일에도 불려나가서 업무를 봤다는 거다...

 

당시 작전과장이 완전 또라이 수준이었는데, 안해도 될 일을 막 만들어내서 연대장에게 잘 보이려고

아래 부하직원을 혹사시켰다는 거다. 게다가 지가 한말 안지켰다고 정보선임하사 - 당시 백발의

하사관이었는데 추정나이가 거의 제대 직전이었다 - 호출해서는 연대본부가 쩌렁쩌렁하게 울릴

정도로 호통을 쳤던 또라이였다. 나이로 봐서는 지 삼촌뻘인데 아무리 군대가 계급사회이긴 했어도

그분한테 그런 호통을 친건 너무했다는 수준을 넘어선 또라이짓으로 보였단 거다...

암튼 그분 덕분에 제대하기 1주일 전까지 하루에 3시간만 자면서 행정업무를 봤다.

제대하기 전까지 단 하루라도 잠을 7시간 이상 잔 적이 없었던 것 같다. 입대하기 전에 내 생활패턴이

저녁 9시부터 아침 7시까지 PC통신하고, 아침 7시에 잠들어서 저녁 9시에 일어나는 초 폐인 생활을

했던 나에게는 그야말로 나태해진 나를 바로잡는 곳이 아니었던가 싶다...

 

그나마 군생활 하면서 위안이 됐던 건, 작전보좌관들이 아주 좋았단 거였다. 원래 생활하기 힘든

부대일수록 사람들이 좋다라는 말을 신병 때부터 들어왔었는데, 그게 행정도 그랬단 거다...

그래서 1사단은 훈련이 많아서 선후임간에 사이가 좋고, 2사단은 훈련없이 맨날 하는 일이

전방경계근무다보니 쓸데없이 애들 때리기나 하고 기합이나 주고 그런다는 거였다...

 

한 가지 일화가 있다.

내가 상병 때였나, 연대장 권총이 없어졌다. 정말 연대본부가 뒤집어졌다. 한 2일 정도는 내부적으로

찾으려고 했는데 찾다찾다 결국은 못찾아서 헌병대로 수사가 넘어갔다. 그래서 당시 간부란 간부는

싸그리 헌병대 불려가서 조사를 받았는데, 하필 FTX 훈련이랑 겹치게 됐다. 그래서 FTX 훈련계획을

작전보좌관이 작성해서 예하부대에 시달을 해야되는데, 시간이 안되니까 나보고 작성해서 시달하라는

거였다. ㅎㅎㅎ

물론 늘상 하는 훈련이라 내용은 다 거기서 거기지만, 어찌됐든 나는 FTX 훈련계획을 작성해서

대대로 시달을 했고 당연한 말이지만 아무 이상 없었다. 그리고 며칠 후 우리 대원들도 헌병대에

불려가서 조사를 받게됐다.

수사관: 너네들 x월 x일날 다들 뭐하고 있었냐?

나: 저는 국지도발 FTX xx차 훈련계획 짜고있었고 일병 배상진 

      (작전병 후임, 상진아. 이름 공개해서 미안하다. 빼!!) 은 다른 업무를 보고있었습니다.

수사관: 너 혼자서 작전계획을 짜?

나: 네... 늘상 하는 일이라...

수사관: 야, 니가 왠만한 소위보다 훨 낫다.

 

그만큼 나의 업무량은 상상을 초월하는 것이었다. 급기야는, 일반 병으로서 작전계획 5027의 모든

내용을 꿰뚫어볼 정도가 된 것이었다 (사실 작전계획은 용어가 모두 군대용어라, 일반인이 읽어보면

이해가 잘 안간다. 법전 보는 것 같은 느낌이다). 물론 작전과장이 툭하면 작전계획을 수정하는 탓에

나까지 덩달아 작전계획을 계속해서 보게됐지만, 어찌됐든 5연대 작전계획5027은 대부분 알고있었다.

 

나중에는 군대에 말뚝박고싶다는 생각까지 들었다.

나의 업무처리능력은 연대본부 전 간부들을 통해서 익히 검증이 되어있었고, 내가 하사관을 지원하고

싶다고 말을 꺼내니까 인사과장부터 인사선임하사까지 모두 발벗고 나서서 도와준다고 했었다.

아무래도 근무하는 곳이 연대본부다보니 대위, 중위, 상사, 중사와는 아주 친하게 지냈다.

그래서 지원을 했는데, 사단에서 딱 한명 뽑는댄다. 그 중 집안형편이 가장 어려운 사람을 뽑는다고

했는데, 울집이 그렇게 어렵진 않았는가보다. 그리고나서 후임들이 하는 말이, 내가 군대에 말뚝박을

스타일은 아니라고 했다... 그냥 전역해서 다른 일을 해보라고 한다...

 

전역을 했고, 건설회사에서 1년 일하고 특허출원하고 1년 놀다가 결국은 은행에 취직해서 3년간

일한 뒤 지금 있는 이곳 하와이에 유학을 온 뒤 졸업하여 주정부 직원으로 취업했다. 누가봐도 내가 해병대 나온 사람같지 않댄다. 오히려

군대를 안갔다온 사람 같다고 한다. 사실 내가 좀 강하지도, 굳세어보이지도 않는 건 사실이다...

제대하고 후에 은행에 취직해서 여자들만 있는 곳에서 근무하다보니 해병대를 나왔다는 사실이

별로 중요하지 않게 됐다. 그냥 군대를 나왔다는 것뿐이었고, 군대를 나오든 안나오든 여직원들만

우글대는 직장에서는 별로 중요한 사항이 아니었다.

 

일을 얼마나 잘하느냐가 관심이었을 뿐...


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

안녕하세요.
직접 번역한 Welcome to 
Macintosh의 한글자막입니다.

번역을 처음 해보는 거라 좀 힘들었습니다. 중간중간 이해가 안가는 말도 많았구요,
졸면서 하다가 대충 해석해버린 것도 너무 많았네요.
최대한 의역을 하려고 했고, 그러다보니 본래의 뜻을 많이 왜곡한 대사도 있을 겁니다.
그냥 너그럽게 봐주세요.

우분투 한국 로코팀 공식채널 irc.freenode.net #ubuntu-ko 식구들께 감사드립니다.


P.S 토렌트랑 자막이랑 같이 올려드립니다.


블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,