Gentoo · 10 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
Ключ RSA хоста для server1.example.com изменился, и вы запросили строгую проверку.
Проверка ключа хоста не удалась.Это потому, что установленная система сгенерировала свои собственные ключи хоста, которые не совпадают с ключами системы установки. Вам просто нужно удалить ключ хоста из вашего локального ssh. Для практически любого unix это должно сработать:
vi ~/.ssh/known_hosts
/server1.example.com
dd:xТеперь мы вошли как root в нашу новую базовую систему Gentoo.
Проверьте, что ваше имя хоста настроено правильно:
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
# Добавление пакетов в файл world
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/worldВставьте это тоже, если вы собираетесь запускать ISPConfig:
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-toolbox VMWare Tools и fetchmailconf).
echo 'x11-apps/xauth' >> /var/lib/portage/world
echo 'x11-libs/libXi' >> /var/lib/portage/worldОбновите portage сейчас, так как новая версия portage - это та, которая поддерживает поведение, которое мы используем.
На самом деле, даже если вы пропустите этот шаг, он сделает это правильно позже, когда мы сделаем полное обновление, так как он сначала установит portage, затем остановится и перезапустится с новой версией. Но вы не получите точный список того, что произойдет, если вы используете –ask, как это делает следующий пример. Поэтому этот шаг действительно предназначен для избежания путаницы.
emerge --ask --verbose --newuse portageПосле этого он предупредит вас о том, что некоторые конфигурационные файлы были изменены, и предложит вам одобрить эти изменения.

dispatch-conf>> q выход, h помощь, n следующий, e редактировать-новый, z удалить-новый, u использовать-новый
m объединить, t переключить-объединение, l посмотреть-объединение: Поскольку все, что мы сделали здесь, это обновление самого portage, вы должны быть в состоянии просто принять все изменения, выбрав 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 указывает, что вы хотите обновить все, включая зависимости, а не только ваши основные пакеты.)
Когда вы нажмете Enter (или наберете Yes), ваша система будет обновлена. Это, вероятно, займет некоторое время.
Если вы следовали шагу 4.2, чтобы заранее настроить полную сборку программного обеспечения Идеальной настройки, все программное обеспечение Идеальной настройки и его зависимости теперь будут загружены, скомпилированы и установлены, а также соответствующие обновления для базовой системы; всего будет собрано от 150 до 190 пакетов, которые будут либо собраны заново, либо пересобраны. Portage будет жаловаться, что вы изменили его файл world вручную, но он продолжит и сделает систему такой, как указано в файле world; т.е. установит новое программное обеспечение. Пойдите поужинать или посмотрите фильм; или ложитесь спать. Это займет некоторое время.
Когда это наконец закончится, вы увидите что-то вроде этого:

dispatch-confДля каждого конфигурационного файла, который изменился, вам будут показаны различия и предложены следующие варианты:
>> q выход, h помощь, n следующий, e редактировать-новый, z удалить-новый, u использовать-новый
m объединить, t переключить-объединение, l посмотреть-объединение: Поскольку это совершенно новая система, вы, вероятно, захотите просто принять изменения для большинства из них (нажав u для “использовать новое”. Те, которые вы хотите оставить как есть, нажмите z для “удалить новое”. Это, вероятно, будут те, которые мы редактировали ранее:
- /etc/conf.d/clock
- /etc/conf.d/hostname
- /etc/conf.d/keymaps
Когда вы используете –deep при обновлении Gentoo, хорошей практикой будет сделать это после:
revdep-rebuildВам, вероятно, не нужно это на этом этапе, или на самом деле в большинстве случаев, но стоит с этим познакомиться. Что он делает, так это гарантирует, что программное обеспечение, установленное на вашей системе, все еще бинарно совместимо с библиотеками, от которых оно зависит, и если нет, переустанавливает его (что, естественно, пересобирает его против новой версии библиотеки). Обычно это нужно делать только тогда, когда важная библиотека повышается до нового основного номера версии. Иногда portage все равно предложит вам сделать это для конкретной библиотеки. Вы можете дать этой команде идентификатор пакета, и она, если необходимо, пересоберет все, что от него зависит; отсюда и его название, которое является сокращением от “пересборка обратной зависимости”. Сам по себе он просто проверит все. (Вероятно, нет эквивалента этого в бинарных дистрибутивах, так как обновления для данной версии, как правило, не охватывают библиотеки, обновляющиеся до версии, которая нарушает бинарную совместимость с их зависимостями. Вместо этого более старые версии исправляются по мере необходимости, а новые версии, которые нарушают бинарную совместимость, откладываются до следующего основного релиза.)
Поскольку это довольно большое обновление, я собираюсь перезагрузить сейчас, чтобы убедиться, что все еще в порядке. Это в основном необязательно. Если вы не перезагружаете, введите,
source /etc/profileЭто необходимо для учета любых изменений в окружении. Среди них, вероятно, обновление gcc.
И так как openssh был обновлен,
/etc/init.d/sshd restartДля остальных из вас, увидимся после перезагрузки.
4.4 VMWare Tools
Не по теме, но вероятно необходимо и не очевидно
Чтобы установить VMWare Tools в Gentoo, вам теперь нужно пересобрать ядро (так как установщик VMWare Tools будет жаловаться, если текущее ядро было собрано на более ранней версии gcc, чем система сейчас имеет, и gcc только что был обновлен).
Опции genkernel обеспечат, что все будет пересобрано, но предыдущая конфигурация ядра будет сохранена, на случай, если вы сделали какие-либо другие изменения ранее.
genkernel --clean --no-mrproper all
rebootКогда он снова загрузится, выполните следующее, если вы используете VMWare Workstation:
emerge --ask --verbose vmware-workstation-toolsЭто предложит вам дальше. Если вы запускаете другую версию VMWare, такую как VMWare Server или VMWare Fusion, просто выполните следующее:
mkdir /etc/init.d/rc{0,1,2,3,4,5,6}.dВ последнем случае, когда вас спросят, ваши сценарии инициализации находятся в /etc/init.d, а ваши директории rc0.d до rc6.d также находятся в /etc/init.d. Установщик VMWare Tools обнаружит и предложит их в качестве значений по умолчанию. Директории rc n.d ничего не сделают, они просто там, потому что установщик VMWare их хочет. Вы можете удалить их позже.
Выберите Установить VMWare Tools в самом VMWare.
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 defaultЧтобы использовать VMWare Toolbox, вам нужно будет собрать некоторые из его зависимостей. Это приложение X11, так что вам нужно либо иметь рабочую среду на самом компьютере (что для Идеальной настройки вероятно не нужно), либо вы хотите сделать следующее:
vi /etc/ssh/sshd_configНайдите строку, содержащую “ X11Forwarding “ и убедитесь, что она не закомментирована и установлена в “yes”.
/etc/init.d/sshd restartИ установите минимальные зависимости X11, необходимые.
emerge --ask --verbose libXi xauthВойдите с перенаправлением X11 с вашего удаленного компьютера и запустите его, и установите то, что вам нужно установить. На самом деле нет другого способа сделать необходимые вещи, такие как синхронизация с RTC хоста (очень необходимо на VMWare Server, особенно на хостах AMD) и разрешение таких вещей, как снимки.
ssh -X [email protected]
vmware-toolboxВам может понадобиться перезагрузить, чтобы убедиться, что все работает.
update-modules force
reboot4.5 Будущие, рутинные обновления
Типичный рабочий процесс:
emerge --sync
emerge -avND world
# (краткая форма emerge --ask --verbose --newuse --deep world)Если перечисленные обновления выглядят разумно, нажмите Enter, чтобы позволить им продолжить. Возможно, вам будет предложено в конце, что конфигурационные файлы были обновлены, как выше; в этом случае выполните,
dispatch-confИ если вас спросят, или если вы сомневаетесь,
revdep-rebuildНет никакого вреда, кроме времени, которое это занимает, если это не нужно. Он просто подумает некоторое время и скажет вам, что ничего не нужно переустанавливать.
Помните, что после этого нужно перезапустить обновленные службы. (В отличие от Ubuntu и, предположительно, Debian, он не сделает это за вас.)
Разумно делать это примерно раз в неделю, тогда изменения приходят постепенно и небольшими порциями и обычно завершаются за несколько минут. Напротив, выполнение давно ожидаемого обновления на системе Gentoo может быть очень болезненным. Мы только что сделали эквивалент этого выше, обновив машину до последнего релиза stage3, который на момент первого написания был некоторое время назад. И это было с совершенно новой, пустой системой. Представьте, когда у вас работает несколько служб и пользователей.
Get new posts in your inbox
No spam. Unsubscribe anytime.