Handbook:Parts/Installation/Base/ru

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

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎čeština • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
Parts 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 = /var/db/repos/gentoo
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

По умолчанию значение переменной 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.


Настройка Portage

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

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

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

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

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

Начиная с этого места 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

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

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

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

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

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

Предупреждение
К изменениям профиля не стоит относиться халатно. Выбирая изначальный профиль, убедитесь, что профиль соответствует той же версии, которая была использован в стадии 3 (к примеру, 17.0). Каждая новая версия профиля объявляется через элемент новостей с инструкциями по миграции. Прочитайте и следуйте им, прежде чем перейти на новый профиль.

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

root #eselect profile set 2

Handbook:Parts/Blocks/ProfileChoice/ru

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

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

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

Это действие необходимо, чтобы система могла применить какие-либо обновления, что могли появиться с момента сборки стадии 3, и из любого выбранного профиля:

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 флагов можно найти в файле /var/db/repos/gentoo/profiles/use.desc.

root #less /var/db/repos/gentoo/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"
Предупреждение
Пусть это и возможно, но выбор -* (как в примере выше) не одобряется, так как в некоторых ебилдах могут присутствовать старательно подобранные наборы флагов USE по умолчанию, для избежания конфликтов и прочих ошибок.

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

Все пакеты в Gentoo помечаются лицензией, под условия которой попадает пакет. Это даёт пользователям возможность выбирать программы с определёнными лицензиями (или лицензиями из опредённых групп) перед установкой.

Важно
The LICENSE variable in an ebuild is only a guideline for Gentoo developers and users. It is not a legal statement, and there is no guarantee that it will reflect reality. So don't rely on it, but check the package itself in depth, including all files that you use.

Portage использует переменную окружения ACCEPT_LICENSE, чтобы определить пакеты, которые можно установить без вопросов к пользователю о выбранных лицензиях. Исключения для пакетов также доступны в /etc/portage/package.license.

Группы лицензий, определённые в репозитории Gentoo и Проектом Лицензий Gentoo:

Имя группы Описание
@GPL-COMPATIBLE Совместимые с GPL лицензии, одобренные Free Software Foundation [a_license 1]
@FSF-APPROVED Лицензии свободного ПО, одобренные FSF (включает @GPL-COMPATIBLE)
@OSI-APPROVED Лицензии, одобренные Open Source Initiative [a_license 2]
@MISC-FREE Всяческие лицензии, которые, вероятнее всего, тоже относятся к свободному ПО, то есть следуют Определению Свободного ПО [a_license 3], но не одобрены ни FSF, ни OSI
@FREE-SOFTWARE Сочетание @FSF-APPROVED, @OSI-APPROVED и @MISC-FREE
@FSF-APPROVED-OTHER Одобренные FSF лицензии для "свободной документации" и "работ для практического применения, не являющихся ПО или документацией" (включая шрифты)
@MISC-FREE-DOCS Всяческие лицензии для свободных документов и прочих работ (включая шрифты), что следуют свободному описанию [a_license 4], но НЕ включены в @FSF-APPROVED-OTHER
@FREE-DOCUMENTS Сочетание @FSF-APPROVED-OTHER и @MISC-FREE-DOCS
@FREE Сочетание @FREE-SOFTWARE и @FREE-DOCUMENTS
@BINARY-REDISTRIBUTABLE Включает @FREE и прочее свободно распространяемое ПО с закрытым кодом, у которого нет пользовательского соглашения (EULA)
@EULA Лицензионные соглашения, которые пытаются отобрать ваши права. Они более строги, чем "все права защищены", или могут требовать явного согласия.

В Gentoo предусмотрено значение по умолчанию в профилях, к примеру:

user $portageq envvar ACCEPT_LICENSE
@FREE

Это можно настроить на уровне системы, изменив /etc/portage/make.conf, чтобы, к примеру, разрешать только FSF, OSI, и подобные свободные лицензии:

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

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

Файл /etc/portage/package.license/kernelSample license acceptance
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
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 в системе.