Handbook:HPPA/Installation/Base

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:HPPA/Installation/Base and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
HPPA Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система init-скриптов
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Chrooting

Необязательно: Выбор зеркала

Распределенные файлы

Для быстрой загрузки исходного кода рекомендуется выбрать быстрое зеркало. Portage будет искать в файле make.conf переменную GENTOO_MIRRORS и использовать перечисленные в ней зеркала. Можно просмотреть список зеркал Gentoo и найти зеркало (или зеркала), наиболее близко расположенное к месту физического расположения (они чаще всего и есть самые быстрые). Тем не менее, мы предоставляем хороший инструмент под названием mirrorselect, который предлагает удобный интерфейс для выбора подходящего зеркала. Просто перейдите на нужное зеркало и нажмите пробел для выбора одного или нескольких.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Gentoo репозиторий ebuild-файлов

Вторым важным шагом в выборе зеркала является настройка Gentoo репозитория ebuild-файлов в файле /etc/portage/repos.conf/gentoo.conf. Этот файл содержит информацию, необходимую для обновления пакетного репозитория (коллекции ebuild и связанных с ними файлов, содержащих всю информацию, необходимую Portage для загрузки и установки пакетов программного обеспечения).

Настройку репозитория можно сделать весьма просто. Сперва, создайте repos.conf каталог, если он не существует:

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

Далее, скопируйте файл конфигурации Gentoo репозитория, предоставляемый Portage, в (только что созданный) каталог repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Просмотрите его с помощью текстового редактора или используя команду cat. Содержание должно быть в формате .ini и выглядеть следующим образом:

Файл /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
  
# for daily squashfs snapshots
#sync-type = squashdelta
#sync-uri = mirror://gentoo/../snapshots/squashfs

По умолчанию значение переменной sync-uri из примера выше будет определять местоположение зеркала на основе ротации. Это позволяет ослабить сетевую нагрузку на инфраструктуру Gentoo и повышает отказоустойчивость в случаях когда конкретное зеркало не в сети. Рекомендуется придерживаться URI по умолчанию, если не используется локальное зеркало Portage.

Совет
Заинтересованным, официальные спецификации для Portage's plug-in sync API можно найти в статье Sync Portage проекта.

Копирование информации о DNS

Единственное, что еще осталось сделать перед входом в новое окружение, это скопировать информацию о DNS из файла /etc/resolv.conf. Это нужно сделать, чтобы гарантировать, что сеть все еще будет работать даже после входа в новое окружение. Файл /etc/resolv.conf содержит сервера имен (DNS).

Чтобы скопировать эту информацию, рекомендуется ввести ключ --dereference для команды cp. Это гарантирует, что если /etc/resolv.conf является символьной ссылкой, то будет скопирован целевой файл по ссылке, а не сама символьная ссылка. В противном случае в новом окружении символическая ссылка будет ссылаться на несуществующий файл (так как цель ссылки, скорее всего, будет недоступна внутри нового окружения).

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Подключение необходимых файловых систем

Скоро Linux root будет перемещен в новое место. Чтобы новое окружение работало должным образом, для него должны быть доступны некоторые файловые системы.

Файловые системы, которые должны быть доступны:

  • /proc/ - это псевдо-файловая система (она выглядит как обычные файлы, но на самом деле генерируется на лету) из которой ядро Linux предоставляет информацию для окружения
  • /sys/ - это псевдо-файловая система, как и /proc/, которую она однажды заменит, также она более структурирована, чем /proc/
  • /dev/ - это обычная файловая система, частично управляемая менеджером устройств Linux (обычно udev), которая содержит все файлы устройств

Каталог /proc/ монтируется в /mnt/gentoo/proc/, а остальные два каталога через bind-mounted. Дальнейшее означает, что, например, /mnt/gentoo/sys/ на самом деле будет /sys/ (это просто вторая точка входа в ту же файловую систему), тогда как /mnt/gentoo/proc/ является новой точкой монтирования (так сказать, экземпляром) файловой системы.

root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
Заметка
Операция --make-rslave необходима для дальнейшей поддержки systemd в ходе установки.
Предупреждение
Если при установке используется не Gentoo дистрибутив, то этого может быть недостаточно. Некоторые дистрибутивы делают /dev/shm символьной ссылкой на /run/shm/, которая после перехода в chroot станет недействительной. Создание правильного подключения /dev/shm/ в tmpfs поможет избежать этой проблемы:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

Также проверьте, что права доступа установлены в 1777:

root # chmod 1777 /dev/shm

Переход в новое окружение

Теперь, когда все разделы инициализированы и базовое окружение установлено, настало время войти в новое установочное окружение, перенеся корневой каталог в него. Это означает, что сессия изменит свой корень (наивысший каталог, который может быть доступен) из текущей установочного окружения (CD или другого установочного носителя) в систему установки (т.е размеченных разделов). Отсюда и название, сменить корень (change root - chroot).

Chroot делается в три шага:

  1. Изменение корневой директории с / (который находится на установочном носителе) в /mnt/gentoo/ (на разделах диска) используя chroot
  2. С помощью команды source, некоторые параметры (перечисленные в /etc/profile) загружаются в память
  3. Изменение приглашения командной строки, чтобы запомнить, что эта сессия находится в chroot окружении.
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

С этого момента все действия выполняются непосредственно в новом (chroot) окружении Gentoo Linux. Конечно, до финала еще далеко, поэтому установка продлится еще несколько разделов!

Совет
Если установка Gentoo будет случайно прервана где-то далее после этой точки, то можно 'продолжить' установку с этой точки. Не нужно разбивать диск снова! Просто смонтируйте корневой раздел снова и проделайте предыдущие шаги начиная с копирования информации о DNS для перезахода в рабочее окружение. Это также подойдет для решения проблем с загрузчиком. Больше информации можно найти в статье chroot.

Монтирование раздела boot

После входа в новое окружение необходимо создать и смонтировать раздел /boot. Он необходим в процессе компиляции ядра и установки загрузчика:

root #mkdir /boot
root #mount /dev/sda2 /boot

Настройка Portage

Установка снимка репозитория ebuild-файлов

Следующим шагом будет установка снимка основного репозитория ebuild-файлов. Этот снимок содержит коллекцию файлов, которая сообщает Portage о доступных программах (для установки), какой профиль может выбрать системный администратор, о новостях о конкретных пакетах или профилях и так далее.

emerge-webrsync рекомендуется использовать тем, кто находится за фаерволом (для загрузки снимка используется только протоколы HTTP/HTTPS), а также снижает нагрузку на канал сети. У кого нет ограничений с сетью или шириной канала, могут с радостью перейти к следующему разделу.

Команда ниже загрузит последний снимок (которые выпускаются каждый день), с одного из зеркал Gentoo, и распакует его в системе:

root #emerge-webrsync
Заметка
Во время этой операции, emerge-webrsync может жаловаться на отсутствующую /usr/portage/. В этом нет ничего страшного - инструмент сам создаст эту директорию.

Начиная с этого места Portage может попросить установить некоторые рекомендуемые обновления. Это потому, что системные пакеты, установленные из архива stage, возможно, имеют новые доступные версии; Portage теперь известно о новых пакетах благодаря снимку репозитория. Обновление пакетов можно проигнорировать; обновления могут быть отложены до завершения установки Gentoo.

Необязательно: Обновление Gentoo репозитория ebuild-файлов

Также можно обновить Gentoo репозиторий ebuild-файлов до текущего состояния. Предыдущая команда emerge-webrsync устанавливает относительно недавний снимок (обычно не старше 24ч), поэтому этот шаг, безусловно, делать необязательно.

Если имеется необходимость установки свежих обновлений (выпущенных не более 1 часа назад), то используйте emerge --sync. Эта команда использует rsync протокол для обновления Gentoo репозитория ebuild-файлов (которое было получено ранее с помощью emerge-webrsync) до самой свежей версии.

root #emerge --sync

На медленных терминалах с некоторыми фреймбуферами или при использовании последовательного терминала, рекомендуется использовать опцию --quiet для ускорения процесса:

root #emerge --sync --quiet

Чтение новостей

После обновления Gentoo репозитория ebuild-файлов, Portage может предупредить пользователя следующим сообщением:

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Новостные сообщения были созданы, чтобы обеспечить связь, оповещать пользователей о критически важных изменениях с помощью дерева rsync. Чтобы управлять новостными сообщениями используйте команду eselect news. Приложение eselect - это приложение Gentoo, которое позволяет обеспечить общий интерфейс управления системными настройками и производить различные операции. В данном примере eselect просит использовать ее вместе с модулем news.

Для модуля news есть три наиболее распространенных операций:

  • list отображает общий список новостей.
  • read можно прочитать какую-либо новость.
  • purge удалит прочитанные новости, поэтому перечитать новость снова уже будет нельзя.
root #eselect news list
root #eselect news read

Более подробную информацию о чтение новостей можно найти на странице man:

root #man news.eselect

Выбор подходящего профиля

Предупреждение
Не выбирайте какой-либо профиль из 17.1 пока не прочтёте corresponding 17.1 news item. Этот профиль экспериментальный и для него требуются отдельные инструкции по миграции.

Профиль (profile) - это важная часть любой системы Gentoo. Он не только определяет переменные USE, CFLAGS, и другие важные переменные, а также заставляет систему использовать только определенные версии пакетов. Все эти нюансы поддерживаются разработчиками Portage в Gentoo.

Вы можете увидеть какой профиль в настоящее время используется в системе с помощь команды eselect, только теперь с модулем profile:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/hppa/13.0 *
  [2]   default/linux/hppa/13.0/desktop
  [3]   default/linux/hppa/13.0/desktop/gnome
  [4]   default/linux/hppa/13.0/desktop/kde
Заметка
Вывод команды является только примером и может меняться при некоторых ситуациях

Как можно увидеть, есть субпрофиль для настольных систем в некоторых архитектурах.

Предупреждение
Profile upgrades are not to be taken lightly. When selecting the initial profile, make sure to use profile corresponding to the same version as the one initially used by stage3 (e.g. 13.0). Each new profile version is announced through a news item containing migration instructions. Make sure to read it and follow them before switching to a newer profile.

После просмотра доступных профилей для hppa архитектуры, пользователи могут выбрать другой системный профиль:

root #eselect profile set 2



Заметка
Подпрофиль developer сделан специально для разработки Gentoo Linux и не предназначен для использования обычными пользователями.

Обновление @world

На данный момент разумно будет обновить @world чтобы базовая часть системы изменилась.

Это действие необходимо делать тем, кто выбрал профиль с systemd (так как все Gentoo официальные stage архивы используют по умолчанию OpenRC как систему инициализации), однако это необязательно для других профилей:

root #emerge --ask --verbose --update --deep --newuse @world
Совет
Если до этого был выбран desktop профиль для полномасштабной среды рабочего стола, то этот процесс может занять значительное время, которое необходимо для процесса установки. Все можно свести к такому 'правилу': чем короче имя профиля и более "пустой" @world; чем меньше пакетов в @world, тем меньше пакетов системе потребуется. Другими словами:
  • при выборе default/linux/amd64/13.0 очень мало пакетов будут обновлены, в то время как
  • при выборе default/linux/amd64/13.0/desktop/gnome/systemd много пакетов будут установлены, так как система инициализации поменяется с OpenRC на Systemd, и будут установлен фреймворк рабочего стола GNOME.

Настройка USE переменной

USE - это одна из самых мощных переменных Gentoo доступная пользователям. Разные программы могут быть скомпилированы с или без поддержки некоторых опций. Например, некоторые программы могут быть скомпилированы с поддержкой GTK+ или поддержкой Qt. Другие могут быть скомпилированы с или без поддержки SSL. Некоторые программы можно даже скомпилировать с поддержкой фреймбуфера (svgalib) вместо поддержки X11 (X-сервера).

Большинство дистрибутивов компилируют свои пакеты с поддержкой всего, что возможно, увеличивая размер и время запуска программ, не говоря уже о чрезмерных зависимостях. Благодаря Gentoo пользователь может определить с какими опциями пакет должен быть скомпилирован. И здесь переменная USE вступает в игру.

В переменной USE пользователи определяют ключевые слова (keywords), которые отображаются на параметры компиляции. Например, ssl будет компилировать SSL-поддержку в программах, которые ее поддерживают. -X уберет поддержку X-сервера (обратите внимание на знак минус перед X). gnome gtk -kde -qt4 -qt5 будет компилировать программы с поддержкой GNOME (и GTK+), но без поддержки KDE (и Qt), что делает систему более оптимальной для использования GNOME (если архитектура поддерживает его).

Настройки по умолчанию для USE находятся в файле make.defaults Gentoo профиля, который используется на данный момент системой. Gentoo использует систему (комплекс) наследования для своих профилей в которую мы не будем погружаться на данный момент. Простой способ проверить какие настройки используются для USE это запустить emerge --info и просмотреть строку начинающуюся с USE:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Заметка
В приведенном выше примере список укорочен. Настоящий список USE флагов намного больше.

Полное описание всех доступных USE флагов можно найти в файле /usr/portage/profiles/use.desc.

root #less /usr/portage/profiles/use.desc

Когда используется команда less, можно осуществлять скроллинг с помощью клавиш и , или выйти нажав клавишу q.

В качестве примера мы покажем настройки USE для системы ориентированной для использования KDE с поддержкой DVD, ALSA и записи CD:

root #nano -w /etc/portage/make.conf
Файл /etc/portage/make.confНастройки USE для системы ориентированной для использования KDE с поддержкой DVD, ALSA и записи CD
USE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"

Если USE флаг используется в /etc/portage/make.conf это добавляет (или удаляет, если перед USE флагом написан знак -) из списка по умолчанию. Пользователи, которые хотят игнорировать любые настройки USE по умолчанию и полностью настраивать USE сами, должны начать USE в make.conf с -*:

Файл /etc/portage/make.confИгнорирование дефолтных флагов USE
USE="-* X acl alsa"
Предупреждение
Although possible, setting -* (as seen in the example above) is discouraged as carefully chosen USE flag defaults may be configured in some ebuilds to prevent conflicts and other errors.

Необязательно: Настройка переменной ACCEPT_LICENSE

All of the Gentoo packages are tagged with the license(s) the package falls under. This allows users to select software by specific licenses or groups of licenses prior to installing it.

Portage uses the ACCEPT_LICENSE variable to determine which packages to allow without prompting the user for the licenses previously accepted. Exceptions can be made per-package in /etc/portage/package.license as well.

The license groups defined in the Gentoo repository, managed by the Gentoo Licenses project, are:

Group Name Description
@GPL-COMPATIBLE GPL compatible licenses approved by the Free Software Foundation [a_license 1]
@FSF-APPROVED Free software licenses approved by the FSF (includes @GPL-COMPATIBLE)
@OSI-APPROVED Licenses approved by the Open Source Initiative [a_license 2]
@MISC-FREE Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 3] but are not approved by either FSF or OSI
@FREE-SOFTWARE Combines @FSF-APPROVED, @OSI-APPROVED and @MISC-FREE
@FSF-APPROVED-OTHER FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts)
@MISC-FREE-DOCS Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 4] but are NOT listed in @FSF-APPROVED-OTHER
@FREE-DOCUMENTS Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS
@FREE Combines @FREE-SOFTWARE and @FREE-DOCUMENTS
@BINARY-REDISTRIBUTABLE Includes @FREE and other freely distributable closed source software which do not have an End-User License Agreement (EULA)
@EULA License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval

Gentoo comes with a predefined value in the profiles, for example:

user $portageq envvar ACCEPT_LICENSE
* -@EULA

This can be customized system wide by changing /etc/portage/make.conf to, e.g. only accept FSF and OSI, and similar, "Free" software:

Файл /etc/portage/make.confCustomizing ACCEPT_LICENSE
ACCEPT_LICENSE="-* @FREE"

Per package overrides can then be added if necessary and desired, for example:

Файл /etc/portage/package.license/kernelSample license acceptance
sys-kernel/gentoo-sources linux-firmware
sys-kernel/linux-firmware freedist linux-firmware no-source-code
sys-firmware/intel-microcode intel-ucode


Часовой пояс

Определите какой часовой пояс нужен для системы. Посмотреть доступные часовые пояса можно в /usr/share/zoneinfo/, затем запишите его в файл /etc/timezone.

root #ls /usr/share/zoneinfo

Предположим, что выбранным часовым поясом является Europe/Brussels:

root #echo "Europe/Brussels" > /etc/timezone

Пожалуйста, избегайте /usr/share/zoneinfo/Etc/GMT* часовых поясов, так как их названия не соответствуют часовым поясам. Например, GMT-8 на самом деле GMT+8.

Далее, перенастроим пакет sys-libs/timezone-data, что обновит /etc/localtime файл, основываясь на записи в /etc/timezone. Файл /etc/localtime используется системной библиотекой C, чтобы узнать в каком часовом поясе находится система.

root #emerge --config sys-libs/timezone-data

Настройка локалей

Большинству пользователей достаточно иметь одну или две локали на своих системах.

Локаль, на самом деле, указывает не только язык, который использует пользователь при взаимодействии с системой, но и правила для сортировки строк, формат вывода даты и времени, и так далее.

Локали, которые должна поддерживать система, должны быть перечислены в /etc/locale.gen.

root #nano -w /etc/locale.gen

Следующие локали являются примером для получения английской (США) и немецкой (Germany) локалей с поддержкой формата символов (например, UTF-8).

Файл /etc/locale.genВключение US и DE локалей с поддержкой формата символов
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Предупреждение
Мы настоятельно рекомендуем использовать хотя бы одну локаль UTF-8, потому что некоторым приложениям она нужна.

Далее, запустим locale-gen. Это сгенерирует локали, которые были перечислены в файле /etc/locale.gen.

root #locale-gen

Чтобы убедится, что выбранные локали теперь доступны запустите команду locale -a.

После этого настало время, настроить локаль для всей системы. И снова мы используем eselect для этого, только теперь с модулем locale.

Команда eselect locale list выводит список доступных локалей:

root #eselect locale list
Available targets for the LANG variable:
  [1] C
  [2] POSIX
  [3] en_US
  [4] en_US.iso88591
  [5] en_US.utf8
  [6] de_DE
  [7] de_DE.iso88591
  [8] de_DE.iso885915
  [9] de_DE.utf8
  [ ] (free form)

Команда eselect locale set VALUE может установить нужную локаль:

root #eselect locale set 9

Также, это можно сделать с помощью файла /etc/env.d/02locale:

Файл /etc/env.d/02localeРучная настройка системной локали
LANG="de_DE.UTF-8"
LC_COLLATE="C"

Убедитесь в том, что локаль настроена, так как система в противном случае может отображать предупреждения и ошибки во время сборки ядра или других случаях развертывания программного обеспечения, позднее в процессе установки.

Заново перезагрузите окружение:

root #env-update && source /etc/profile && export PS1="(chroot) $PS1"

Мы сделали статью по полном локализации, чтобы помочь пользователю в этом процессе. Другая интересная статья UTF-8 с очень подробной информацией как включить поддержку UTF-8 в системе.