"Trans:GentooLinuxX86QuickInstallGuide"의 두 판 사이의 차이

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기
잔글 (색 표시 오류 수정)
(일부 의역, HTML을 위키 문법으로 수정.)
 
(같은 사용자의 중간 판 3개는 보이지 않습니다)
42번째 줄: 42번째 줄:
 
<nowiki>livecd root # modprobe r8169</nowiki><br/>}}
 
<nowiki>livecd root # modprobe r8169</nowiki><br/>}}
 
==== 네트워크 설정 ====
 
==== 네트워크 설정 ====
아직 네트워크가 동작하지 않는다면 네트워크를 설정하기 위해 <font color="blue">net-setup</font>을 사용할 수 있습니다. 설정에 앞서 <font color="blue">modprobe</font>를 사용하여 네트워크 카드에 대한 지원을 불러올 필요가 있을지도 모릅니다. ADSL을 사용한다면, <font color="blue">pppoe-setup</font><font color="blue">pppoe-start</font>를 사용합니다. PPTP 지원을 위해, 먼저 <font color="#007700">/etc/ppp/chap-secrets</font> <font color="#007700"> /etc/ppp/options.pptp</font>를 편집하고, 그 다음 <font color="blue">pptp <server ip></font>를 사용합니다.
+
아직 네트워크가 동작하지 않는다면 네트워크를 설정하기 위해 {{blue|net-setup}}을 사용할 수 있습니다. 설정에 앞서 {{blue|modprobe}}를 사용하여 네트워크 카드에 대한 지원을 불러올 필요가 있을지도 모릅니다. ADSL을 사용한다면, {{blue|pppoe-setup}}{{blue|pppoe-start}}를 사용합니다. PPTP 지원을 위해, 먼저 {{green|/etc/ppp/chap-secrets}} {{green| /etc/ppp/options.pptp}}를 편집하고, 그 다음 {{blue|pptp <server ip>}}를 사용합니다.
  
무선 접근을 위해, 무선연결 인자를 설정하기 위해 <font color="blue">iwconfig</font> 를 사용하고,그 다음 <font color="blue">net-setup</font>을 다시 사용하거나, {{{#0000ff ifconfig}}} 그리고, <font color="blue">dhcpcd, route</font>를 직접 실행합니다.
+
무선 접근을 위해, 무선연결 인자를 설정하기 위해 {{blue|iwconfig}} 를 사용하고,그 다음 {{blue|net-setup}}을 다시 사용하거나, {{blue| ifconfig}} 그리고, {{blue|dhcpcd, route}}를 직접 실행합니다.
  
프록시망 뒤에 있다면, <font color="blue">export http_proxy 그리고 ftp_proxy, RSYNC_PROXY</font> 를 이용하여 시스템 초기화하는 것을 잊지 마시기 바랍니다.
+
프록시망 뒤에 있다면, {{blue|export http_proxy 그리고 ftp_proxy, RSYNC_PROXY}} 를 이용하여 시스템 초기화하는 것을 잊지 마시기 바랍니다.
  
 
{{Example|코드 예제 2.3: 안내 방식으로 네트워크 설정하기|<nowiki>livecd root # net-setup eth0</nowiki>}}
 
{{Example|코드 예제 2.3: 안내 방식으로 네트워크 설정하기|<nowiki>livecd root # net-setup eth0</nowiki>}}
56번째 줄: 56번째 줄:
 
<nowiki>livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf</nowiki><br/>}}
 
<nowiki>livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf</nowiki><br/>}}
  
설치 CD는 <font color="blue">sshd</font> 서버를 시작하고, 다른 사용자들을 추가하며, <font color="blue">irssi</font> (명령줄 기반 대화 클라이언트)를 실행하고, <font color="blue">links</font>를 사용하여 웹을 탐색할 수 있도록 합니다.
+
설치 CD는 {{blue|sshd}} 서버를 시작하고, 다른 사용자들을 추가하며, {{blue|irssi}} (명령줄 기반 대화 클라이언트)를 실행하고, {{blue|links}}를 사용하여 웹을 탐색할 수 있도록 합니다.
  
 
==== 선택사항: ssh를 통해 여러분의 새로운 박스에 연결하기 ====
 
==== 선택사항: ssh를 통해 여러분의 새로운 박스에 연결하기 ====
251번째 줄: 251번째 줄:
  
 
==== 시스템 도구 설치하기 ====
 
==== 시스템 도구 설치하기 ====
<font color="blue">syslog-ng</font>와 같은 시스템 로거를 설치하고, <font color="blue">vixie-cron</font>과 같은 크론 데몬을 설치한 후, 이들을 기본 실행레벨에 추가합니다.
+
{{blue|syslog-ng}}와 같은 시스템 로거를 설치하고, {{blue|vixie-cron}}과 같은 크론 데몬을 설치한 후, 이들을 기본 실행레벨에 추가합니다.
  
{{Note|크론 데몬은 MTA에 의존합니다. '''mail-mta/ssmtp'''가 의존 관계에 의해 끌려올 것입니다. 더 발달된 MTA를 사용하고 싶다면, 바로 설치하고 싶을지도 싶을지도 모릅니다. 정 급하다면, ssmtp를 설치한 상태에서 두고, 원하는 MTA를 설치한 다음에 ssmtp를 제거합니다.}}
+
{{Note|크론 데몬은 MTA에 의존합니다. '''mail-mta/ssmtp'''가 의존 관계에 의해 끌려올 것입니다. 더 발달된 MTA를 사용하고 싶다면, 바로 설치하고 싶을지도 모릅니다. 정 급하다면, ssmtp를 설치한 상태에서 두고, 원하는 MTA를 설치한 다음에 ssmtp를 제거합니다.}}
  
 
{{Example|코드 예제 2.25: 시스템 로거와 크론 데몬 설치하기|<nowiki>livecd conf.d # time emerge syslog-ng vixie-cron</nowiki><br/><br/>
 
{{Example|코드 예제 2.25: 시스템 로거와 크론 데몬 설치하기|<nowiki>livecd conf.d # time emerge syslog-ng vixie-cron</nowiki><br/><br/>
262번째 줄: 262번째 줄:
 
<nowiki>livecd conf.d # rc-update add vixie-cron default</nowiki>}}
 
<nowiki>livecd conf.d # rc-update add vixie-cron default</nowiki>}}
  
필요하다면 파일 시스템 도구 (<font color="blue">xfsprogs</font>, <font color="blue">reiserfsprogs</font>, 또는 <font color="blue">jfsutils</font>)와 네트워크 도구(<font color="blue">dhcpcd</font> 혹은 <font color="blue">ppp</font>)를 설치합니다.
+
필요하다면 파일 시스템 도구 ({{blue|xfsprogs}}, {{blue|reiserfsprogs}}, 또는 {{blue|jfsutils}})와 네트워크 도구({{blue|dhcpcd}} 혹은 {{blue|ppp}})를 설치합니다.
  
 
==== 부트로더 설정하기 ====
 
==== 부트로더 설정하기 ====
331번째 줄: 331번째 줄:
  
 
==== 마지막 설정 손보기 ====
 
==== 마지막 설정 손보기 ====
<font color="#007700">/etc/make.conf</font>에 있는 <font color="blue">SYNC</font><font color="blue">GENTOO_MIRRORS</font> 변수를 설정하여 가까운 미러를 선택하거나 <font color="blue">mirrorselect</font>를 사용하는 것으로 시작합니다. 이 시점에서 동시 컴파일 처리 갯수를 지정할 수 있습니다.
+
{{green|/etc/make.conf}}에 있는 {{blue|SYNC}}{{blue|GENTOO_MIRRORS}} 변수를 설정하여 가까운 미러를 선택하거나 {{blue|mirrorselect}}를 사용하는 것으로 시작합니다. 이 시점에서 동시 컴파일 처리 갯수를 지정할 수 있습니다.
  
 
{{Example|코드 예제 2.33: mirrorselect를 사용하고 MAKEOPTS 설정하기|<nowiki>mybox ~ # emerge mirrorselect</nowiki><br/>
 
{{Example|코드 예제 2.33: mirrorselect를 사용하고 MAKEOPTS 설정하기|<nowiki>mybox ~ # emerge mirrorselect</nowiki><br/>
339번째 줄: 339번째 줄:
 
<nowiki>mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf</nowiki>}}
 
<nowiki>mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf</nowiki>}}
  
이제 몇몇 USE 플래그를 활성화 하거나 비활성화 할 좋은 시점 입니다. 현재 설치된 모든 패키지의 목록을 나열하고, 패키지들의 활성화 그리고 비활성화된 USE 플래그를 보려면 <font color="blue">emerge -vpe world</font> 를 실행합니다. USE 변수를 정의하려면 <font color="#007700">/etc/make.conf</font>를 편집하거나 다음 명령을 사용합니다:
+
이제 몇몇 USE 플래그를 활성화 하거나 비활성화 할 좋은 시점 입니다. 현재 설치된 모든 패키지의 목록을 나열하고, 패키지들의 활성화 그리고 비활성화된 USE 플래그를 보려면 {{blue|emerge -vpe world}} 를 실행합니다. USE 변수를 정의하려면 {{green||/etc/make.conf}}를 편집하거나 다음 명령을 사용합니다:
  
 
{{Example|코드 예제 2.34: 사용중인 USE 플래그를 보고 일부를 활성화 하거나 비활성화 하기|<nowiki>mybox ~ # emerge -vpe world</nowiki><br/>
 
{{Example|코드 예제 2.34: 사용중인 USE 플래그를 보고 일부를 활성화 하거나 비활성화 하기|<nowiki>mybox ~ # emerge -vpe world</nowiki><br/>
347번째 줄: 347번째 줄:
 
<nowiki>mybox ~ # echo 'USE="nptl nptlonly ipv6 -fortran unicode"' >> /etc/make.conf</nowiki>}}
 
<nowiki>mybox ~ # echo 'USE="nptl nptlonly ipv6 -fortran unicode"' >> /etc/make.conf</nowiki>}}
  
최신 버전의 glibc 에서는 로캘 설정을 정의하기 위해 <font color="#007700">/etc/locale.gen</font>을 사용합니다.
+
최신 버전의 glibc 에서는 로캘 설정을 정의하기 위해 {{green|/etc/locale.gen}}을 사용합니다.
  
 
{{Example|코드 예제 2.35: 로캘 정의하기|<nowiki>mybox ~ # cd /etc</nowiki><br/>
 
{{Example|코드 예제 2.35: 로캘 정의하기|<nowiki>mybox ~ # cd /etc</nowiki><br/>
353번째 줄: 353번째 줄:
 
<nowiki>mybox etc # locale-gen</nowiki>}}
 
<nowiki>mybox etc # locale-gen</nowiki>}}
  
마지막이지만 결코 사소한 부분은 아닌, 여러분이 결정한 필요성에 맞춰 코드를 최적화 하기 위해 <font color="#007700">/etc/make.conf</font>에 있는 <font color="blue">CFLAGS</font> 변수 값을 대체하고 싶으실 것입니다. 긴 목록의 플래그 사용이 드물게 필요할 때가 있고, 심지어는 이로 인하여 시스템의 손상을 야기할 수도 있다는 것을 참고하시기 바랍니다. 프로세서 유형을 <font color="blue">march</font> 옵션에 지정하고 <font color="blue">-O2 -pipe</font> 옵션을 붙이는 것을 추천합니다.
+
마지막이지만 결코 사소한 부분은 아닌, 여러분이 결정한 필요성에 맞춰 코드를 최적화 하기 위해 {{green|>/etc/make.conf}}에 있는 {{blue|CFLAGS}} 변수 값을 대체하고 싶으실 것입니다. 긴 목록의 플래그 사용이 드물게 필요할 때가 있고, 심지어는 이로 인하여 시스템의 손상을 야기할 수도 있다는 것을 참고하시기 바랍니다. 프로세서 유형을 {{blue|march}} 옵션에 지정하고 {{blue|-O2 -pipe}} 옵션을 붙이는 것을 추천합니다.
  
또한 '''~x86'''으로 전환하고 싶을 것입니다. 일부 깨진 ebuild나 패키지에 대해 감수할 수 있을때만 이를 행하시는 것이 좋습니다. 오히려 시스템의 안정성을 유지하려 한다면, <font color="blue">ACCEPT_KEYWORDS</font> 변수를 추가하지 마십시오.
+
또한 '''~x86'''으로 전환하고 싶을 것입니다. 일부 깨진 ebuild나 패키지를 감수할 수 있을때만 이를 행하시는 것이 좋습니다. 오히려 시스템의 안정성을 유지하려 한다면, {{blue|ACCEPT_KEYWORDS}} 변수를 추가하지 마십시오.
  
 
{{Example|코드 예제 2.36: make.conf 최종 편집|<nowiki>mybox etc # nano -w make.conf</nowiki><br/>
 
{{Example|코드 예제 2.36: make.conf 최종 편집|<nowiki>mybox etc # nano -w make.conf</nowiki><br/>
363번째 줄: 363번째 줄:
 
<nowiki>ACCEPT_KEYWORDS="~x86"</nowiki>}}
 
<nowiki>ACCEPT_KEYWORDS="~x86"</nowiki>}}
  
최근 설정 변경을 완전하게 사용하도록 하기 위해 여러분의 전체 시스템을 재컴파일 하고 싶으실 것입니다. 완료되기까지 좀 오랜 시간이 걸릴 것이고, 대신 약간의 속도 향상을 얻을 수 있습니다. 새 버전의 패키지가 출시될때마다 여러분은 시스템 스스로 점진적으로 최적화하>게 할 수도 있습니다. 그러나 시스템 관리 일관성 측면에서 봤을때, 재컴파일은 역시 좋은 생각입니다. 일관되게 빌드한 시스템과 전체를 보증하는 이득에 대한 논의 내용에 대해서는 [http://www.gentoo.org/doc/en/gcc-upgrading.xml 젠투 GCC 업그레이드 안내서]를 보시기 바랍니다.
+
최근 설정 변경을 완전하게 사용하도록 하기 위해 여러분의 전체 시스템을 재컴파일 하고 싶으실 것입니다. 완료되기까지 좀 오랜 시간이 걸릴 것이고, 대신 약간의 속도 향상을 얻을 수 있습니다. 새 버전의 패키지가 출시될때마다 여러분은 시스템 스스로 점진적으로 최적화하게 할 수도 있습니다. 그러나 시스템 관리 일관성 측면에서 봤을때, 재컴파일은 역시 좋은 생각입니다. 일관되게 빌드한 시스템과 전체를 보증하는 이득에 대한 논의 내용에 대해서는 [http://www.gentoo.org/doc/en/gcc-upgrading.xml 젠투 GCC 업그레이드 안내서]를 보시기 바랍니다.
  
릴리즈 이후로 이미 갱신된 패키지 혹은 새 USE 플래그에 영향을 받은 패키지만 재 컴파일 하려면 오랜 시간이 걸릴 것입니다. 또한 업그레이드를 막는 패키지를 제거해야 할 지도 모릅니다. <font color="blue">emerge -vpuD --newuse world</font>의 출력으로부터 '''[blocks <font color="red"><b>B</b></font>]'''를 확인하고 이들을 제거하기 위해 <font color="blue">emerge -C</font> 를 사용합니다.
+
릴리즈 이후로 이미 갱신된 패키지 혹은 새 USE 플래그에 영향을 받은 패키지만 재 컴파일 하려면 오랜 시간이 걸릴 것입니다. 또한 업그레이드를 막는 패키지를 제거해야 할 지도 모릅니다. {{blue|emerge -vpuD --newuse world}}의 출력으로부터 '''[blocks {{red|''B''}}]'''를 확인하고 이들을 제거하기 위해 {{blue|emerge -C}} 를 사용합니다.
  
 
{{Example|코드 예제 2.37: 패키지 갱신하기|<nowiki>(~x86으로 변경하면 수많은 패키지들이 업그레이드 됨을 참고해주시기 바랍니다)</nowiki><br/>
 
{{Example|코드 예제 2.37: 패키지 갱신하기|<nowiki>(~x86으로 변경하면 수많은 패키지들이 업그레이드 됨을 참고해주시기 바랍니다)</nowiki><br/>
390번째 줄: 390번째 줄:
  
 
==== 다음에 할 일 ====
 
==== 다음에 할 일 ====
여러분의 새로운 젠투 머신이 뭘 하겠다고 가정했느냐에 따라, 여러분은 아마도 서버 프로그램을 설치하거나 데스크톱 시스템을 설치하고 싶을 것입니다. 단적인 예로, <font color="blue">emerge gnome</font><font color="blue">emerge kde</font>은 위에 설명한대로 설치한 ~x86 시스템에 시간이 좀 걸릴 것입니다. 두 가지 경우는 같은 시작점으로부터 설치됩니다.
+
여러분의 새로운 젠투 머신으로 무엇을 하겠다고 가정했느냐에 따라, 여러분은 아마도 서버 프로그램을 설치하거나 데스크톱 시스템을 설치하고 싶을 것입니다. 단적인 예로, {{blue|emerge gnome}}{{blue|emerge kde}}은 위에 설명한대로 설치한 ~x86 시스템에 시간이 좀 걸릴 것입니다. 두 가지 경우는 같은 시작점으로부터 설치됩니다.
  
 
여러분의 선택에 따른 프로그램을 어떻게 설치하고 설정하는지 찾아보기 위해, [http://www.gentoo.org/doc/en/ 문서 목록]을 확인해보시는 것이 좋습니다.
 
여러분의 선택에 따른 프로그램을 어떻게 설치하고 설정하는지 찾아보기 위해, [http://www.gentoo.org/doc/en/ 문서 목록]을 확인해보시는 것이 좋습니다.

2013년 6월 22일 (토) 09:19 기준 최신판

개요

이 안내서에는 젠투 스테이지 3 설치를 완료하는데 사용해야 할 명령들이 있습니다. 스테이지 3과 포티지 스냅샷을 내려받기 위해 인터넷에 연결할 필요가 있습니다.


중요: 처음 사용자라면 설치 과정에 대해 더 많은 내용을 제공해주는 핸드북 을 읽으시는 것이 좋습니다


타이밍 출력은 프로그램 실행 과정을 마치기 까지 많은 초 단위 시간을 소요하는 모든 명령에 따릅니다. 다음 명령에 대한 시간은 512MB의 RAM과 SATA 컨트롤러에 장착된 2개의 디스크를 지닌 AMD 2000 1.66GHz 시스템에서 측정되었습니다.


코드 예제 1-1. 테스트 박스 사양
(다음의 사양과 타이밍 정보는 여러분의 설치를 완료하는데

필요한 대략적 시간을 추산하는데 도움을 줄 것입니다.)

# grep bogo /proc/cpuinfo
bogomips : 3337.81

# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1100 MB in 2.00 seconds = 549.97 MB/sec
Timing buffered disk reads: 224 MB in 3.01 seconds = 74.36 MB/sec

# grep MemTotal /proc/meminfo

MemTotal: 509248 kB


빠른 설치 안내

설치 매체

미러 중 한 곳에서 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.
boot: gentoo-nofb
  (또는, 문제가 있을 경우)

boot: gentoo-nofb nodetect


선택사항: 모듈 불러오기

nodetect 옵션을 사용하셨다면, 필요한 모듈을 불러와야 합니다. 네트워크를 활성화 하고 디스크에 접근할 필요가 있습니다. lspci 명령은 하드웨어를 확인하는데 도움을 줄 것입니다.


코드 예제 2-2. 필요한 모듈 불러오기
livecd root # lspci

(필요한 모듈을 확인하기 위해 lspci를 사용합니다)

(다음은 여러분의 하드웨어에 대해 적용하는 예제입니다)
livecd root # modprobe 3w-9xxx

livecd root # modprobe r8169


네트워크 설정

아직 네트워크가 동작하지 않는다면 네트워크를 설정하기 위해 net-setup을 사용할 수 있습니다. 설정에 앞서 modprobe를 사용하여 네트워크 카드에 대한 지원을 불러올 필요가 있을지도 모릅니다. ADSL을 사용한다면, pppoe-setuppppoe-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

livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf


설치 CD는 sshd 서버를 시작하고, 다른 사용자들을 추가하며, irssi (명령줄 기반 대화 클라이언트)를 실행하고, links를 사용하여 웹을 탐색할 수 있도록 합니다.

선택사항: ssh를 통해 여러분의 새로운 박스에 연결하기

가장 흥미로운 기능은 역시 sshd 입니다. 이것을 시작하고 다른 머신에서 연결할 수 있으며 이 안내서에 있는 명령들을 자르고 붙여넣을 수 있습니다.


코드 예제 2-5: sshd 시작하기
livecd root # time /etc/init.d/sshd start

* Generating hostkey ...
(sshd 는 키를 생성하며 이보다 많은 출력내용을 보여줍니다.)
* starting sshd ... [ok]

real 0m13.688s
user 0m9.420s

sys 0m0.090s


이제, 다른 PC에서 연결할 수 있도록 LiveCD에서 루트 암호를 설정합니다. 보통 일반적인 환경에서 ssh를 통해 root접속을 허용하는 것은 추천하지 않는 것임을 알아두시기 바랍니다. 로컬 네트워크를 신뢰할 수 없다면, 길고 복잡한 암호를 사용하여 첫 재부팅 다음에 사라질 암호를 한번만 사용하는 것이 좋습니다.


코드 예제 2.6: 루트 암호 설정하기
livecd root # passwd

New UNIX password: 암호를 입력합니다
Retype new UNIX password: 암호를 입력합니다

passwd: password updated successfully


이제, 다른 PC에서 터미널을 시작하고 여러분의 새로운 박스에 연결하며, 이 안내서의 나머지 부분을 다른 창에서 따라가고, 명령을 자르고 붙여넣을 수 있습니다.


코드 예제 2.7: 다른 PC에서 새로운 박스에 연결하기
(새로운 박스의 IP주소를 사용합니다)

$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.

Password: 암호를 입력합니다.


디스크 준비하기

파티션 배치를 만들기 위해 fdiskcfdisk를 사용합니다. 최소한 스왑 파티션 (유형 82번)과 하나의 리눅스 파티션 (유형 83번)이 필요합니다. 다음 시나리오에서는 핸드북에서 사용할 /boot와 스왑, 메인 파티션을 만듭니다. 여러분 의 디스크를 sda로 대체합니다. 대부분의 시스템에서는 부팅 가능한 플래그를 무시하지만, 어떤 경우에는 필요합니다. 이 플래그를 fdiska 명령으로 부트 파티션에 설정합니다.


코드 예제 2.8: 파티션 만들기
livecd ~ # fdisk /dev/sda

(이 안내서의 나머지에서는 다음 파티션 형태를 사용합니다)
livecd ~ # fdisk -l /dev/sda

Disk /dev/sda: 599.9 GB, 599978409984 bytes
255 heads, 63 sectors/track, 72943 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 12 96358+ 83 Linux
/dev/sda2 13 110 787185 82 Linux swap / Solaris

/dev/sda3 111 72943 585031072+ 83 Linux


리눅스 파티션에 파일 시스템을 만들기 위해서 mke2fs 그리고, mke2fs -j, mkreiserfs, mkfs.xfs mkfs.jfs 를 사용합니다. mkswapswapon을 사용하여 스왑 파티션을 초기화 합니다.


코드 예제 2.9: 파일 시스템을 만들고 스왑 활성화 하기
(ext2는 /boot 파티션에 필요한 전부입니다)

livecd ~ # mke2fs /dev/sda1

(메인 파티션에 ext3를 사용하도록 합니다)
livecd ~ # mke2fs -j /dev/sda3

(스왑을 만들고 활성화합니다)

livecd ~ # mkswap /dev/sda2 && swapon /dev/sda2


새로 만들어진 파일 시스템을 /mnt/gentoo에 마운트 합니다. 다른 마운트 포인트가 필요하다면 ( /mnt/gentoo/boot와 같은) 디렉터리를 만들고 그들도 똑같이 마운트 합니다.


코드 예제 2.10: 파일 시스템 마운트하기
livecd ~ # mount /dev/sda3 /mnt/gentoo

livecd ~ # mkdir /mnt/gentoo/boot
livecd ~ # mount /dev/sda1 /mnt/gentoo/boot

livecd ~ # cd /mnt/gentoo


스테이지 설정하기

먼저 date MMDDhhmmYYYY를 사용하여 날짜와 시간이 정확하게 설정되었는지 확인합니다. UTC 시간대를 사용합니다.


코드 예제 2.11: 날짜와 UTC 시간 설정하기
(시간 확인)

livecd gentoo # date
Mon Mar 6 00:14:13 UTC 2006

(필요하다면 현재 날짜와 시간을 설정합니다)
livecd gentoo # date 030600162006 (Format is MMDDhhmmYYYY)

Mon Mar 6 00:16:00 UTC 2006


다음에는 미러중 한 곳에서 스테이지를 내려받습니다.


코드 예제 2.12: 스테이지 3 아카이브 내려받기
livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml

(미러를 선택하고, releases/x86/current-stage3/ 디렉토리로 이동한후,
원하는 stage3에 강조표시합니다. 아마도 i686 stage3 일것입니다. 그리고
내려받기 위해 D를 누릅니다)

(또는 미러를 선택하지 않고 wget으로 바로 내려받습니다)

livecd gentoo # wget ftp://distfiles.gentoo.org/pub/gentoo/releases/x86/current-stage3/stage3-i686-*.tar.bz2


/mnt/gentoo 로 이동하고 tar xjpf <stage3 tarball> 를 사용하여 스테이지를 풀어줍니다.


코드 예제 2.13: 스테이지 3 아카이브 풀어주기
livecd gentoo # time tar xjpf stage3*

real 1m14.157s
user 1m2.920s

sys 0m7.530s


최신 포티지 스냅샷을 설치합니다. 스테이지 3 아카이브에 대해 진행합니다: 리스트에서 가까운 미러를 선택하고, 최신 스냅샷을 내려받아 풀어줍니다.


코드 예제 2.14: 최신 포티지 스냅샷 내려받기
livecd gentoo # cd /mnt/gentoo/usr

livecd usr # links http://www.gentoo.org/main/en/mirrors.xml
(미러를 선택하고, snapshots/ 디렉토리로 이동한후,
portage-latest.tar.bz2에 강조표시합니다. 그리고
내려받기 위해 D를 누릅니다)

(또는 가까운 미러를 선택하지 않고 wget으로 바로 내려받습니다)
livecd gentoo # cd /mnt/gentoo/usr

livecd usr # wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2



코드 예제 2.15: 포티지 스냅샷 풀어주기
livecd usr # time tar xjf portage-lat*

real 0m40.523s
user 0m28.280s

sys 0m8.240s


루트 위치 변경하기

/proc/dev 파일 시스템을 마운트하고, /etc/resolv.conf 파일을 복사한 다음에 젠투 환경으로 루트 위치를 변경(chroot)합니다.


코드 예제 2.16: 루트 위치 변경하기
livecd usr # cd /

livecd / # mount -t proc proc /mnt/gentoo/proc
livecd / # mount --rbind /dev /mnt/gentoo/dev
livecd / # cp -L /etc/resolv.conf /mnt/gentoo/etc/
livecd / # chroot /mnt/gentoo /bin/bash
livecd / # env-update && source /etc/profile

>>> Regenerating /etc/ld.so.cache...


시간대 설정하기

/usr/share/zoneinfo에 나열된 올바른 항목을 사용하여 시간대 정보를 설정합니다.


코드 예제 2.17: 시간대 설정하기
livecd / # ls /usr/share/zoneinfo

(예시로 브뤼셀 시간대를 사용합니다.)
livecd / # cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime

livecd / # date

Wed Mar 8 00:46:05 CET 2006


호스트 이름과 도메인 이름 설정하기

/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
livecd etc # sed -i -e 's/HOSTNAME.*/HOSTNAME="mybox"/' conf.d/hostname
(정의된 호스트 이름을 사용하고 점검합니다)
livecd etc # hostname mybox
livecd etc # hostname -f

mybox.at.myplace


커널 설정

커널 소스를 설치하고 (보통 gentoo-sources를 사용합니다) 설정하고 컴파일 한 다음, arch/i386/boot/bzImage파일을 /boot로 복사합니다.


코드 예제 2.19: 커널 소스 설치, 컴파일하고 커널 설치하기
livecd etc # time emerge gentoo-sources

real 2m51.435s
user 0m58.220s
sys 0m29.890s
livecd etc # cd /usr/src/linux
livecd linux # make menuconfig
(커널을 설정합니다)
livecd linux # time make -j2

(소요 시간은 여러분이 설정한 옵션에 따라 달려 있습니다)
real 3m51.962s
user 3m27.060s
sys 0m24.310s

livecd linux # make modules_install

livecd linux # cp arch/i386/boot/bzImage /boot/kernel


시스템 설정하기

etc/fstab을 편집하고, BOOT 그리고 ROOT, SWAP을 실제 파티션 이름으로 바꿔줍니다. 여러분이 설치한 파일 시스템과 일치하는지 확인하는 것을 잊지 마시기 바랍니다.


코드 예제 2.20: fstab 예제
livecd linux # cd /etc

livecd etc # nano -w fstab
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda3 / ext3 noatime 0 1

/dev/sda2 none swap sw 0 0


/etc/conf.d/net 에서 네트워크를 설정합니다. net.eth0 초기화 스크립트를 기본 실행 레벨에 추가합니다. 여러 개의 NIC를 사용한다면, net.eth0 초기화 스크립트에 심볼릭 링크를 걸어주고 같은 방법으로 기본 실행레벨에 추가해줍니다. 호스트 이름 설정하는것 또한 잊지 마시기 바랍니다. /etc/conf.d/net 또는 /etc/conf.d/hostnamenano로 편집하거나 다음 명령을 사용합니다.


코드 예제 2.21: 네트워크 설정
livecd etc # cd init.d

livecd init.d # ln -s net.lo net.eth0
livecd init.d # cd ../conf.d
livecd conf.d # echo 'config_eth0="192.168.1.10 netmask 255.255.255.0 brd 192.168.1.255"' >> net
livecd conf.d # echo 'routes_eth0="default via 192.168.1.1"' >> net
livecd conf.d # echo 'hostname="myhostname"' > hostname
livecd conf.d # rc-update add net.eth0 default
(If you compiled your network card driver as a module, add it to /etc/conf.d/modules
livecd conf.d # echo 'modules="r8169"' >> /etc/conf.d/modules
(If you want to reconnect via ssh after you have rebooted your new box)

livecd conf.d # rc-update add sshd default



참고: PCMCIA 카드 지원이 필요하다면, pcmciautils 를 이머지 하시기 바랍니다.


passwd를 사용하여 루트 암호를 설정합니다.


코드 예제 2.22: 루트 암호 설정하기
livecd conf.d # passwd

New UNIX password: 암호를 입력합니다
Retype new UNIX password: 암호를 다시 입력합니다

passwd: password updated successfully


앞서 사용한 시간대 정의를 위해 /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

livecd conf.d # nano -w /etc/conf.d/keymaps


시스템 도구 설치하기

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
user 1m2.630s
sys 0m34.620s
livecd conf.d # rc-update add syslog-ng default

livecd conf.d # rc-update add vixie-cron default


필요하다면 파일 시스템 도구 (xfsprogs, reiserfsprogs, 또는 jfsutils)와 네트워크 도구(dhcpcd 혹은 ppp)를 설치합니다.

부트로더 설정하기

grub을 이머지 하고 설정합니다. initramfs를 사용하는 경우 필요한 부트 인자를 새로 고치는 것을 잊지 마시기 바랍니다.


코드 예제 2.27: grub 이머지하고, 설정 파일 편집하기
livecd conf.d # time emerge grub

real 1m4.634s
user 0m39.460s
sys 0m15.280s

livecd conf.d # nano -w /boot/grub/grub.conf




코드 예제 2.28: grub.conf 예제
default 0

timeout 10

title Gentoo
root (hd0,0)

kernel /boot/kernel root=/dev/sda3




코드 예제 2.29: grub 설치하기
livecd conf.d # grub

Probing devices to guess BIOS drives. This may take a long time.

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0xfd

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/
grub/menu.lst"... succeeded
Done.

grub> quit


재부팅

루트 위치가 바뀐 환경에서 빠져 나오고, 모든 파일 시스템의 마운트를 해제한 다음 재부팅합니다.


코드 예제 2.30: 재부팅하기
livecd conf.d # exit

livecd / # umount -l /mnt/gentoo/dev{/shm,/pts,}
livecd / # umount -l /mnt/gentoo{/proc,/boot,}
livecd / # reboot

(CD 제거하는 것을 잊지 마시기 바랍니다)


설치 마무리하기


참고: 우리 테스트 박스상에서 minimal CD의 부트 프롬프트를 띄우고 재부팅 한 다음의 로그인 프롬프트가 뜨는데 걸린 총 시간은 00:42:31 입니다. 네, 한시간도 채 걸리지 않았습니다! 참고로 이 시간은 스테이지 3, 포티지 스냅샷 그리고 여러 패키지를 내려받은 시간과 커널을 설정하는데 걸린 모든 시간이 포함됩니다.


root로 로그인하고, 매일 사용할 사용자들을 위해 useradd로 사용자를 하나 이상 추가합니다.


코드 예제 2.31: 다른 PC에서 새 박스로 접속하기
(known_hosts 파일을 비우시기 바랍니다. 왜냐면

여러분의 새로운 박스는 새로 생성된 호스트 정의키를
보유하고 있기 때문입니다)
$ nano -w ~/.ssh/known_hosts
(여러분의 새 PC에 대한 IP를 찾고 그 줄을 지운다음
저장하고 nano를 빠져나옵니다)

(여러분의 새로운 박스에 할당된 IP 주소를 사용합니다)
$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.

Password: type_the_password



코드 예제 2.32: 새 사용자 추가하기
mybox ~ # useradd -g users -G lp,wheel,audio,cdrom,portage,cron -m john

mybox ~ # passwd john
New UNIX password: John의 암호를 설정합니다
Retype new UNIX password: John의 암호를 다시 입력합니다

passwd: password updated successfully


마지막 설정 손보기

/etc/make.conf에 있는 SYNCGENTOO_MIRRORS 변수를 설정하여 가까운 미러를 선택하거나 mirrorselect를 사용하는 것으로 시작합니다. 이 시점에서 동시 컴파일 처리 갯수를 지정할 수 있습니다.


코드 예제 2.33: mirrorselect를 사용하고 MAKEOPTS 설정하기
mybox ~ # emerge mirrorselect

mybox ~ # mirrorselect -i -o >> /etc/make.conf
mybox ~ # mirrorselect -i -r -o >> /etc/make.conf
(보통 프로세서의 갯수 + 1이 좋은 값입니다)

mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf


이제 몇몇 USE 플래그를 활성화 하거나 비활성화 할 좋은 시점 입니다. 현재 설치된 모든 패키지의 목록을 나열하고, 패키지들의 활성화 그리고 비활성화된 USE 플래그를 보려면 emerge -vpe world 를 실행합니다. USE 변수를 정의하려면 를 편집하거나 다음 명령을 사용합니다:


코드 예제 2.34: 사용중인 USE 플래그를 보고 일부를 활성화 하거나 비활성화 하기
mybox ~ # emerge -vpe world

(포티지는 패키지와 그들이 사용하는 USE 플래그를 보여줍니다.
예를 들어, 이제 fortran을 비활성화 하고 ipv6와 unicode 를
활성화 해보도록 하겠습니다)

mybox ~ # echo 'USE="nptl nptlonly ipv6 -fortran unicode"' >> /etc/make.conf


최신 버전의 glibc 에서는 로캘 설정을 정의하기 위해 /etc/locale.gen을 사용합니다.


코드 예제 2.35: 로캘 정의하기
mybox ~ # cd /etc

mybox etc # nano -w locale.gen

mybox etc # 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 를 설정합니다)
CFLAGS="-O2 -march=athlon-xp -pipe"
(여러분이 무슨 짓을 하고 있는지 알고 있다면 다음을 추가합니다)

ACCEPT_KEYWORDS="~x86"


최근 설정 변경을 완전하게 사용하도록 하기 위해 여러분의 전체 시스템을 재컴파일 하고 싶으실 것입니다. 완료되기까지 좀 오랜 시간이 걸릴 것이고, 대신 약간의 속도 향상을 얻을 수 있습니다. 새 버전의 패키지가 출시될때마다 여러분은 시스템 스스로 점진적으로 최적화하게 할 수도 있습니다. 그러나 시스템 관리 일관성 측면에서 봤을때, 재컴파일은 역시 좋은 생각입니다. 일관되게 빌드한 시스템과 전체를 보증하는 이득에 대한 논의 내용에 대해서는 젠투 GCC 업그레이드 안내서를 보시기 바랍니다.

릴리즈 이후로 이미 갱신된 패키지 혹은 새 USE 플래그에 영향을 받은 패키지만 재 컴파일 하려면 오랜 시간이 걸릴 것입니다. 또한 업그레이드를 막는 패키지를 제거해야 할 지도 모릅니다. emerge -vpuD --newuse world의 출력으로부터 [blocks B]를 확인하고 이들을 제거하기 위해 emerge -C 를 사용합니다.


코드 예제 2.37: 패키지 갱신하기
(~x86으로 변경하면 수많은 패키지들이 업그레이드 됨을 참고해주시기 바랍니다)

mybox etc # emerge -vpuD --newuse world
(패키지 목록과 패키지들이 사용하는 USE 플래그를 보기 좋게 보여줍니다.
만약 막힌 패키지가 있다면 제거해주고, 기나긴 과정을 시작합니다.)
mybox etc # time emerge -vuD --newuse world
(79 패키지를 (재)컴파일 하였습니다)

real 180m13.276s
user 121m22.905s
sys 36m31.472s

(지금 이상의 잠재적 문제를 막기 위해 libtool을 다시 이머지 합니다)
mybox etc # emerge --oneshot libtool

(설정 파일을 갱신하고, dispatch-conf를 통해 여러분이 설정한 파일을
갱신하지 못하도록 하는 것을 확인합니다.)
mybox etc # dispatch-conf

(perl이 갱신 되었다면, perl-cleaner 스크립트를 실행하셔야 합니다)
mybox etc # time perl-cleaner all
real 1m6.495s
user 0m42.699s
sys 0m10.641s

(python의 메이저 업그레이드가 수행되었다면, python-updater 스크립트를 실행하셔야 합니다)

mybox etc # python-updater


다음에 할 일

여러분의 새로운 젠투 머신으로 무엇을 하겠다고 가정했느냐에 따라, 여러분은 아마도 서버 프로그램을 설치하거나 데스크톱 시스템을 설치하고 싶을 것입니다. 단적인 예로, emerge gnomeemerge kde은 위에 설명한대로 설치한 ~x86 시스템에 시간이 좀 걸릴 것입니다. 두 가지 경우는 같은 시작점으로부터 설치됩니다.

여러분의 선택에 따른 프로그램을 어떻게 설치하고 설정하는지 찾아보기 위해, 문서 목록을 확인해보시는 것이 좋습니다.


중요: 다음은 단지 예시일 뿐입니다. 권장하는 설치 방법을 의미하진 않습니다



코드 예제 2.38: GNOME 이머지하기
mybox etc # emerge -vp gnome

(패키지 목록과 패키지들의 USE 플래그를 본 후
필요하다면 make.conf를 편집합니다.)
mybox etc # nano -w /etc/make.conf
(다음 USE 플래그들이 정의되었습니다.)
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
-kde -qt4 -arts -eds -esd gnome gstreamer gtk firefox"

mybox etc # time emerge gnome
(326 패키지가 이머지 되었습니다)

real 520m44.532s
user 339m21.144s

sys 146m22.337s



코드 예제 2.38: KDE 이머지하기
mybox etc # emerge -vp kde-meta

(패키지 목록과 패키지들의 USE 플래그를 본 후
필요하다면 make.conf를 편집합니다.)
mybox etc # nano -w /etc/make.conf
(다음 USE 플래그들이 정의되었습니다.)
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
kde qt4 -arts -eds -esd -gnome -gstreamer -gtk -firefox"

mybox etc # time emerge kde-meta
(391 패키지가 이머지 되었습니다)

real 1171m25.318s
user 851m26.393s

sys 281m45.629s