Установка базовой системы Gentoo
Выбор зеркал
Для ускорения загрузки исходного кода рекомендуется выбрать быстрое зеркало. Portage ищет переменную GENTOO_MIRRORS в файле make.conf и использует зеркала, перечисленные в ней. Конечно, можно просмотреть список зеркал на сайте и выбрать одно или несколько, географически ближайших к пользователю (чаще всего они и будут самыми быстрыми), но имеется удобная утилита mirrorselect, которая позволяет выбрать желаемые зеркала более удобным способом.
Листинг 1.21. Запуск mirrorselect для установки переменной GENTOO_MIRRORS
# mirrorselect -i -o >>/mnt/gentoo/etc/make.confВторая важная настройка — установка значения переменной SYNC в файле make.conf. Эта переменная указывает на сервер rsync (сервер удаленной синхронизации), выбираемый для обновления дерева Portage (коллекции файлов ebuild — сборочных сценариев, содержащих все данные, нужные Portage для скачивания и установки программ). Хотя вписать адрес сервера в SYNC можно и вручную, mirrorselect позволяет упростить это действие.
Листинг 1.22. Выбор зеркала rsync с помощью mirrorselect
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.confПосле выполнения mirrorselect, желательно проверить все значения в файле /mnt/gentoo/etc/make.conf.
Копирование сведений о DNS
Перед тем, как перейти в новую среду, осталось только скопировать информацию о DNS (системе доменных имен) в файл /etc/resolv.conf. Это нужно, чтобы при переходе сохранить работоспособность сети. В файле /etc/resolv.conf содержатся адреса серверов имен, используемых в сети пользователя.
Листинг 1.23. Копирование информации о DNS
(параметр «-L» нужен, чтобы случайно не скопироватьсимвольную ссылку)# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.confМонтирование файловых систем /proc и /dev
Также необходимо смонтировать файловую систему /proc в /mnt/gentoo/proc, чтобы после изменения корневого каталога устанавливаемая система смогла обращаться к информации, предоставляемой ядром, а затем создать привязку монтирования файловой системы /dev.
Листинг 1.25. Монтирование /proc и /dev
# mount -t proc none /mnt/gentoo/proc# mount -o bind /dev /mnt/gentoo/devПереход в новую среду
Итак, все разделы подготовлены, а базовая операционная среда установлена. Теперь пора войти в нее, изменив корневой каталог. Таким образом, перейдя из текущей установочной среды (с компакт-диска или другого установочного носителя) в устанавливаемую систему (находящуюся в недавно размеченных разделах).
Изменение выполняется в три этапа. Сначала с помощью chroot изменяется корневой каталог с / (находящийся на установочном носителе) на /mnt/gentoo (находящийся на дисковых разделах). Затем создается новая среда, пользуясь утилитой env-update, которая, собственно, создает переменные среды. Наконец, эти переменные загружаются в память при помощи source.
Листинг 1.26. Изменение корневого каталога для перехода в новую среду
# chroot /mnt/gentoo /bin/bash# env-update>> Regenerating /etc/ld.so.cache...# source /etc/profile# exportPS1="(chroot) $PS1"Обновление дерева портэжей
Перед продолжением необходимо обновить дерево Portage до самой последней версии с помощью команды emerge --sync. Если выдано предупреждение, что имеется новая версия Portage и ее нужно обновить, выполните обновление командой emerge --oneshot portage.
Выбор нужного профиля
Профиль — конструктивный элемент любой системы Gentoo. В нем указываются не только значения по умолчанию для CHOST, CFLAGS и других важных переменных, он также привязывает систему к определенному диапазону допустимых версий пакетов. Диапазоны поддерживаются разработчиками Gentoo.
Узнать, какой профиль используется в системе в данный момент, вы можете командой:
Листинг 1.27. Выяснениеиспользуемогопрофиля
# eselectprofilelistAvailable profile symlink targets: [1] default/linux/amd64/10.0 * [2] default/linux/amd64/10.0/desktop[3] default/linux/amd64/10.0/serverТак же, для некоторых архитектур доступны серверные и пользовательские подпрофили. Для просмотра всех возможных вариантов профилей можно использовать команду eselectprofilelist. После того как какой то профиль выбран, используя команду eselectprofileset 2 устанавливается выбранный профиль.
При желании собрать окружение и все приложения только для архитектуры 64 бита, без 32-битных приложений или библиотек, необходимо использовать профили no-multilib.
Листинг 1.28. Переключение на no-multilibпрофиль
# eselect profile listAvailable profile symlink targets: [1] default/linux/amd64/10.0 * [2] default/linux/amd64/10.0/desktop [3] default/linux/amd64/10.0/no-multilib [4] default/linux/amd64/10.0/server(Choose the no-multilib profile)# eselect profile set 3(Verify the change)# eselect profile listAvailable profile symlink targets: [1] default/linux/amd64/10.0 [2] default/linux/amd64/10.0/desktop [3] default/linux/amd64/10.0/no-multilib * [4] default/linux/amd64/10.0/serverПрофилиdeveloperспециальнодлязадачразработчиковGentoo. Это не означает, что это поможет вам в настройке основного окружения разработчика.
Настройка переменной USE
USE («использовать») — одна из самых мощных переменных, имеющихся в распоряжении пользователей Gentoo. Она позволяет при компиляции программ включать или отключать поддержку определенных необязательных функций. Например, некоторые программы можно компилировать с поддержкой gtk или qt на выбор. Другие можно собирать, включая или отключая поддержку SSL. Некоторые программы можно даже компилировать с поддержкой кадрового буфера (svgalib) вместо поддержки X11 (X-сервера).
В большинстве дистрибутивов пакеты собраны с поддержкой практически всех мыслимых вариантов. Это увеличивает размер программ и время запуска, не говоря уже о чрезмерных зависимостях. В Gentoo вы сами можете определять, с какими возможностями следует компилировать пакет. Здесь играет роль переменная USE.
В переменной USE указываются ключевые слова, которые отражаются на параметрах компиляции. Например, параметр ssl включает компиляцию с поддержкой ssl всех программ, которые способны его поддерживать. -X отключает поддержку X-сервера (обратите внимание на предшествующий знак «минус»). Параметры gnome gtk -kde -qt обеспечивают компиляцию программ с поддержкой Gnome и gtk, но без поддержки KDE и qt, делая систему оптимальной для GNOME [3].
Настройки USE по умолчанию хранятся в файлах make.defaults пользовательского профиля. Файлы make.defaults находятся в каталоге, на который указывает /etc/make.profile, а также во всех родительких каталогах. Значение USE по умолчанию — это сумма всех значений USE во всех файлах make.defaults. Все, что вноситься в /etc/make.conf, рассчитывается относительно этих значений. Когда что-либо добавляется к значению USE, оно добавляется в список по умолчанию. Когда удаляется что-либо (указывая ключевое слово с предшествующим знаком минус), оно удаляется из списка по умолчанию (если оно там вообще было). Никогда ничего не стоит менять в /etc/make.profile. Все, что там находится, перезаписывается при обновлении Portage!
Локализация glibc
В системе можно использовать один, два или более набора региональных параметров. Нужные регионы можно указать в /etc/locale.gen.
Пример одновременного подключения, как английского (США), так и немецкого (Германия) с соответствующими кодировками (например, UTF-8).
Листинг 1.29. Указание региональных настроек
en_US/ISO-8859-1en_US.UTF-8/UTF-8de_DE/ISO-8859-1de_DE@euro/ISO-8859-15Следующийшаг — запустить locale-gen. Это сгенерирует настройки для всех регионов, указанных вами в файле /etc/locale.gen.
Конфигурирование ядра
Настройка часового пояса
Первым делом необходимо указать часовой пояс, что бы система знала, где вы находитесь. Список часовых поясов можно увидеть в каталоге /usr/share/zoneinfo и копировать нужный в /etc/localtime. Так же необходимо обратить внимание на то, что GMTчасовые пояса на самом деле не всегда указывают на то, что, кажется. Например, GMT-8 на самом деле часовой пояс GMT+8.
Листинг 1.30. Настройка часового пояса
# ls /usr/share/zoneinfo(Suppose you want to use Europe/Brussels)# cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime(Next set the timezone)# echo "Europe/Brussels" > /etc/timezoneУстановкаисходныхкодовядра
Ядро Linux – это то, вокруг чего формируются все дистрибутивы. Это слой между пользовательскими программами и вашими аппаратными средствами. Пользователи Gentoo могут использовать один из нескольких типов ядра.
Что бы установить исходный код ядра Linuxнеобходимо выполнить следующую команду.
Листинг 1.31. Установка исходных кодов ядра
# USE="-docsymlink" emergegentoo-sourcesЕсли после этого взглянуть в папку /usr/src вы можете увидеть в ней символическую ссылку linux, которая указывает на каталог с исходными кодами ядра.
Ручная настройка ядра
Однако есть одна истина: что бы выполнить ручную настройку ядра необходимо знать аппаратную часть своего компьютера. Большую часть информации можно получить после установки пакета pciutils (emergepciutils), который содержит lspci. После этого вы сможете использовать lspci внутри временной среды установки. Можете не обращать внимания на предупреждения, касающиеся pcilib (например: pcilib: cannotopen /sys/bus/pci/devices [pcilib: не могу открыть /sys/bus/pci/devices]), которые выводит на экран lspci. В качестве альтернативы, можно запустить lspciвне временной среды установки. Результат тот же. Также можно запустить lsmod для просмотра модулей ядра используемых установочным компакт-диском (это послужит хорошей подсказкой, на предмет того, какие опции надо включить).
Теперь войдите в каталог с исходными кодами ядра и введите команду makemenuconfig. Этой командой вы вызовете конфигурационное меню, использующее ncurses. После этого видно будет множество секций с конфигурациями.
Листинг 1.32. Запуск menuconfig
# cd /usr/src/linux# makemenuconfig