Trans:GentooLinuxX86QuickInstallGuide
목차
개요
이 안내서에는 젠투 스테이지 3 설치를 완료하는데 사용해야 할 명령들이 있습니다. 스테이지 3과 포티지 스냅샷을 내려받기 위해 인터넷에 연결할 필요가 있습니다.
중요: 처음 사용자라면 설치 과정에 대해 더 많은 내용을 제공해주는 핸드북 을 읽으시는 것이 좋습니다
타이밍 출력은 프로그램 실행 과정을 마치기 까지 많은 초 단위 시간을 소요하는 모든 명령에 따릅니다. 다음 명령에 대한 시간은 512MB의 RAM과 SATA 컨트롤러에 장착된 2개의 디스크를 지닌 AMD 2000 1.66GHz 시스템에서 측정되었습니다.
코드 예제 1-1. 테스트 박스 사양 |
(다음의 사양과 타이밍 정보는 여러분의 설치를 완료하는데 필요한 대략적 시간을 추산하는데 도움을 줄 것입니다.) |
빠른 설치 안내
설치 매체
미러 중 한 곳에서 CD를 내려받습니다. releases/x86/current-iso/ 에서 minimal CD ISO를 찾을 수 있습니다. minimal 설치 CD는 인터넷 기반 설치에 대해서만 유용합니다. 이 안내서에선 minimal CD를 사용할 것입니다.
CD를 굽고 이것으로 부팅합니다.
CD 부팅하기
어떤 부트 옵션이 존재하는지 찾아보기 위해 부트 화면에서 [F2]를 누릅니다. gentoo로 시작하거나 gentoo-nofb로 시작할 수 있습니다. LiveCD로 부팅하셨다면, 시작시 X 그래픽 환경을 막기 위해 nox 옵션을 추가하는 것 을 잊지 마시기 바랍니다. 다양한 옵션들이 여러 기능을 활성화 하거나 비활성화 합니다. 부팅이 잘 진행되었다면, 모든 하드웨어들이 감지되고 모든 하드웨어의 모듈이 로드 될 것입니다. 적절한 부팅에 실패하거나 부팅 과정에 문제에 걸렸다면, 다른 방법의 설정으로 시험할 필요가 있습니다. 가장 안전한 방법은 아마도 nodetect 옵션을 사용하여 필요한 모듈을 직접 불러오는 방법일 것입니다.
코드 예제 2-1. minimal CD로 부팅하기 |
Gentoo Linux Installation LiveCD http://www.gentoo.org Enter to Boot; F1 for kernels F2 for options. |
선택사항: 모듈 불러오기
nodetect 옵션을 사용하셨다면, 필요한 모듈을 불러와야 합니다. 네트워크를 활성화 하고 디스크에 접근할 필요가 있습니다. lspci 명령은 하드웨어를 확인하는데 도움을 줄 것입니다.
코드 예제 2-2. 필요한 모듈 불러오기 |
livecd root # lspci (필요한 모듈을 확인하기 위해 lspci를 사용합니다) |
네트워크 설정
아직 네트워크가 동작하지 않는다면 네트워크를 설정하기 위해 net-setup을 사용할 수 있습니다. 설정에 앞서 modprobe를 사용하여 네트워크 카드에 대한 지원을 불러올 필요가 있을지도 모릅니다. ADSL을 사용한다면, pppoe-setup과 pppoe-start를 사용합니다. PPTP 지원을 위해, 먼저 /etc/ppp/chap-secrets 와 /etc/ppp/options.pptp를 편집하고, 그 다음 pptp <server ip>를 사용합니다.
무선 접근을 위해, 무선연결 인자를 설정하기 위해 iwconfig 를 사용하고,그 다음 net-setup을 다시 사용하거나, ifconfig 그리고, dhcpcd, route를 직접 실행합니다.
프록시망 뒤에 있다면, export http_proxy 그리고 ftp_proxy, RSYNC_PROXY 를 이용하여 시스템 초기화하는 것을 잊지 마시기 바랍니다.
코드 예제 2.3: 안내 방식으로 네트워크 설정하기 |
livecd root # net-setup eth0 |
대신, 네트워크를 직접 시작할 수 있습니다. 다음 예제는 IP 주소 192.168.1.10 을 여러분의 PC에 할당하고 라우터 및 네임서버의 주소로 192.168.1.1를 정의합니다.
코드 예제 2.4: 직접 방식으로 네트워크 설정하기 |
livecd root # ifconfig eth0 192.168.1.10/24 livecd root # route add default gw 192.168.1.1 |
설치 CD는 sshd 서버를 시작하고, 다른 사용자들을 추가하며, irssi (명령줄 기반 대화 클라이언트)를 실행하고, links를 사용하여 웹을 탐색할 수 있도록 합니다.
선택사항: ssh를 통해 여러분의 새로운 박스에 연결하기
가장 흥미로운 기능은 역시 sshd 입니다. 이것을 시작하고 다른 머신에서 연결할 수 있으며 이 안내서에 있는 명령들을 자르고 붙여넣을 수 있습니다.
코드 예제 2-5: sshd 시작하기 |
livecd root # time /etc/init.d/sshd start * Generating hostkey ... |
이제, 다른 PC에서 연결할 수 있도록 LiveCD에서 루트 암호를 설정합니다. 보통 일반적인 환경에서 ssh를 통해 root접속을 허용하는 것은 추천하지 않는 것임을 알아두시기 바랍니다. 로컬 네트워크를 신뢰할 수 없다면, 길고 복잡한 암호를 사용하여 첫 재부팅 다음에 사라질 암호를 한번만 사용하는 것이 좋습니다.
코드 예제 2.6: 루트 암호 설정하기 |
livecd root # passwd New UNIX password: 암호를 입력합니다 |
이제, 다른 PC에서 터미널을 시작하고 여러분의 새로운 박스에 연결하며, 이 안내서의 나머지 부분을 다른 창에서 따라가고, 명령을 자르고 붙여넣을 수 있습니다.
코드 예제 2.7: 다른 PC에서 새로운 박스에 연결하기 |
(새로운 박스의 IP주소를 사용합니다) $ ssh root@192.168.1.10 |
디스크 준비하기
파티션 배치를 만들기 위해 fdisk나 cfdisk를 사용합니다. 최소한 스왑 파티션 (유형 82번)과 하나의 리눅스 파티션 (유형 83번)이 필요합니다. 다음 시나리오에서는 핸드북에서 사용할 /boot와 스왑, 메인 파티션을 만듭니다. 여러분 의 디스크를 sda로 대체합니다. 대부분의 시스템에서는 부팅 가능한 플래그를 무시하지만, 어떤 경우에는 필요합니다. 이 플래그를 fdisk의 a 명령으로 부트 파티션에 설정합니다.
코드 예제 2.8: 파티션 만들기 |
livecd ~ # fdisk /dev/sda (이 안내서의 나머지에서는 다음 파티션 형태를 사용합니다) |
리눅스 파티션에 파일 시스템을 만들기 위해서 mke2fs 그리고, mke2fs -j, mkreiserfs, mkfs.xfs mkfs.jfs 를 사용합니다. mkswap과 swapon을 사용하여 스왑 파티션을 초기화 합니다.
코드 예제 2.9: 파일 시스템을 만들고 스왑 활성화 하기 |
(ext2는 /boot 파티션에 필요한 전부입니다) livecd ~ # mke2fs /dev/sda1 |
새로 만들어진 파일 시스템을 /mnt/gentoo에 마운트 합니다. 다른 마운트 포인트가 필요하다면 ( /mnt/gentoo/boot와 같은) 디렉터리를 만들고 그들도 똑같이 마운트 합니다.
코드 예제 2.10: 파일 시스템 마운트하기 |
livecd ~ # mount /dev/sda3 /mnt/gentoo livecd ~ # mkdir /mnt/gentoo/boot |
스테이지 설정하기
먼저 date MMDDhhmmYYYY를 사용하여 날짜와 시간이 정확하게 설정되었는지 확인합니다. UTC 시간대를 사용합니다.
코드 예제 2.11: 날짜와 UTC 시간 설정하기 |
(시간 확인) livecd gentoo # date |
다음에는 미러중 한 곳에서 스테이지를 내려받습니다.
코드 예제 2.12: 스테이지 3 아카이브 내려받기 |
livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml (미러를 선택하고, releases/x86/current-stage3/ 디렉토리로 이동한후, |
/mnt/gentoo 로 이동하고 tar xjpf <stage3 tarball> 를 사용하여 스테이지를 풀어줍니다.
코드 예제 2.13: 스테이지 3 아카이브 풀어주기 |
livecd gentoo # time tar xjpf stage3* real 1m14.157s |
최신 포티지 스냅샷을 설치합니다. 스테이지 3 아카이브에 대해 진행합니다: 리스트에서 가까운 미러를 선택하고, 최신 스냅샷을 내려받아 풀어줍니다.
코드 예제 2.14: 최신 포티지 스냅샷 내려받기 |
livecd gentoo # cd /mnt/gentoo/usr livecd usr # links http://www.gentoo.org/main/en/mirrors.xml |
코드 예제 2.15: 포티지 스냅샷 풀어주기 |
livecd usr # time tar xjf portage-lat* real 0m40.523s |
루트 위치 변경하기
/proc과 /dev 파일 시스템을 마운트하고, /etc/resolv.conf 파일을 복사한 다음에 젠투 환경으로 루트 위치를 변경(chroot)합니다.
코드 예제 2.16: 루트 위치 변경하기 |
livecd usr # cd / livecd / # mount -t proc proc /mnt/gentoo/proc |
시간대 설정하기
/usr/share/zoneinfo에 나열된 올바른 항목을 사용하여 시간대 정보를 설정합니다.
코드 예제 2.17: 시간대 설정하기 |
livecd / # ls /usr/share/zoneinfo (예시로 브뤼셀 시간대를 사용합니다.) |
호스트 이름과 도메인 이름 설정하기
/etc/conf.d/hostname 과 /etc/hosts에 호스트 이름을 설정합니다. 다음 예제에서, mybox를 호스트 이름으로 사용하고 at.myplace 를 도메인 이름으로 사용합니다. nano를 사용하여 설정 파일을 편집하거나 다음 명령을 사용할 수 있습니다.
코드 예제 2.18: 호스트와 도메인 이름 설정하기 |
livecd / # cd /etc livecd etc # echo "127.0.0.1 mybox.at.myplace mybox localhost" > hosts |
커널 설정
커널 소스를 설치하고 (보통 gentoo-sources를 사용합니다) 설정하고 컴파일 한 다음, arch/i386/boot/bzImage파일을 /boot로 복사합니다.
코드 예제 2.19: 커널 소스 설치, 컴파일하고 커널 설치하기 |
livecd etc # time emerge gentoo-sources real 2m51.435s |
시스템 설정하기
etc/fstab을 편집하고, BOOT 그리고 ROOT, SWAP을 실제 파티션 이름으로 바꿔줍니다. 여러분이 설치한 파일 시스템과 일치하는지 확인하는 것을 잊지 마시기 바랍니다.
코드 예제 2.20: fstab 예제 |
livecd linux # cd /etc livecd etc # nano -w fstab |
/etc/conf.d/net 에서 네트워크를 설정합니다. net.eth0 초기화 스크립트를 기본 실행 레벨에 추가합니다. 여러 개의 NIC를 사용한다면, net.eth0 초기화 스크립트에 심볼릭 링크를 걸어주고 같은 방법으로 기본 실행레벨에 추가해줍니다. 호스트 이름 설정하는것 또한 잊지 마시기 바랍니다. /etc/conf.d/net 또는 /etc/conf.d/hostname 을 nano로 편집하거나 다음 명령을 사용합니다.
코드 예제 2.21: 네트워크 설정 |
livecd etc # cd init.d livecd init.d # ln -s net.lo net.eth0 |
참고: PCMCIA 카드 지원이 필요하다면, pcmciautils 를 이머지 하시기 바랍니다.
passwd를 사용하여 루트 암호를 설정합니다.
코드 예제 2.22: 루트 암호 설정하기 |
livecd conf.d # passwd New UNIX password: 암호를 입력합니다 |
앞서 사용한 시간대 정의를 위해 /etc/timezone을 편집합니다.
코드 예제 2.23: /etc/timezone 편집하기 |
Europe/Brussels |
/etc/rc.conf와 /etc/conf.d/keymaps에 있는 시스템 설정을 확인하고, 필요하다면 이 파일들을 편집합니다.
코드 예제 2.24: 선택사항: 일부 설정파일 편집하기 |
livecd conf.d # nano -w /etc/rc.conf |
시스템 도구 설치하기
syslog-ng와 같은 시스템 로거를 설치하고, vixie-cron과 같은 크론 데몬을 설치한 후, 이들을 기본 실행레벨에 추가합니다.
참고: 크론 데몬은 MTA에 의존합니다. mail-mta/ssmtp가 의존 관계에 의해 끌려올 것입니다. 더 발달된 MTA를 사용하고 싶다면, 바로 설치하고 싶을지도 싶을지도 모릅니다. 정 급하다면, ssmtp를 설치한 상태에서 두고, 원하는 MTA를 설치한 다음에 ssmtp를 제거합니다.
코드 예제 2.25: 시스템 로거와 크론 데몬 설치하기 |
livecd conf.d # time emerge syslog-ng vixie-cron real 1m54.099s |
필요하다면 파일 시스템 도구 (xfsprogs, reiserfsprogs, 또는 jfsutils)와 네트워크 도구(dhcpcd 혹은 ppp)를 설치합니다.
부트로더 설정하기
grub을 이머지 하고 설정합니다. initramfs를 사용하는 경우 필요한 부트 인자를 새로 고치는 것을 잊지 마시기 바랍니다.
코드 예제 2.27: grub 이머지하고, 설정 파일 편집하기 |
livecd conf.d # time emerge grub real 1m4.634s |
코드 예제 2.28: grub.conf 예제 |
default 0 timeout 10 |
코드 예제 2.29: grub 설치하기 |
livecd conf.d # grub Probing devices to guess BIOS drives. This may take a long time. |
재부팅
루트 위치가 바뀐 환경에서 빠져 나오고, 모든 파일 시스템의 마운트를 해제한 다음 재부팅합니다.
코드 예제 2.30: 재부팅하기 |
livecd conf.d # exit livecd / # umount -l /mnt/gentoo/dev{/shm,/pts,} |
설치 마무리하기
참고: 우리 테스트 박스상에서 minimal CD의 부트 프롬프트를 띄우고 재부팅 한 다음의 로그인 프롬프트가 뜨는데 걸린 총 시간은 00:42:31 입니다. 네, 한시간도 채 걸리지 않았습니다! 참고로 이 시간은 스테이지 3, 포티지 스냅샷 그리고 여러 패키지를 내려받은 시간과 커널을 설정하는데 걸린 모든 시간이 포함됩니다.
root로 로그인하고, 매일 사용할 사용자들을 위해 useradd로 사용자를 하나 이상 추가합니다.
코드 예제 2.31: 다른 PC에서 새 박스로 접속하기 |
(known_hosts 파일을 비우시기 바랍니다. 왜냐면 여러분의 새로운 박스는 새로 생성된 호스트 정의키를 |
코드 예제 2.32: 새 사용자 추가하기 |
mybox ~ # useradd -g users -G lp,wheel,audio,cdrom,portage,cron -m john mybox ~ # passwd john |
마지막 설정 손보기
/etc/make.conf에 있는 SYNC와 GENTOO_MIRRORS 변수를 설정하여 가까운 미러를 선택하거나 mirrorselect를 사용하는 것으로 시작합니다. 이 시점에서 동시 컴파일 처리 갯수를 지정할 수 있습니다.
코드 예제 2.33: mirrorselect를 사용하고 MAKEOPTS 설정하기 |
mybox ~ # emerge mirrorselect mybox ~ # mirrorselect -i -o >> /etc/make.conf |
이제 몇몇 USE 플래그를 활성화 하거나 비활성화 할 좋은 시점 입니다. 현재 설치된 모든 패키지의 목록을 나열하고, 패키지들의 활성화 그리고 비활성화된 USE 플래그를 보려면 emerge -vpe world 를 실행합니다. USE 변수를 정의하려면 /etc/make.conf를 편집하거나 다음 명령을 사용합니다:
코드 예제 2.34: 사용중인 USE 플래그를 보고 일부를 활성화 하거나 비활성화 하기 |
mybox ~ # emerge -vpe world (포티지는 패키지와 그들이 사용하는 USE 플래그를 보여줍니다. |
최신 버전의 glibc 에서는 로캘 설정을 정의하기 위해 /etc/locale.gen을 사용합니다.
코드 예제 2.35: 로캘 정의하기 |
mybox ~ # cd /etc mybox etc # nano -w locale.gen |
마지막이지만 결코 사소한 부분은 아닌, 여러분이 결정한 필요성에 맞춰 코드를 최적화 하기 위해 /etc/make.conf에 있는 CFLAGS 변수 값을 대체하고 싶으실 것입니다. 긴 목록의 플래그 사용이 드물게 필요할 때가 있고, 심지어는 이로 인하여 시스템의 손상을 야기할 수도 있다는 것을 참고하시기 바랍니다. 프로세서 유형을 march 옵션에 지정하고 -O2 -pipe 옵션을 붙이는 것을 추천합니다.
또한 ~x86으로 전환하고 싶을 것입니다. 일부 깨진 ebuild나 패키지에 대해 감수할 수 있을때만 이를 행하시는 것이 좋습니다. 오히려 시스템의 안정성을 유지하려 한다면, ACCEPT_KEYWORDS 변수를 추가하지 마십시오.
코드 예제 2.36: make.conf 최종 편집 |
mybox etc # nano -w make.conf (CFLAGS에서 여러분의 CPU 유형에 대해 -march 를 설정합니다) |
최근 설정 변경을 완전하게 사용하도록 하기 위해 여러분의 전체 시스템을 재컴파일 하고 싶으실 것입니다. 완료되기까지 좀 오랜 시간이 걸릴 것이고, 대신 약간의 속도 향상을 얻을 수 있습니다. 새 버전의 패키지가 출시될때마다 여러분은 시스템 스스로 점진적으로 최적화하>게 할 수도 있습니다. 그러나 시스템 관리 일관성 측면에서 봤을때, 재컴파일은 역시 좋은 생각입니다. 일관되게 빌드한 시스템과 전체를 보증하는 이득에 대한 논의 내용에 대해서는 젠투 GCC 업그레이드 안내서를 보시기 바랍니다.
릴리즈 이후로 이미 갱신된 패키지 혹은 새 USE 플래그에 영향을 받은 패키지만 재 컴파일 하려면 오랜 시간이 걸릴 것입니다. 또한 업그레이드를 막는 패키지를 제거해야 할 지도 모릅니다. emerge -vpuD --newuse world의 출력으로부터 [blocks B]를 확인하고 이들을 제거하기 위해 emerge -C 를 사용합니다.
코드 예제 2.37: 패키지 갱신하기 |
(~x86으로 변경하면 수많은 패키지들이 업그레이드 됨을 참고해주시기 바랍니다) mybox etc # emerge -vpuD --newuse world |
다음에 할 일
여러분의 새로운 젠투 머신이 뭘 하겠다고 가정했느냐에 따라, 여러분은 아마도 서버 프로그램을 설치하거나 데스크톱 시스템을 설치하고 싶을 것입니다. 단적인 예로, emerge gnome과 emerge kde은 위에 설명한대로 설치한 ~x86 시스템에 시간이 좀 걸릴 것입니다. 두 가지 경우는 같은 시작점으로부터 설치됩니다.
여러분의 선택에 따른 프로그램을 어떻게 설치하고 설정하는지 찾아보기 위해, 문서 목록을 확인해보시는 것이 좋습니다.
중요: 다음은 단지 예시일 뿐입니다. 권장하는 설치 방법을 의미하진 않습니다
코드 예제 2.38: GNOME 이머지하기 |
mybox etc # emerge -vp gnome (패키지 목록과 패키지들의 USE 플래그를 본 후 |
코드 예제 2.38: KDE 이머지하기 |
mybox etc # emerge -vp kde-meta (패키지 목록과 패키지들의 USE 플래그를 본 후 |