Это технический шаблон заметки о CLI!
Данный опус является частью единого цикла заметок o CLI. Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.). К сожалению, указать все источники точно не представляется возможным!
Установочный носитель Gentoo Linux
Минимальный установочный liveCD — это загрузочный образ: самодостаточная среда Gentoo она является временоой не изменяемой, а нашей задачей является получение стабильной и автономной системы для естановки на ней серверного ПО.
Скачивание архива stage
Перейдите к точке монтирования Gentoo, где размещается корневая файловая система (скорей всего это /mnt/gentoo):
root #
cd /mnt/gentoo
Закачайте нужный образ:
root #
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20220227T170528Z/stage3-amd64-openrc-20220227T170528Z.tar.xzВ зависимости от установочного носителя, для скачивания архива stage достаточно простого веб-браузера.
Разархивируйте его:
root #
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-ownerУбедитесь, что указаны те же самые параметры (xpf
и --xattrs-include='*.*'
). x
указывает на извлечение (extract), p
для сохранения (preserve) прав доступа и f
для обозначения, что мы хотим извлечь файл (file), а не стандартный ввод. --xattrs-include='*.*'
позволит также сохранить расширенные атрибуты во всех пространствах имен, хранящиеся в архиве. Наконец, --numeric-owner
используется для того, чтобы убедиться, что идентификаторы пользователей и групп распаковываемых файлов останутся такими же, как и задумывались командой Gentoo по подготовке релизов (даже если предприимчивые пользователи не используют официальный установочный носитель Gentoo).
Теперь, когда stage распакован, перейдём к настройке параметров компиляции.
Настройка параметров компиляции
Введение
Для оптимизации Gentoo можно установить несколько переменных, влияющих на поведение пакетного менеджера Portage. Все переменные могут быть установлены в виде переменных среды (с помощью export), но это не является постоянным решением. Чтобы сохранить изменения, следует изменить /etc/portage/make.conf, являющийся основным конфигурационным файлом Portage.
Список и описание всех допустимых переменных можно найти в /mnt/gentoo/usr/share/portage/config/make.conf.example. Для успешной установки Gentoo достаточно определить только те переменные, которые упомянуты ниже.
Запустите редактор (в этом руководстве мы используем nano) для изменения параметров оптимизации, о которых написано далее.
root #
nano -w /mnt/gentoo/etc/portage/make.conf
В файле make.conf.example показано, как файл должен быть структурирован: строки комментариев начинаются с «#», другие строки описывают переменные вида ПЕРЕМЕННАЯ="содержание". Некоторые из этих переменных мы обсудим позже.
CFLAGS и CXXFLAGS
Переменные CFLAGS и CXXFLAGS определяют параметры оптимизации для компиляторов GCC C и C++ соответственно. Хотя они и указаны здесь, для достижения максимальной производительности можно было бы указать флаги оптимизации для каждой программы отдельно. Причина этого в том, что все программы различны. Но этим тяжело управлять, следовательно, запишем эти переменные в make.conf файл.
В make.conf следует указывать параметры оптимизации, которые сделают систему наиболее отзывчивой в целом. Не нужно использовать экспериментальные настройки; излишняя оптимизация может привести к непредсказуемому поведению программ (аварийному завершению, или ещё хуже, к неправильной работе).
make.conf
Пример файла:
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe -march=native"
CFLAGS="${COMMON_FLAGS}"
MAKEOPTS="-j4 -l5"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
USE="-bindist -X -gtk -gtk2 -gtk3 -qt4 -qt -qt4 -qt5 threads idn unicode"
CPU_FLAGS_X86="aes mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
ACCEPT_LICENSE="@BINARY-REDISTRIBUTABLE"
FEATURES="ccache"
CCACHE_SIZE="5G"
PORTAGE_ELOG_SYSTEM="save"
PORTAGE_ELOG_CLASSES="warn error log qa"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --keep-going"
#PHP_TARGETS="php7-2 php7-3"
Переход в изолированную среду
Необязательно: Выбор зеркала
Распределение файлов
Для быстрой загрузки исходного кода рекомендуется выбрать быстрое зеркало. Portage будет искать в файле make.conf переменную GENTOO_MIRRORS и использовать перечисленные в ней зеркала. Можно просмотреть список зеркал Gentoo и найти зеркало (или зеркала), наиболее близко расположенное к месту физического расположения (чаще всего они и есть самые быстрые). Тем не менее, мы предоставляем хороший инструмент под названием mirrorselect, который предлагает удобный интерфейс для выбора подходящего зеркала. Просто перейдите на нужное зеркало и нажмите пробел для выбора одного или нескольких.
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Репозиторий ebuild-файлов Gentoo
Вторым важным шагом в выборе зеркала является настройка репозитория ebuild-файлов Gentoo в /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 по умолчанию будет определять местоположение зеркала на основе ротации.
Копирование информации о DNS
Единственное, что ещё осталось сделать перед входом в новое окружение, это скопировать информацию о DNS из файла /etc/resolv.conf. Это нужно сделать, чтобы сеть всё ещё будет работать даже после входа в новое окружение. Файл /etc/resolv.conf содержит сервера имён.
Чтобы скопировать эту информацию, рекомендуется ввести ключ --dereference
для команды cp. Благодаря этому /etc/resolv.conf будет скопирован как файл, если является символьной ссылкой. В противном случае в новом окружении символическая ссылка будет ссылаться на несуществующий файл (так как цель ссылки, скорее всего, будет недоступна внутри нового окружения).
root #
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
Теперь для инсталляции необходимо примонтировать созданные разделы.
Сначала монтируем корневой раздел в каталог /mnt/gentoo
Затем создадим каталог /mnt/gentoo/boot и примонтируем к ней раздел загрузки sda1
и после этого включаем подкачку:
Linux Gentoo
Источник:
https://dondub.com/2021/02/gentoo-gnu-linux-ustanovka-i-nastroyka/?ysclid=l0ez63gp79