티스토리가 백업 기능 없애고 다들 티스토리 자체가 없어지는거 아니냐하는 불안감에 저도 같이 편승해서, 블로그를 다른 곳으로 이전하려 합니다.
댓글이나 방명록 확인은 앞으로도 매일할 예정이지만, 이 블로그로는 더 이상 새로운 글은 포스팅하지 않을테니 위의 새로운 블로그로 방문해주세요.
감사합니다.
티스토리가 백업 기능 없애고 다들 티스토리 자체가 없어지는거 아니냐하는 불안감에 저도 같이 편승해서, 블로그를 다른 곳으로 이전하려 합니다.
댓글이나 방명록 확인은 앞으로도 매일할 예정이지만, 이 블로그로는 더 이상 새로운 글은 포스팅하지 않을테니 위의 새로운 블로그로 방문해주세요.
감사합니다.
유학생 시절 컴퓨터 고치는 알바를 했었다. 하와이 사람들은 우리가 생각하는 것과 참 많이 다르구나 하는 걸 느끼게 해준 경험이었는데, 일화를 좀 소개해드린다.
1. 노트북에 윈도우를 재설치하는 데만 해도 기본으로 $99부터 시작한다. 본토는 일단 시장 자체가 워낙 크니 거기는 가격이 많이 싸겠지만, 하와이는 그렇지 않아서 그렇기도 하고, 일단 컴퓨터를 다루는 직업부터가 이미 인건비가 비싼 엘리트 기술자라는 인식이 있기도 하기 때문. BestBuy 같은 곳은 더 심한데, 한국사람 입장에서 봤을 때 말도 안되는 것들을 덕지덕지 붙여서 $160, $200씩 받는다. 뭘 붙이냐면, 한국식으로 치면 곰플레이어나 알집 같은 무료 프로그램 몇 개 설치해주는 정도.
2. 어느 날은, 노트북에 윈도우 다시 깔아달라고 맡긴지 두달이 넘도록 안찾아가길래 전화를 했더니, "나 노트북 맡긴 적 없는데?" 라고 하더라. 자기가 노트북이 있는지 없는지도 모를 정도로 관심이 없나? 지금도 아무리 생각해도 이해가 안가는 일.
3. 역시 마찬가지로 노트북 고쳐달라고 맡긴지 몇 달이 되도록 안오길래 연락해서 물어보니까, 자기 딸이 맡긴 것 같은데 자기 돈 주고 찾아줄 생각 없으니까 그냥 폐기하란다. 더 어이없는 건, 그 딸도 별로 찾고싶은 생각이 없다는 점.
4. 어떤 한국 손님이 노트북 액정이 깨졌다고 액정 교체하는데 비용이 얼만지 알려달라면서 맡겼다. 뭐 이것저것 알아보니 한 $150에서 $200 정도 들 것 같길래 얘기해주니까, 그냥 폐기해달란다. 컴퓨터 가격이 한국에 비해서 워낙 싸다보니 그돈 주고 고치느니 그냥 새로 사겠다고 생각한듯.
5. 노트북은 페이스북 하는데에만 사용하고, 그 외엔 아예 사용을 안하던 20대 손님이 하나 있었다. 컴퓨터를 아예 쓸 줄 몰랐지만, 사실상 살아가는데 있어서 컴퓨터 자체가 아예 필요가 없었던 것. 컴퓨터는 그냥 페이스북 전용 머신.
사실 많은 하와이 사는 사람들-특히 마이크로네시안이나 사모안-이 대부분 컴퓨터 없이 살거나, 있어도 보통 학생들은 숙제하는 것과 페이스북 하는 것 말고는 아예 사용안하는 사람들이 많다.
한국에 살 때 (2006년도 당시)는 노트북 한 대 갖는 것도 가격이 비싸서 참 어려웠는데, 이 알바를 하면서 내가 쓰던 노트북이 한 3대는 됐었다.
어제 인터넷 뉴스에 한국책 사달라며 전재산 내놓은 하와이 한인 노부부 라는 뉴스가 떴다.
http://www.yonhapnews.co.kr/bulletin/2017/02/10/0200000000AKR20170210056800371.HTML
사실, 개인적으로 이분들을 조금 아는 편이라 잠깐 얘기를 좀 해보려고 한다. 이분들이 소유한 다세대 주택 (Apartment, 총 6세대)에서 2012년에서 2015년까지 3년간 살았었다.
McCully-Moilili 도서관에 한국책이 약 3만권 정도 있다고하는데, 이분들께서 노력하셔서 그렇게 된 건 사실이다. 3만권이라고 하면 상상이 잘 안가실텐데, 맥컬리-모일릴리 도서관이 그렇게 큰 도서관은 아니지만 한국에서 새로운 책이 나오면 여기에도 몇 주 안에 들어올 정도이고, 나도 여기서 최신 웹툰만화들을 거의 다 봤을 정도니 이 도서관에 애정을 갖고 노력하셔서 이렇게 된 거다. 나도 처음 가봤을 때 한국책이 너무나도 많은 것에 감동받아서, 내가 안보는 책들을 기증해야겠다고 마음 먹고 5권 정도를 기부했다.
다만 내 생각에 기사 제목처럼 전재산을 기부한 건 아니었을 거라고 추측하는데, 예전부터 이분들이 늘상 도서관에 기증한다 기증한다 오래 전부터 주변 한인들에게 얘기해온터라, 뭐 솔직히 본인들이 갑자기 마음이 바뀌어서 하기싫어졌다고해도 어쩔 수 없었을 거다. 그렇게 생각하는 이유가, 사실 이 기부금은 내가 전에 살던 그 다세대 주택을 팔아서 기부를 한걸로 알고있는데, 내가 알기로 그 주택이 최소 150만불 (15억) 이상은 나가는 것으로 알고있었기 때문.
더군다나 그분들이 그 주택에서 같이 거주하신 것도 아니고, 하와이에서 최고의 부자동네라고 알려진 카할라에 본인들 사는 집이 따로 있었으니, 솔직히 말하자면, "전재산"을 기부한건 아니라는 점이다. 최소한의 생활비만 제외하고 기부했다고 뉴스에 나오는데, 카할라 본인들의 집 가격만 해도 내 생각엔 최소 300만불 (30억) 이상 나갈 거다. 카할라는 그런 동네다. 왠만한 집들 대부분이 최소 50억 이상에 보통 100억 200억씩 하는 궁궐 수준이다. 그냥 직장생활 하는 봉급쟁이로는 거기서 못살고, 왠만큼 돈 좀 있다 하는 사람들도 거기서 못산다.
물론, 100만불이 한두푼도 아니고, 그걸 기부한 건 보통사람들이 할 수 있는 아니라고 생각한다. 정말 대단한 거다.
참고로, 집주인 아저씨는 굉장히 까다로운 분이어서, 당시 그 집에 사는 동안 불편한 점이 다소 있었지만, 당시에는 거동이 불편해서 옆집 사시는 분이 건물 매니저 역할을 해주면서 중간에서 조절을 잘해주셔서 큰 문제는 없었다.
어찌됐든 그 집에서 이사나와서 다행...
본 글은 더 이상 업데이트 되지 않습니다.
새로운 블로그에 업데이트하고 있으니, https://blog.seowonjung.com/index.php/2020/12/02/532 주소로 방문해주세요.
젠투설치 매뉴얼은, 공식 위키가 아주 잘 쓰여있는데다 한글 번역까지 되어있으므로 공식 매뉴얼을 기준으로 한다.
https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/ko
사실 젠투를 설치할 정도면 이미 리눅스 사용이나 여러 운영체제를 설치하는 부분에 있어서는 충분한 지식이 있을 정도이니 기타 잡다한 설명들은 제외할 예정이지만, 그래도 순서대로 적어보고자 한다. 또한, 공식 위키에서는 설명되어있지 않지만, 내가 이번에 5번의 설치 과정에서 겪은 꼭 도움이 될만한 부분을 설명하고자 한다.
이전에 시작하기 글에도 설명했지만, 설치환경을 다시 한 번 언급하자면,
1. 리눅스 단독 설치
2. 유선 네트워크
3. systemd
4. multilib
5. KDE 5 Plasma
로 진행하고자 한다. 하나 더 추가하자면, 안정버전으로 설명할 예정이다.
1. 다운로드
먼저, https://gentoo.org/downloads/ 이 페이지에 가서 부팅 가능한 이미지인 Minimal Installation CD와 stage3 파일을 받는다. Minimal Installation CD를 받고나면 이것을 부팅가능한 매체, USB나 CD에 굽는다. 그리고 stage3는 또 다른 usb 메모리 드라이브를 준비해서 넣어둔다.
2. 부팅
네트워크 케이블을 연결한 상태에서 위에서 만든 부팅 디스크로 부팅한다. 부팅이 완료되면 요즘의 젠투 부팅씨디는 알아서 DHCP를 이용하여 IP 주소를 받아오지만, 다시 한 번 확인해준다.
# ifconfig
IP 주소를 받아오지 못하거나 안한 것으로 보인다면, dhcp 명령어를 실행해서 주소를 받아온다. 참고로 아래 명령어에서 eth0 부분은 ifconfig를 통해서 나오는 이름을 참고하시면 되겠다.
# dhcpcd eth0
3. 파티션, 포맷
윈도우가 설치된 상태에서 리눅스를 설치하는 것은, 일단 적어도 파티션의 개념이 제대로 잡혀있어야 윈도우를 날리지않고 설치할 수 있고, 그렇지않으면 윈도우를 전부 날릴 확률이 높다. 따라서, 파티션이 무엇이고 이걸 어떻게 다루는지 안다는 전제 하에 핵심만 설명하자면,
a. 파티션은 굳이 여러개를 나눌 필요는 없다.
b. 하이버네이션 기능이 꼭 필요한 게 아니라면, 스왑파티션을 크게 잡을 필요는 없다.
c. UEFI / GPT를 사용하지 않는다면, /boot 파티션은 없어도 괜찮다. 만약 만든다면, 나는 개인적으로 boot에는 2기가 정도를 준다.
정도 되겠다. fdisk나 parted를 이용하여 파티션을 나눠주면 되고, GPT 방식을 이용한다면 공색 매뉴얼을 필히 참고하시라고 권해드린다. 스왑파티션의 경우, 나는 개인적으로 스왑은 2기가 이상은 잡지않는 편인데 그 이유는, 파티션이 500메가 이상 사용된다는 의미는 이미 램이 심각하게 모자란다는 의미로 받아들이기 때문이다. 사실상, 램이 부족하지 않은 시스템에서 스왑이 돌아간다는 것 자체를 문제로 본다. 따라서, 2기가 이상은 아무런 의미가 없다고 본다.
파티셔닝이 끝나면 원하는 파일시스템으로 포맷을 해주자. 만약 /boot를 만들어줬다면 /boot에는 Ext2를 권장한다. 몇 가지 이유가 있는데, 일단 리눅스라는 운영체제에서 가장 오래되고 검증됐으며 비저널링 파일시스템으로서는 이견이 없기 때문이다.
루트 파티션과 스왑 파티션의 준비가 모두 끝났으면, 파티션들을 모두 마운트 해줘야한다. 마운트해주고 나서 미리 다운받아놓은 stage3 파일이 담긴 usb를 연결하여 복사 및 압축을 풀어준다. stage3 파일이 모두 풀렸으면, 시스템이 사용할 가상 파일시스템들을 마운트 해줘야한다.
# mount -t proc proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --make-rslave /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev
공식 위키의 디스크 준비 항목을 보고 그대로 따라하시면 되겠다.
4-1. 설치준비
공식 위키에서와는 다르게, 날짜/시간과 컴파일 옵션 설정은 당장 안해도 된다.
미러를 골라준다.
# mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
미러는 여러 개를 고를 수 있는데, 자신이 사는 지역과 가까운 곳에 있는 미러들을 선택해주면 되겠다. 이것이 다 됐으면, DNS 정보를 복사해준다.
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
이제 chroot 명령어를 통해서 설치에 돌입한다.
# chroot /mnt/gentoo /bin/bash
# source /etc/profile
젠투 패키지 목록을 모아놓은 포티지를 설치해야한다. 그래야 어떤 패키지가 있는지 젠투가 알 수 있다.
# emerge-webrsync
공식위키에서는 다음 단계로 프로파일을 선택하라고 나오는데, 여기서 systemd를 선택하여 진행하면 100% 에러가 난다. Circular dependency라고 하는, 의존성이 돌고도는 현상이 생긴다는 거다. 즉 다시 말하자면, util-linux를 설치하려면 systemd라는 패키지가 필요한데, 이 systemd를 설치하려면 util-linux가 필요한, 의존성 관계가 무한루프에 빠지게 된다. 따라서, 일단은 프로파일은 가장 기본인 1번 default/linux/amd64/13.0 * 이것을 선택한다.
# eselect profile list
# eselect profile set 1
여기까지 했으면, 공식 위키에서 설치하라고 나오는 그 어떠한 패키지도 지금 현재는 설치하지마시길 권해드린다.
4-2. make.conf
/etc/portage/make.conf 파일은 젠투라는 배포판에 있어서 가장 핵심을 이루는 중요한 설정파일이다. 설정은 간단하며 내용물은 몇 안되는데, 까다로운 성격을 가진 유저들에게는 미치도록 스트레스 혹은 희열감을 주는 파일이 되겠다.
이 파일이 하는 일은, 앞으로 내 젠투 리눅스가 나아가야할 전체적인 시스템의 방향을 잡아주고, 내 하드웨어에 가장 최적화된 방법으로 시스템을 구성할 수 있게끔 설정을 하게해준다. 여기에 있어서 가장 핵심이 되는 설정은 USE와 CFLAGS인데, 하나씩 살펴보자.
먼저 CFLAGS는, 소스코드를 컴파일할 때 주는 옵션을 정의하는 곳이다. 내 컴퓨터가 인텔 i7 CPU를 장착했다면, 이 CPU가 가진 기능을 모두 활용하여 최대의 성능을 내게끔 한다거나 하는 일들이 가능한데, 그럴려면 CPU의 제원과 GCC라는 컴파일러의 옵션을 다 알아야하고, 이것이 일반적인 유저에게는 아주 어려운 일이다. 따라서, 젠투 커뮤니티는 "가장 보편적이고 안전한 옵션"을 제안한다.
https://wiki.gentoo.org/wiki/Safe_CFLAGS 이 페이지에 가면 다양한 CPU에 따른 CFLAGS를 제안하는데 예를 들어 내 CPU가 하스웰 Core i7이라면, CFLAGS="-march=haswell -O2 -pipe" 라는 옵션이면 충분히 무난하다라는 것이다. 여기에 CPU별 구체적인 명령어들을 CPU_FLAGS_X86이라는 옵션을 통해 정의할 수 있다. 젠투의 기본값은 CPU_FLAGS_X86="mmx sse sse2"로 설정되어있다.
하지만, "이건 너무 두루뭉실하지 않나" 하는 유저들이 있을 수 있기 때문에, 내 CPU가 가진 명령어셋을 검색/비교하여 최적화된 CFLAGS를 보여줄 수는 없을까? 하는 생각을 가진 유저들이 분명 있기 때문에 나온 명령어가 있다. 기본 명령어는 아니므로 설치를 해야한다.
# emerge -q app-portage/cpuid2cpuflags
설치가 완료됐으면 실행을 해보자.
# cpuinfo2cpuflags-x86
CPU_FLAGS_X86="aes mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
이렇게 나온다. 이걸 그냥 복사해서 /etc/portage/make.conf 파일에 넣으면 된다. 너무 길고, 오타가 걱정되시면 아래의 명령어로 바로 붙여놓고 파일을 열어서 기본값으로 적힌 CPU_FLAGS_X86 라인을 삭제해주면 되겠다.
# cpuinfo2cpuflags-x86 >> /etc/portage/make.conf
# nano /etc/portage/make.conf
참고로, nano에서 파일을 저장하는 키는 Ctrl+x를 누르면 된다.
4-3. USE
USE 플래그는 젠투의 진입장벽을 높이는 주범이라고들 하는데, 그 이유는 USE를 너무 자세하게 설정하려고 하기 때문에 그렇다. 따라서, USE에는 취지에 맞게 최대한 global하게 설정하고, 패키지별 USE를 따로 설정해주는 것이 편하다. 개인적으로 추천하는 USE 플래그는 다음과 같다.
USE="bash-completion cjk unicode X -bindist"
bash-completion은, 만약 설치하려는 패키지가 BASH의 명령어 및 옵션 자동완성을 지원하는 경우 이것을 활성화하게되며, CJK는 동북아시아 3개국의 언어, Chinese, Japanese, Korean 언어 지원, UNICODE는 역시 마찬가지로 언어에 관계된 유니코드 설정, X는 GUI 환경인 X-Windows 지원, 그리고 마지막 -bindist 앞에 붙은 -는 on/off 스위치 같은 것인데, -를 붙이면 off 하겠다는 얘기다. 즉, bindist를 안쓰겠다는 의미인데, bindist (내 추측으로는 아마 binary distribution)는 특정 라이센스나 어떤 상황에 있어서 소스코드를 다운받아서 컴파일하지 않고, 그냥 미리 컴파일되어있는 패키지를 받아서 쓰겠다는 옵션인데, 이것은 젠투를 쓰고자하는 취지와 전혀 맞지않고, bindist로 받은 패키지들이 문제를 일으키는 경우가 종종 있다.
추가로 추천하는 USE 플래그가 있다면, 파이썬을 선호하는 유저라면 python, VIM을 주력으로 쓴다면 vim 문법지원 플래그인 vim-syntax 정도가 있겠다. 참고로 내 USE 플래그는 다음과 같다.
USE="bash-completion cjk ldap python ssl unicode vim-syntax X zsh-completion -bindist -gpm"
LDAP과 SSL은 개인적으로 직장에서 업무상 꼭 필요한 기능이기 때문에 넣었다. 이렇게 꼭 필요한 건 넣고, 필요없는 건 뺄 수 있는 점이 바로 젠투의 매력이겠지.
공식 위키에서는 -gtk -gnome qt kde 등이 예제로 있는데, GNOME을 쓴다고 굳이 -qt 할 필요는 없고, 오히려 개인적으로는 비추천한다. GNOME 환경으로 구성해서 쓴다고해서 QT 기반 어플리케이션을 아예 안쓸 수도 없기 때문이기 때문인데, 예를 들자면 개인적으로 애용하는 XCA 같은 프로그램들은 GNOME 기반 앱인줄 알았는데 나중에 알고보니 QT기반이었다는 등... 요즘은 QT고 GNOME이고 한 가지만 지향해서 구성하는 건 좋지않다고 생각한다.
4-4. 기타 설정
/etc/portage/make.conf 파일의 나머지 설정을 할 차례다. 지금 굳이 안해도 상관없지만, 미리 하지 않았다가 나중에 시스템 전체를 다시 통째로 재컴파일해야하는 상황을 만들 수도 있기 때문에 지금 하는 게 낫다.
딱히 건드릴 건 없지만, ABI_X86="32 64" 항목을 넣어주는 것을 권장한다. 이것은, multilib 즉, 32/64비트 환경 둘 다 지원하는 바이너리를 빌드하도록하는 옵션인데, 일부 특정 패키지가 이 옵션을 요구한다. 그런데, "나는 완벽한 64비트 환경으로 쓰고싶은데" 라고 생각하는 유저들도 있을텐데, 이런 환경은 일반적으로 리눅스에서 전혀 권장하지 않으며, 공식 위키에도 이 부분에 대해서 설명하고 있다.
특히 nVidia 그래픽카드의 드라이버가 multilib를 요구하는데, 이것과 관계된 커널 모듈 및 기타 패키지들도 다 같이 요구되므로, 잘 모르는 상태에서 64비트 전용 환경을 구성하면 골치아파지므로 그냥 속편하게 multilib 환경으로 미리 구성을 해놓자.
참고로, ABI_X86="32 64" 항목을 넣어주면 stage3에 딸려오는 거의 모든 패키지를 재컴파일하므로 사실상 stage1부터 하는 것과 다름없어진다.
다음으로 MAKEOPTS라는 옵션이 있다. 이것은 젠투를 설치하려는 컴퓨터의 CPU가 가진 총 코어의 갯수를 적어주면 된다. 예를 들어, Core i7 970이라는 CPU는 물리 코어 6개에 논리 코어 6개로 총 12개의 코어가 있다. 따라서 MAKEOPTS="-j12" 라고 넣어주면 된다. 공식위키에서는, 총 코어갯수+1을 하라고 하는데, 사실 공식 영문위키에서는 +1을 하라는 의견이 없으며, 오히려 하단에 +1을 하는 것이 좋지않다라는 젠투의 공식 블로그 글을 링크해놓고 있다.
https://wiki.gentoo.org/wiki/MAKEOPTS
https://blogs.gentoo.org/ago/2013/01/14/makeopts-jcore-1-is-not-the-best-optimization/
X-Windows의 GUI 환경을 구축할 계획이 있다면, 그래픽카드와 장치를 적어주면 좋다. 사실, 안적어줘도 크게 상관은 없다.
VIDEO_CARDS="nvidia"
INPUT_DEVICES="evdev"
마지막으로, 지원언어를 설정해줄 수 있다.
LINGUAS="en ko"
이렇게 적어주면, 영어를 우선지원하고 다음으로 한국어를 지원하게 된다. 만약 순서를 바꾸면, GNOME 터미널이나 Konsole 등에서 각종 메시지가 한글로 나오게 된다.
이제 make.conf 파일을 총 정리해보자. 내 make.conf 파일을 올리는 것으로 정리를 마무리한다.
CFLAGS="-march=westmere -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j12"
CPU_FLAGS_X86="aes mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
ABI_X86="32 64"
USE="bash-completion cjk ldap python ssl unicode vim-syntax X zsh-completion -bindist -gpm"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
PORTAGE_TMPDIR="/tmp"
VIDEO_CARDS="nvidia"
INPUT_DEVICES="evdev"
LINGUAS="en ko"
GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo http://lug.mtu.edu/gentoo/ http://gentoo.osuosl.org/ http://gentoo.mirrors.pair.com/ http://mirrors.rit.edu/gentoo/ http://gentoo.mirrors.tds.net/gentoo http://mirror.lug.udel.edu/pub/gentoo/ http://cosmos.illinois.edu/pub/gentoo/ http://gentoo.cs.uni.edu/ http://mirror.usu.edu/mirrors/gentoo/"
4-5. 필수 패키지 설치 준비
이제부터 필수 패키지 설치에 들어가는데, 패키지를 설치하기 전 가장 먼저 해야할 일이 하나 있다. 바로 패키지 컴파일시 이 컴파일 데이터들을 캐싱해주는 C Cache라는 것을 먼저 설치해야한다. 얼마나 도움이 될지는 모르겠지만, 조금이라도 설치 시간을 단축시켜줄 수 있기 때문에 설치를 추천한다.
개인적으로 나는 패키지 설치시 출력 메시지를 아예 보지않는다. 어차피 C언어를 모르기 때문에 에러메시지를 이해할 수 없을 뿐더러, 뭐 굳이 컴파일되는 과정의 메시지를 볼 필요가 있나. 따라서, 모든 emerge 명령어 실행시에는 나는 -q를 붙인다.
# emerge -q ccache
시간이 꽤 걸릴 수 있다. 그 이유는, 젠투가 새롭게 설정된 make.conf의 환경을 적용시키려고 하기 때문이다. 만약 C Cache를 이용해서 최대한 빨리 빌드를 하고싶다면, /etc/portage/make.conf 파일을 열어서 USE 플래그를 공란으로 만들고, ABI_X86을 삭제해주면 된다.
USE=""
그리고나서 C Cache 설치 및 하단의 설정 후 다시 복원해주면 되겠다.
C Cache 설치 이후에는 설정을 해줘야한다. C Cache를 활성화하고 캐시 사이즈 및 위치를 지정하는 것이다. /etc/portage/make.conf 파일을 열고 다음과 같이 넣는다. 이미 위에서 make.conf 파일을 정리했는데, 이것은 해도그만 안해도 그만이므로 추가로 설명하게 됐다. 위치는 관계없다.
FEATURES="ccache"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
이제부터 필수 패키지 설치를 시작하는데, 필수적인 패키지를 크게 분류하자면 다음과 같다.
a. 커널
b. 시스템 운영 패키지
c. 부트로더
d. 기타 툴
5. 패키지 설치
시스템 운영을 위한 패키지를 설치해야하는데, 사실 stage3에 이미 충분히 딸려오기 때문에 설치해야할 패키지는 몇 안된다. 하지만 이 글은 systemd로 설치하는 것을 전제로 하며, 젠투의 기본 프로파일은 기존의 OpenRC를 기반으로 하는 init시스템을 기본값으로 달고나오기 때문에 systemd에 필수적인 패키지를 설치해줘야한다.
(실은 USE에 설정한 python 때문에 util-linux를 재설치하려고 시도하는 것이고, 여기서 의존성 문제가 생기는 관계로, USE에 python을 넣지않으면 정상적으로 진행이 가능하다)
위에 프로파일을 systemd로 선택하면 100% 에러가 난다고 겁을 줬지만, 해결법은 사실 간단하다. eudev를 삭제하고 util-linux를 설치해준뒤 프로파일을 변경하면 된다. 시간이 꽤 오래 걸린다.
# emerge -q sys-apps/dbus
# emerge -C sys-fs/eudev
# emerge -q sys-apps/util-linux
# eselect profile list
# eselect profile set 10
프로파일 번호가 10번인지 꼭 확인하자. 이름은 아래와 같다.
default/linux/amd64/13.0/systemd
GNOME이나 KDE를 설치할 계획이라고 하더라도, 일단 여기서는 해당 프로필을 선택하지 않는 이유는, 새롭게 설치한 나만의 젠투리눅스로의 부팅이 잘되는지를 먼저 확인하기 위해서다.
변경한 프로파일을 적용해야한다. 여기서 젠투가 알아서 필요한 systemd 관련 패키지들을 모두 불러와 설치를 해주며, 관계된 패키지까지 새로운 make.conf 파일에 정의된 옵션대로 재컴파일을 해주게 된다. 시간이 꽤 오래 걸릴 거다.
# emerge -aqvuDN @world
공식 위키에 나오는 시간대(timezone), 로케일 등은 보고 그대로 따라하시면 된다. 사실 systemd 환경에서는 지금 안해도 상관없지만, 지금 해주면 나중에 systemd가 OpenRC 환경으로 설정한 것들을 가져와서 적용시켜주므로 편리하다.
5-1. 커널 설치
옛날에 젠투를 쓸 때는 커널 옵션 하나하나 확인해가면서 설치를 했고, 사실 그게 또 나름 맛이 있어서 자연스럽게 커널 옵션들을 공부하게 됐다. 하지만 요즘은 하드웨어가 너무나도 복잡해지고 지원해야하는 종류도 많아져서, 옵션 일부를 잘못 건드리면 어떤 기능 전체가 싸그리 작동이 안되거나, 아니면 아예 부팅이 안되는 등의 문제가 생긴다. 자신의 하드웨어를 아주 잘 알고있고, 모듈로 컴파일하는 것과 커널에 넣는 것의 차이를 이해하면 혼자서 해볼만한데, 그렇지 않다면 별로 추천하지 않는다. 따라서, 젠투에서는 범용으로 쓸 수 있는 커널을 만들어주는 툴이 있다.
먼저 커널을 설치하자.
# emerge -q sys-kernel/gentoo-sources
시간이 좀 걸린다. 커널 소스코드 설치가 끝나면, 범용커널을 만들어주는 툴을 설치한다.
# emerge -q sys-kernel/genkernel-next
systemd 환경에서 사용하기 위해 파일 하나를 수정해줘야한다.
# nano /etc/genkernel.conf
UDEV="yes"
라고 설정해주면 된다.
이제 커널을 빌드해준다. 꽤 오래 걸린다.
# genkernel --udev --install all
커널을 직접 수정해서 쓰고싶다면, 일단 최초 설치는 genkernel로 설치하고, 이후 새롭게 빌드한 시스템으로 부팅이 잘 되고나서 시도해볼 것을 추천한다.
5-2. 시스템 운영 패키지 설치
기본적인 운영에 필요한 패키지를 설치해야하는데, 사실 systemd 프로파일 적용하는 단계에서 거의 대부분 설치된다. 거기서 빠진 것들 중 없으면 불편한 것들을 설치해보자.
# emerge -q sys-apps/pciutils
# emerge -q app-portage/gentoolkit
# emerge -q app-portage/eix
# emerge -q net-misc/dhcpcd
# emerge -q net-misc/openssh
# emerge -q sys-process/cronie
# emerge -q app-admin/sudo
일부 하드웨어의 추가 펌웨어를 설치해준다. 당장은 필요없을 수 있겠지만, 나중에 이걸 안해줘서 문제가 생기는데 기억이 안나서 해결 못하는 경우도 있다.
# emerge -q sys-kernel/linux-firmware
5-3. 부트로더 설치
부트로더로는 grub을 선택한다. 사실 이제 제일 무난하고 쓰기편하다.
# emerge -q sys-boot/grub:2
# grub-install /dev/sda
설치가 끝났으면 새로운 커널로 부팅할 시 systemd로 부팅하기 위한 설정을 해줘야한다. 설정은 간단한데, /etc/default/grub 파일을 열고 다음 줄을 찾아서 주석을 해제해주면 된다.
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
그런다음 적용을 시켜준다.
# grub-mkconfig -o /boot/grub/grub.cfg
6. 환경설정
이제 마지막으로 수작업으로 작성해줘야하는 필수 설정파일을 작성해줄 차례다.
공식 위키에 /etc/fstab 파일에 대한 설명이 잘 나와있으니 그것을 보고 작성해준다.
passwd 명령어로, root 사용자의 패스워드를 변경해주고, 아래의 명령어로 일반 유저를 생성해준다.
# useradd -m -G users,wheel,audio -s /bin/bash USERNAME
랜카드의 DHCP를 활성시켜주기위해 systemd 파일을 하나 작성해준다. /etc/systemd/network/50-dhcp.network 파일을 열고 아래와 같이 넣어주면 된다.
[Match]
Name=en*
[Network]
DHCP=yes
이렇게 넣고나서 재부팅해도 사실 DHCP를 이용해서 IP 주소를 못받은 상태가 되어있을텐데, 이것은 "시스템 시작시 DHCP를 이용해서 IP를 받아라" 라고하는, OpenRC 식으로 말하자면 /etc/init.d에 항목이 없기 때문에 그렇다.
이제 새로운 시스템으로 부팅을 해야한다. 먼저 chroot를 빠져나오고, 설치 시작 전에 마운트 했던 가상 파일시스템들을 해제해야하는데, 일반적인 umount 명령어로는 해제가 안된다. 옵션을 하나 붙이면 간단하게 해제된다.
# exit
# umount /mnt/gentoo/boot
# umount -l /mnt/gentoo/proc
# umount -l /mnt/gentoo/sys
# umount -l /mnt/gentoo/dev
# umount /mnt/gentoo
# reboot
7. 부팅 이후
만약 새로운 시스템으로 부팅이 되지않는다면, 공식위키를 보면서 어떤 절차가 빠졌는지 확인해본다.
6번에서 언급한대로 ifconfig 명령어를 쳐보면 분명 IP 주소가 안잡혀있을 거다. 아래의 명령어로 DHCP를 활성화하자.
systemctl enable systemd-networkd.service
systemctl start systemd-networkd.service
# systemd-machine-id-setup
호스트 이름을 설정한다..
# hostnamectl set-hostname <HOSTNAME>
로케일을 설정한다. 이 부분은 위의 설치과정에서 공식위키를 보고 진행했었다면 따로 안해줘도 된다. 안해줬다면 아래의 명령어로 가능한데, 개인적으로 로케일은 한글이든 영문이든 utf8을 쓰는 것을 추천한다. 영어라면 en_US.utf8이고, 한글은 ko_KR.utf8이다.
# localectl set-locale LANG=<LOCALE>
8. KDE 설치
KDE 설치는 사실 간단하다. 어차피 X가 의존성으로 묶여있어서 설치할 때 같이 딸려오니 따로 신경안써줘도 되며, 나중에 별도로 XDM만 설치해주면 끝난다. 다만, KDE 메타패키지에 빠진 프로그램들이 너무 많아서, KDE 빌드 이후에도 계속 설치해줘야할 프로그램들이 너무 많다는 정도.
먼저 시스템의 프로파일을 변경해줘야한다. 일반 사용자로 로그인했다면, sudo 명령어를 사용하여 root로 변경한다.
# sudo -i
# eselect profile list
여기서 default/linux/amd64/13.0/desktop/plasma/systemd 항목을 선택한다. kde/systemd가 아니라 plasma/systemd를 선택해야하는데, 왜냐하면 plasma가 KDE의 최신버전인 5의 새로운 이름이기 때문이다.
만약, 한글과 영어 지원만 선택하고 싶으면 /etc/portage/make.conf 파일을 열어서 아래와 같이 넣는다.
L10N="ko en"
변경된 시스템 프로파일을 적용해준다.
# emerge -aqvuDN @world
KDE 설치의 필수 패키지는 아래와 같다.
# emerge -q kde-plasma/plasma-meta
# emerge -q kde-apps/konsole
# emerge -q kde-plasma/systemsettings
# emerge -q x11-misc/sddm
# emerge -q kde-plasma/sddm-kcm
SDDM을 활성화한다.
# systemctl enable sddm.service
그외 필요한 KDE 프로그램들은 여기서 볼 수 있다.
https://www.kde.org/applications/
만약 X가 설치되지 않았다면, 2개의 패키지만 설치해주면 된다.
# emerge -q x11-base/xorg-server
# emerge -q x11-base/xorg-drivers
9. 끝
총 5대의 설치를 진행하면서 메모를 해두려고 노력했으나, 의외로 메모하지 못한 곳에서 필요한 부분이 많았고, 그것들 대부분을 기억에 의존하여 작성하였다. 초보들이 보기엔 상당히 불편한 설치기이지만, 사실 젠투는 초보가 설치하기에는 적합하지 않다고 생각하고, 리눅스라는 운영체제에 익숙하지 않다면 절대로 추천하고 싶지 않은 배포판이다. 설령 리눅스에 익숙하더라도 성향에 맞지않으면 절대 오래 쓰지 못하는 배포판이기도 하다.
내 경우는, 내 성격과 젠투의 장단점이 잘맞아서 아주 만족스럽게 쓰고있다. 또한, 전혀 기대하지 않았던 KDE 5 Plasma가 너무 마음에 들어서 이것 역시도 아주 만족스럽다. 젠투는 쓰면 쓸수록 점점 안정적으로 변하는 배포판이라고도 하는데, 그것은 젠투가 사용자로 하여금 시스템의 구성에 더욱 더 시간을 사용하게 만들기 때문이다. 이것이 적성에 맞으면 잘쓰게 되고, 이런 데에 시간을 쓸 수 없다면 최악의 배포판이 되는 것이다. 이 경우라면 차라리 데비안이 훨씬 낫다. 한 번 설치하면 재부팅 외엔 거의 손댈 곳이 없는데다, 지금까지 내가 본 2대의, 전 세계적으로 uptime 길다고 알려진 서버들 모두 데비안을 썼다. 하나는 uptime이 3,000 days인가 그랬고, 다른 하나는 2,396 days였다.
젠투를 이미 2004년부터 썼지만 그때는 사실 젠투를 제대로 이해하고 쓴 것은 아니라고 생각한다. 지금은 나름 어느정도 이해한다고 생각하는 시점에서 보면, 젠투는 너무나도 잘만들어진 배포판이라고 생각하고, 사용자가 원하는대로 패키지 하나하나를 세밀하게 설정해서 설치할 수 있게 해주고, 그것을 유지/보수할 수 있게 제공해주는 각종 컬러풀한 CLI 툴들이 아주 잘만들어져서 부족한 점이 없다고 생각될 정도다.
다만 아쉬운 점은, 젠투를 개발하는 젠투 재단과 그 커뮤니티 자체가 불안정하다는 점인데, 이것 때문에 젠투라는 배포판 자체가 오랫동안 지속될지를 걱정해야할 판이라는 거다. 우분투도 사실 캐노니컬의 상태가 썩 좋지만은 않기 때문에, 젠투도 우분투도 망해서 없어지면 결국 정착할 곳은 데비안이 되겠지만, 현재로서는 젠투에 아주 만족한다.
예전에 근무했었던 Secretary에 대한 이야기. Secretary하면 한국말로는 "비서"인데, 우리가 상상하는 그런 대기업 비서실의 비서는 아니다. 그냥 굉장히 나이 많이 드신 분이었고, 우리 부서의 이런저런 잡다한 일 & 경리 등의 일을 보던 분이었다.
하루는 직원들한테 그분에 대한 불만을 듣게됐는데, 불만이었던 사항이,
본인이 나이가 들어서 잠이 없다는 이유로 새벽 5시에 출근해서 근무하고 오후 12시에 퇴근해버리니까, 정작 다른 직원들이 그 Secretary를 만나야할 상황에서 못만나게되서 일 진행에 곤란한 일이 많다는 점이었다.
그분은 2016년도에 은퇴하셨다. 나이가 몇 살이었는지는 모르겠지만, 당시 내 기억으로는 "꼬장꼬장한 할머니" 정도?
하루는 내 보스라고 할 수 있는 부서장(Director)이 점심 시간에 이런 얘길 했다.
IT만큼 빠르게 변하고 발전하는 분야가 없다. 프로그래머 등 IT/컴퓨터 쪽 직업을 갖고있는 사람들의 연봉이 올라야하는 이유는, 이러한 빠른 변화에 맞춰 자신의 기술을 끊임없이 유지/보수하기위해 공부해야하기 때문에, 직원들의 이러한 노력에 대한 보상의 댓가, 그리고 해당 직원이 계속해서 프로페셔널해지기 때문에 연봉이 오르는 것이다.
라고 했다.
존경스럽다.
참고로 울 부서장은 교육학 박사라서, IT랑은 거리가 멀다. 학사 전공이 컴퓨터라서, 아주 멀다고 하긴 좀 그렇지만.
취업 후 첫 해는 참 바쁘게 보냈었다. 외국에서의 첫 직장생활이어서 그랬는지 긴장도 많이 했었다.
당시 사수가 Bacula라고 하는 네트워크 백업 소프트웨어의 교육을 보내줘서 뉴저지에 있는 모 호텔에서 3박 4일간 교육을 받던 중, 뭐 그래도 이메일도 좀 확인하고 해야할 일이 있으면 해야할 것 같단 생각에 일을 좀 하니까 당시 사수 왈,
"휴가를 가던 교육을 가던, 사무실을 벗어나면 일은 하지 마라. 사무실에서 해야할 일은 사무실에 있는 사람들한테 맡기고, 너는 거기서 교육만 잘 받고오면 된다"
나도 이 말을 듣고 배워서, 내 사수가 휴가를 가면 절대로 연락하지 말아야겠다고 생각하게 됐다. 지금도, 나나 내 직장동료들이나, 거의 천재지변급 사태가 터지지 않는 이상 휴가간 사람한테는 연락을 하지않는게 기본적인 예의이고 상식이다.
말 나온김에 당시 내 사수였던 사람에 대해서 얘길 좀 해보자면,
독일 사람이었는데 고등학교를 미국으로 교환학생을 왔던터라 영어를 굉장히 유창하게 했고, 독일에서 전기전자공학 학사/석사를 했고, 하와이 주립대학교에서 전산학 박사를 했고, 지금까지 내가 본 사람 중에서 정말 똑똑한 사람이라고 느꼈던 몇 안되는 사람이었다. 지금 생각해보면 좀 다혈질이었고, 독일사람답게 굉장히 직설적이었으며, geeky/nerdy했고, 애플과 애플 제품을 너무나도 혐오했으며, 자기 고향 독일에서 가장 친한 친구는 베트남계 독일인이었고, 뭔가 불합리한 일에는 열변을 토해가며 불만을 내쏟는 그런 사람이었다.
지금은 미란티스라고 하는 세계 굴지의 오픈스택 회사에서 무려 클라우드 디렉터라는 직책을 맡고있는 정말 대단한 사람.
취업 후 몇 주 지나지 않아서 당시 내 사수가 프로젝트를 줬다. SNMP라는 프로토콜이 뭔지 이해하고, 그걸로 모든 서버를 모니터링할 수 있게끔 세팅을 하라는 것. 기한은 대략 2주를 줬다.
뭐, 한국식으로 생각해서 빨리 끝내야한다는 마음가짐으로 한 1주일만에 끝내버렸는데, 당시 사수 왈,
"나는 너한테 빨리 끝내길 원한게 아니다. 니가 이게 뭔지 정확하게 이해하고, 니가 하려는 일이 뭔지 정확히 알면서 하길 원하는 거다. 앞으로 프로젝트할 때는 빨리 하려고 하지 마라"
근데 뭐 사실, 한국에서 태어나고 자라서 군대에 직장생활까지 하다온 나로서는, 아무리 그렇게 얘기해도 무조건 빨리 끝내야한다는 강박관념만은 못떨쳐내겠더라고.
하와이에서는 출근시간 8시에 퇴근시간 5시로 거의 정해져있다. 다른 곳보다는 1시간 빨리 시작해서 1시간 빨리 끝나는데, 지각을 했다면 지각한 시간만큼 일을 더 하면 된다라고 하는 일종의 사회적인 통념이 있다. 예를 들어, 8시 30분에 출근했다면, 5시 30분에 퇴근하면 괜찮단 얘기.
첫 출근해서 며칠 지나지 않았을 때 어느날 하루는 지인과 함께 저녁 약속이 잡혀있어서 5시에 퇴근을 해야만 하는 날이었는데 그날 8시 30분에 출근을 했다. 퇴근하기 직전에 30분 먼저 가도 되냐고 사수한테 얘길해야하는데, 한국식으로 이걸 얘기해야하나 말아야하나 정말이지 한 30분은 고민했던 것 같다.
아무래도 약속은 잡혀있었으니 말은 해야해서 용기를 내서, 딱 5시가 됐을 때 같이 근무하던 내 사수에게 "내가 오늘 일이 있어서 지금 가야될 거 같은데, 가도 될까?" 하고 물으니, 지금도 잊혀지지 않는, 굉장히 이상한 표정으로 날 보면서 "그걸 왜 나한테 물어봐? 니가 가고싶으면 가는 거지, 왜 그걸 나한테 물어보지?".
이런 일을 몇 번 겪은 뒤로는, 이러한 것을 물어보면 안된다는 것을 깨닫게됐다. 이후로는 너무 편해져서 나중에는 이렇게까지 됐다.
나: 야, 나 내일 모레 못나온다
사수: 어 그래? 뭐 무슨 심각한 일 있는 건 아니지?
나: 별 일 아냐. 걍 이러이러한 일이 좀 생겨서 어딜 좀 가야되는데 못나올 거 같아.
사수: 그날 뭐 특별한 거 없지?
나: 없어
사수: 오케
적는 김에 좀 더 적자면, 위의 에피소드로 봤을 때 내가 너무 직장생활을 날로하는 것 같지만, 사실 내 사수는 더 했다. 어느 날 아침에 출근하고 있는데 갑자기 전화가 오더니,
사수: 난데, 지금 출근 중이야?
나: 어 거의 다 왔어
사수: 오늘 우리집 애들 봐주는 베이비시터가 아무 얘기없이 안나와서, 오늘은 일 못나갈 것 같다. 특별한 일 없지?
나: 없어
사수: 그래 내일 봐.
이 정도는 그래도 애 때문에 그런 거니까 이해해줄만한데, 어떤 날은 사무실에서 일하다 한 3시쯤 되더니, "나 가야겠어. 내일 봐" 그러더니 휙 나가버렸다.
직장생활 참 편하죠잉
7년 만에 다시 젠투를 쓰기 시작했다. 사실 엄밀히 말하자면, 7년 전에는 그냥 설치만 잠깐 해봤던 것이고, 메인 데스크탑 배포판으로써의 젠투 사용은 2004년 이후로 처음이다. 예전에 실제 사용했던 젠투의 흔적들:
http://blog.naver.com/PostList.nhn?blogId=jswlinux&from=postList&categoryNo=10
이런저런 일들을 겪으면서 젠투에 정착하게 됐고, 현재 상당히 만족스럽게 쓰고있다. 예전에 처음 젠투를 쓸 때부터도 성향에 맞아서 잘 써왔지만, 지금은 더 만족스럽다. 아무래도 하드웨어와 소프트웨어가 당시보다 많이 발전해서겠지.
따라서, 당시보다 젠투에 대한 이해가 좀 더 깊어진 지금, 젠투 설치기를 다시 작성하려 한다. 젠투의 설치방식은 사실 2004년이나 지금이나 많이 바뀌진 않았다. 세세한 패키지의 이름 정도나 systemd의 차이 정도만 있을뿐, 여전히 한결 같다는 점은 마음에 든다.
그렇다면 왜 젠투인가.
저사양 컴퓨터를 제외하면, 컴파일시 최적화를 통한 이득은 거의 없다는 것이 이미 대다수의 유저들의 설전을 통해 정리가 완료됐다고 본다. 따라서, 젠투를 사용하는 것은 어디까지나 젠투가 지향하는 배포판의 관리방식이 유저의 사용 목적에 지극히 부합하기 때문이라고 보며, 나 역시도 그렇다.
예를 들자면, 내 경우는 내가 사용하는 패키지들이 LDAP을 지원한다면 최대한 LDAP 기능을 포함시켜서 설치했으면하며, 특히나 근무하는 곳의 규정상 모든 통신 프로토콜은 반드시 SSL을 사용하도록 강제하므로, 이 역시도 네트워크 관련 패키지라면 무조건 SSL을 활성화시켜서 설치하길 원하기 때문인데, 이런 점에서 젠투는 나에게 꼭 맞는 배포판이라고 볼 수 있다.
아쉬운 점은 요즘 젠투의 인기가 국내에서 많이 줄어들었는지, 젠투 설치기나 사용기 등을 검색해보면 최근 글이 아예 없다시피 했다. 물론 젠투 공식 핸드북이 워낙 잘 만들어져있어서 이제는 더 이상 설치기가 딱히 필요없기도 하지만, 보통 젠투를 처음 설치하면 누구나 설치 및 사용기를 작성하려고 하지않나 예상했다.
이 글은, 꼭 리눅스만이 아닌, 윈도우라도 설치/삭제 등을 밥 먹듯이해서 이제 파티션이 뭐고 운영체제가 뭔지 감은 잡고있으며, 문제발생시 구글링으로 스스로 해결하실 줄 아는 분들을 대상으로 한다.
들어가기에 앞서, 이 설치기는 아래의 환경으로 설치를 진행한다.
1. 리눅스 단독 설치
2. 유선 네트워크
3. systemd
4. multilib
5. KDE 5 Plasma
테스트해본답시고, 동일한 환경으로 젠투 설치를 2주일 새에 5번을 해봤으니 거의 문제가 없을 것으로 예상된다.
젠투 설치는 기본적으로 크게 다음과 같은 순서로 이루어진다.
1. 네트워크 사용이 가능한 다른 리눅스 배포판 부팅이미지나 젠투 부팅이미지로 부팅
2. 파티션 생성
3. 네트워크 및 설치에 필요한 환경 설정
4. 커널 설치
5. 부트로더, 로거, 크론 등 시스템 필수패키지 설치
6. 리부팅
사실 순서만 놓고보자면 우분투 등 다른 배포판의 설치과정과 거의 비슷하다. 다만, 저걸 자동으로 해주느냐 수작업으로 하느냐의 차이일 뿐. 젠투 설치에 익숙해지거나 위의 설치절차가 이해되면, 파티션 생성 이후의 과정에서는 각자 나름대로의 설치방법이 생기게 된다.
예전에 젠투 쓸 때는 "남자라면 stage1부터" 라는 이상하면서도 나름 이해되는 도전욕구를 불러일으키는 바닥부터 시작하는 것을 선호했는데, 지금은 굳이 그럴 필요가 없다. 어차피 systemd에 multilib 적용시켜서 설치하면, 사실상 전부 다 재컴파일 해야하기 때문에 GCC 제외하곤 결국 stage1부터 한 것과 똑같아진다. Stage1이 뭔지 모르는 분들을 위해 설명드리자면, 젠투를 설치하기 위해 젠투 설치 ISO 이미지와 stage 파일을 다운로드해서 설치를 시작하면, 젠투설치를 하게해주는 GCC 컴파일러와 몇몇 툴들은 stage 파일에서 제공되는 것들을 사용하게 된다. 아무 것도 없는 허허벌판에서 손으로 집을 지을 순 없으니, 최소한의 툴은 제공해주는 셈이다. 그런데, 일부 유저들은 "난 얘네들마저도 내 컴퓨터에서 컴파일된 것을 사용하고 싶은데?"라고 생각할 수 있다. GCC 컴파일러, Perl/Python 인터프리터 등, 내 컴퓨터에서 컴파일되어 최적화된 것을 사용한다면, 얘네들이 만들어내는 시스템의 핵심 툴들까지 전부 다 내 컴퓨터만을 위해 최적화된 버전이 아닌가. 따라서, 젠투를 설치하는데에 있어서 핵심적인 툴들부터 내 컴퓨터에 맞게 다시 설치하는 과정이 stage1이다.
KDE를 선택한 이유는, 사실 개인적으로 KDE를 별로 안좋아했고 예전에 잠깐씩 설치해서 써본 경험으로는 KDE가 불편해서 나한테 안맞는 윈도우매니저라는 고정관념이 있었는데, 이번에 젠투 빌드하면서 GNOME이 어떤 버그로 인해서 설치가 되지않는 문제가 있었고, 그로인해 어쩔 수 없이 선택한 KDE 5 플라즈마가 너무나도 마음에 들었기 때문. KDE 5 플라즈마 구축해서 써오면서 알게된 건데, 생각보다 QT 기반의 소프트웨어들이 많았고, 그간 내가 gtk 기반 소프트웨어라고 알고 썼던 것이 알고보니 QT 기반이었다거나 하는 것들이 종종 있었다 (xca 같은 소프트웨어).
기본 시스템 빌드하는데 소요되는 총 시간은 하드웨어 성능에 따라 다르지만, 대략 3시간 정도 예상하면 되지않나 싶다. 요즘 젠투 설치는 너무 쉬워서 핸드북만 봐도 사실 딱히 쓸 게 없는데, 나는 그 과정에서 일부 선행되어야하는 작업들, 알고있어야하는 것들을 발견해서 이 설치기를 쓴다.
다음편으로...