서버 설정 · 8 min read · Feb 06, 2026
완벽한 서버 - Gentoo 2007.0 - 페이지 3
4 최신 상태로 만들기
Gentoo 핸드북을 따라 기본 시스템을 설치한 분들을 다시 환영합니다.
4.1 새 시스템에 로그인하기
ssh [email protected]아마도 다음과 같은 메시지를 보게 될 것입니다:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 경고: 원격 호스트 식별이 변경되었습니다! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
누군가 나쁜 짓을 하고 있을 가능성이 있습니다!
누군가 지금 당신을 엿보고 있을 수 있습니다 (중간자 공격)!
RSA 호스트 키가 방금 변경되었을 수도 있습니다.
원격 호스트에서 전송된 RSA 키의 지문은
13:13:39:99:9b:ea:81:72:2c:20:d2:f5:d2:0f:bd:ac입니다.
시스템 관리자에게 문의하십시오.
이 메시지를 없애려면 /home/rachel/.ssh/known_hosts에 올바른 호스트 키를 추가하십시오.
문제가 있는 키는 /home/rachel/.ssh/known_hosts:23에 있습니다.
server1.example.com의 RSA 호스트 키가 변경되었으며 엄격한 검사를 요청했습니다.
호스트 키 검증에 실패했습니다.이는 설치된 시스템이 설치 시스템과 동일하지 않은 자체 호스트 키를 생성했기 때문입니다. 로컬 ssh에서 호스트 키를 제거하면 됩니다. 거의 모든 유닉스에서 다음과 같이 작동해야 합니다:
vi ~/.ssh/known_hosts
/server1.example.com
dd:x이제 우리는 새로운 기본 Gentoo 시스템에서 root로 로그인했습니다.
호스트 이름이 올바르게 구성되었는지 확인하십시오:
hostname -f서버의 완전한 도메인 이름, 예: server1.example.com이 반환되어야 합니다.
4.2 선택 사항: 모든 소프트웨어를 한 번에 설치하기
본질적으로 Gentoo는 바이너리 배포판에 비해 새로운 소프트웨어를 설치하는 데 상대적으로 오랜 시간이 걸립니다. 이는 이와 같은 방법을 따를 때 짜증날 수 있습니다. 몇 가지 명령을 입력한 후 무언가와 그 의존성이 처음부터 빌드되는 동안 손가락을 꼼지락거려야 하니까요; 무한 반복. 기본 설치를 위한 이 지침을 따랐다면 이미 그렇게 했을 것입니다.
이런 이유로, 완벽한 설정 구성에서 사용되는 모든 소프트웨어의 초기 빌드를 위한 명령을 모아 여기에서 한 번에 모두 수행할 수 있도록 했습니다. 일부 배포판과 달리 Gentoo는 새 서비스를 자동으로 시작하거나 실행 수준에 설치하지 않으며 사용자 입력이 필요한 후속 구성을 수행하지 않으므로 모든 소프트웨어를 빌드하도록 설정한 후 나중에 돌아와서 구성할 수 있습니다.
이렇게 하려면 지금 아래 스크립트를 입력하십시오. (복사하여 bash 명령줄에 붙여넣기만 하면 됩니다). 그런 다음 나머지 방법을 진행하면서 굵게 표시된 명령은 건너뛰십시오.
# ssmtp 제거하기
emerge --unmerge ssmtp
# postfix를 기본 MTA로 설정하기
mkdir -p /etc/portage/profile
echo 'virtual/mta mail-mta/postfix' >> /etc/portage/profile/virtuals
# USE 플래그 설정하기
echo 'USE="apache2 bzip2 idn jpeg png tiff tk truetype xml"' >> /etc/make.conf
echo 'LINGUAS="en"' >> /etc/make.conf
echo 'net-dns/bind resolvconf' >> /etc/portage/package.use
echo 'mail-mta/postfix sasl' >> /etc/portage/package.use
echo 'dev-libs/cyrus-sasl authdaemond urandom' >> /etc/portage/package.use
echo 'net-mail/courier-imap fam' >> /etc/portage/package.use
echo 'www-servers/apache doc mpm-prefork' >> /etc/portage/package.use
echo 'dev-lang/php bcmath bzip2 calendar ctype curl exif filter ftp gd hash imap json mhash mysql mysqli pcntl pdo posix sharedmem simplexml snmp soap sockets spell sqlite tidy tokenizer wddx xmlreader xmlrpc xmlwriter xsl zip' >> /etc/portage/package.use
echo 'net-ftp/proftpd -ipv6' >> /etc/portage/package.use
# 패키지 마스크 해제하기
echo 'dev-php5/pecl-imagick ~*' >> /etc/portage/package.keywords
echo 'dev-php5/pecl-memcache ~*' >> /etc/portage/package.keywords
echo 'dev-libs/pslib ~*' >> /etc/portage/package.keywords
echo 'dev-php5/pecl-ps ~*' >> /etc/portage/package.keywords
# 세계 파일에 패키지 추가하기
echo 'app-admin/sudo' >> /var/lib/portage/world
echo 'app-admin/webalizer' >> /var/lib/portage/world
echo 'app-arch/unzip' >> /var/lib/portage/world
echo 'app-arch/zip' >> /var/lib/portage/world
echo 'app-editors/vim' >> /var/lib/portage/world
echo 'app-portage/gentoolkit' >> /var/lib/portage/world
echo 'dev-db/mysql' >> /var/lib/portage/world
echo 'dev-lang/php' >> /var/lib/portage/world
echo 'dev-php/PEAR-PEAR' >> /var/lib/portage/world
echo 'dev-php5/pecl-imagick' >> /var/lib/portage/world
echo 'dev-php5/pecl-memcache' >> /var/lib/portage/world
echo 'dev-php5/pecl-ps' >> /var/lib/portage/world
echo 'dev-tcltk/expect' >> /var/lib/portage/world
echo 'mail-filter/procmail' >> /var/lib/portage/world
echo 'mail-mta/postfix' >> /var/lib/portage/world
echo 'net-dns/bind' >> /var/lib/portage/world
echo 'net-ftp/ncftp' >> /var/lib/portage/world
echo 'net-ftp/proftpd' >> /var/lib/portage/world
echo 'net-mail/courier-imap' >> /var/lib/portage/world
echo 'net-mail/fetchmail' >> /var/lib/portage/world
echo 'net-misc/netkit-telnetd' >> /var/lib/portage/world
echo 'net-misc/ntp' >> /var/lib/portage/world
echo 'sys-fs/quota' >> /var/lib/portage/world
echo 'www-servers/apache' >> /var/lib/portage/worldISPConfig를 실행할 계획이라면 이 내용을 붙여넣으십시오:
echo 'dev-db/mysql latin1' >> /etc/portage/package.use
echo 'app-shells/smrsh' >> /var/lib/portage/world
echo 'dev-perl/HTML-Parser' >> /var/lib/portage/world
echo 'dev-perl/Net-DNS' >> /var/lib/portage/world
echo 'net-firewall/iptables' >> /var/lib/portage/world
echo 'virtual/perl-DB_File' >> /var/lib/portage/world원격으로 일부 X 애플리케이션을 실행해야 하는 경우 (예: VMWare Tools vmware-toolbox 대화 상자 및 fetchmailconf) 이 내용을 붙여넣으십시오.
echo 'x11-apps/xauth' >> /var/lib/portage/world
echo 'x11-libs/libXi' >> /var/lib/portage/world이제 포르타주를 업데이트하십시오. 새로운 포르타주 버전이 우리가 이용하고 있는 동작을 지원합니다.
사실, 이 단계를 건너뛰더라도 나중에 전체 업데이트를 수행할 때 올바르게 수행됩니다. 포르타주를 먼저 설치한 후 중단하고 새 버전으로 다시 시작합니다. 그러나 –ask를 사용하면 나중의 예와 같이 발생할 일의 정확한 목록을 얻을 수 없습니다. 따라서 이 단계는 혼란을 피하기 위한 것입니다.
emerge --ask --verbose --newuse portage그 후 일부 구성 파일이 변경되었다고 경고하고 이러한 변경을 승인하도록 요청합니다.

dispatch-conf>> q quit, h help, n next, e edit-new, z zap-new, u use-new
m merge, t toggle-merge, l look-merge: 여기서 우리가 한 일은 포르타주 자체를 업데이트한 것이므로, 제공된 각 파일에 대해 u를 선택하여 모든 변경 사항을 수락할 수 있어야 합니다.
4.3 첫 번째 업데이트
설치 중에 emerge –sync를 수행했으므로, 지금 당장 또 다른 것을 수행할 필요는 없으므로 즉시 업데이트로 넘어갑니다.
일부 전역 USE 플래그를 설정하고자 합니다. 대부분의 경우 패키지별 플래그를 선호하기 위해 이를 피하려고 했지만, 몇 가지 전역 플래그가 필요합니다. 아니면 더 간단하게 만듭니다. 위의 선택적 단계 4.2를 수행했다면, 굵게 표시된 다음 명령을 입력할 필요는 없습니다. 단지 설명으로 받아들이십시오.
grep USE /etc/make.conf이 파일에 이미 USE 변수가 설정되어 있다면, 파일을 편집하여 다음 플래그가 추가되었는지 확인해야 합니다. 없다면, 다음 명령을 실행하십시오:
echo 'USE="apache2 bzip2 idn jpeg png tiff tk truetype xml"' >> /etc/make.conf이제 실제로 업데이트를 수행할 수 있습니다.
emerge --ask --verbose --newuse --deep world–ask –verbose는 설치하거나 업그레이드할 패키지와 선택된 USE 플래그를 나열합니다. 이는 완전히 선택 사항이며, 수행하기 전에 무엇을 하려는지 볼 수 있도록 해줍니다. –newuse –deep는 USE 플래그가 변경된 모든 것을 재구성하고, 구식인 모든 것을 재구성하라고 지시합니다. (–deep는 기본 패키지뿐만 아니라 모든 것을 포함하여 의존성을 업그레이드하고 싶다는 것을 나타냅니다.)
Return 키를 누르거나 Yes를 입력하면 시스템이 최신 상태로 업데이트됩니다. 이는 아마도 시간이 걸릴 것입니다.
4.2단계를 따라 완벽한 설정 소프트웨어 빌드를 미리 설정했다면, 이제 모든 완벽한 설정 소프트웨어와 그 의존성이 다운로드되고 컴파일되어 설치되며 기본 시스템에 대한 적절한 업데이트가 이루어집니다. 총 150개에서 190개 패키지가 새로 빌드되거나 재빌드될 것입니다. 포르타주는 세계 파일을 수동으로 변경했다고 불평할 것이지만, 세계 파일이 지정한 대로 시스템을 만들 것입니다; 즉, 새 소프트웨어를 설치합니다. 저녁을 먹거나 영화를 보러 가거나 잠자리에 드세요. 시간이 좀 걸릴 것입니다.
마지막으로 완료되면 다음과 같은 메시지를 보게 될 것입니다:

dispatch-conf변경된 각 구성 파일에 대해 차이를 보여주고 다음과 같은 옵션을 제공합니다:
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
m merge, t toggle-merge, l look-merge: 이것은 완전히 새로운 시스템이므로 대부분의 경우 변경 사항을 수락하고 싶을 것입니다 (“새로 사용”을 위해 u를 눌러서). 그대로 유지하고 싶은 항목은 z를 눌러 “새로 지우기”를 선택하십시오. 이는 아마도 우리가 이전에 편집한 다음과 같을 것입니다:
- /etc/conf.d/clock
- /etc/conf.d/hostname
- /etc/conf.d/keymaps
Gentoo 업그레이드에서 –deep를 사용할 때는 그 후에 다음을 수행하는 것이 좋은 습관입니다:
revdep-rebuild현재 이 단계에서는 필요하지 않을 수 있지만, 대부분의 경우에도 필요하지 않을 수 있습니다. 그러나 소개받는 것은 좋습니다. 이 명령은 시스템에 설치된 소프트웨어가 여전히 의존하는 라이브러리와 이진 호환성이 있는지 확인하고, 그렇지 않으면 재설치합니다 (이는 자연스럽게 새 버전의 라이브러리에 대해 다시 빌드됩니다). 일반적으로 주요 라이브러리가 주요 버전 번호를 올릴 때만 수행해야 합니다. 때때로 포르타주는 특정 라이브러리에 대해 그렇게 하도록 요청할 것입니다. 이 명령에 패키지 식별자를 제공하면 필요할 경우 이를 의존하는 모든 것을 다시 빌드합니다. 따라서 이름은 “역 의존성 재빌드”의 약자입니다. 단독으로 실행하면 모든 것을 확인합니다. (바이너리 배포판에서는 이와 동등한 것이 없을 것입니다. 특정 릴리스에 대한 업데이트는 일반적으로 의존성과 이진 호환성을 깨는 버전으로 업그레이드되는 라이브러리를 포함하지 않기 때문입니다. 대신 이전 버전은 필요에 따라 패치되고, 이진 호환성을 깨는 새 버전은 다음 주요 릴리스까지 보류됩니다.)
이것은 꽤 큰 업데이트이므로 모든 것이 여전히 괜찮은지 확인하기 위해 지금 재부팅할 것입니다. 기본적으로 이는 선택 사항입니다. 재부팅하지 않으려면 다음을 입력하십시오:
source /etc/profile이는 환경 변경 사항을 반영하기 위한 것입니다. 이 중 거의 확실히 gcc 업그레이드가 포함됩니다.
그리고 openssh가 업그레이드되었으므로,
/etc/init.d/sshd restart나머지 분들은 재부팅 후에 뵙겠습니다.
4.4 VMWare Tools
주제에서 벗어나지만 필요할 수 있으며 명확하지 않습니다.
Gentoo에 VMWare Tools를 설치하려면 이제 커널을 재컴파일해야 합니다 (VMWare Tools 설치 프로그램은 현재 커널이 시스템에 있는 gcc의 이전 버전에서 빌드된 경우 불평할 것이며, gcc가 방금 업그레이드되었습니다).
genkernel 옵션은 모든 것이 재컴파일되도록 보장하지만, 이전 커널 구성은 유지됩니다. 이전에 다른 변경을 했을 경우를 대비하여 말입니다.
genkernel --clean --no-mrproper all
reboot다시 부팅되면 VMWare Workstation을 사용하는 경우 다음을 수행하십시오:
emerge --ask --verbose vmware-workstation-tools이것은 추가로 프롬프트를 표시합니다. VMWare Server 또는 VMWare Fusion과 같은 다른 버전을 실행하는 경우 다음을 수행하십시오:
mkdir /etc/init.d/rc{0,1,2,3,4,5,6}.d후자의 경우, 요청 시 init 스크립트는 /etc/init.d에 있으며 rc0.d에서 rc6.d 디렉토리도 /etc/init.d에 있습니다. VMWare Tools 설치 프로그램은 이를 기본값으로 감지하고 제공합니다. rc n.d 디렉토리는 아무것도 하지 않으며, VMWare 설치 프로그램이 원하기 때문에 존재하는 것입니다. 나중에 제거할 수 있습니다.
VMWare 자체에서 VMWare Tools 설치를 선택하십시오.
mount /dev/cdrom /mnt/cdrom
cd ~
tar --extract --verbose --gzip --file /mnt/cdrom/VM*.tar.gz가상 머신의 시스템 콘솔에서 VMWare Tools 설치 프로그램을 실행해야 하며, 원격으로는 실행할 수 없습니다. 설치 프로그램이 이를 무시하면 상기시켜 줄 것입니다. :-)
cd vmware-tools-distrib
./vmware-install.pl프롬프트를 따라 진행하십시오. 현재 vmhgfs 및 vmxnet 모듈은 빌드되지 않지만 나머지는 괜찮아야 합니다.
그리고 다음 재부팅 시 자동으로 시작되도록 설정하십시오.
rc-update add vmware-tools defaultVMWare Toolbox를 사용하려면 일부 종속성을 빌드해야 합니다. 이는 X11 애플리케이션이므로, 박스 자체에 데스크탑 환경이 필요하거나 (완벽한 설정에서는 아마도 필요하지 않을 것입니다) 다음을 수행해야 합니다:
vi /etc/ssh/sshd_config“X11Forwarding”이 포함된 줄을 찾아 주석을 제거하고 “yes”로 설정하십시오.
/etc/init.d/sshd restart그리고 필요한 최소 X11 종속성을 설치하십시오.
emerge --ask --verbose libXi xauth원격 머신에서 X11 포워딩으로 로그인하고 실행하여 필요한 설정을 하십시오. 호스트의 RTC와 동기화하는 것과 같은 필요한 작업을 수행하는 다른 방법은 없습니다 (특히 AMD 호스트에서 VMWare Server에서 매우 필요합니다) 및 스냅샷과 같은 작업을 허용합니다.
ssh -X [email protected]
vmware-toolbox모든 것이 작동하는지 확인하기 위해 재부팅할 수 있습니다.
update-modules force
reboot4.5 향후 정기 업데이트
전형적인 작업 흐름은 다음과 같습니다.
emerge --sync
emerge -avND world
# (emerge --ask --verbose --newuse --deep world의 짧은 형태)나열된 업그레이드가 합리적으로 보이면, 계속 진행하도록 Return을 누르십시오. 위와 같이 구성 파일이 업데이트되었다고 프롬프트가 표시될 수 있으며, 이 경우 다음을 실행하십시오.
dispatch-conf그리고 프롬프트가 표시되거나 의심스러운 경우,
revdep-rebuild필요하지 않을 때 수행하는 데는 시간만 소요되므로 해가 없습니다. 잠시 생각한 후 다시 설치할 필요가 없는 항목이 없다고 알려줄 것입니다.
업그레이드된 서비스를 재시작하는 것을 잊지 마십시오. (우분투 및 아마도 데비안과 달리, 자동으로 수행하지 않습니다.)
약 주 1회 정도 수행하는 것이 합리적이며, 그러면 변경 사항이 점진적으로 발생하고 크기가 작아 보통 몇 분 안에 완료됩니다. 반대로, Gentoo 시스템에서 오랫동안 미뤄온 업그레이드를 수행하는 것은 매우 고통스러울 수 있습니다. 우리는 위에서 가장 최근의 stage3 릴리스에서 시스템을 최신 상태로 가져오는 것과 동등한 작업을 수행했습니다. 처음 작성할 당시에는 꽤 오래전이었습니다. 그리고 이는 완전히 새로운 빈 시스템에서의 작업이었습니다. 여러 서비스와 사용자가 실행 중인 경우를 상상해 보십시오.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.