Меню Рубрики

Установка gentoo в один раздел

Установка базовой системы Gentoo

Contents

Chrooting

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка Portage

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

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

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

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

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

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

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

Читайте также:  Установка starline e90 toyota

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

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

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

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

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

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

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

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

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

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

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

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

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

No-multilib

Если необходимо чистое 64-битное окружение, без 32-битных приложений или библиотек, то нужно использовать профиль no-multilib:

Далее выберите профиль no-multilib:

systemd

Кто желает использовать systemd в качестве системы инициализации должны выбрать профиль со словом systemd где-то в названии профиля:

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

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

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

Настройка 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:

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

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

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

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

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

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

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 Лицензионные соглашения, которые пытаются отобрать ваши права. Они более строги, чем «все права защищены», или могут требовать явного согласия.
Читайте также:  Установка 2din магнитолы в нексии

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

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

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

Необязательно: Использование systemd в качестве init-системы

Оставшаяся часть настольной книги Gentoo Handbook на OpenRC (традиционная init-система Gentoo) в качестве системы инициализации по умолчанию. Если хотите использовать systemd или планируете использовать GNOME 3.8 или более поздние версии (который требует systemd), обратитесь к статье systemd. Она содержит инструкции, которые эквивалентны инструкциям из последующих разделов данного Handbook. В частности расскажет о init-командах ( systemctl ) и специфичных для systemd сервисах (таких как timedatectl , hostnamectl и так далее), необходимые для создания рабочего окружения systemd.

Часовой пояс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

источник

Установка Gentoo. Коротко и ясно

В статье рассматривается установка gentoo — одного из дистрибутивов Linux. Статья не обьясняет многие технические термины и не является заменой официального handbook. Установка проводится на виртуальный сервер под управлением vmware esxi6.5. Предполагается, что виртуальный сервер уже создан средствами ESXi Embedded Host Client и имеет следующую конфигурацию:

CDROM: в качестве диска имидж gentoo-install-amd64-minimal-20150521.iso взятый с сайта gentoo

Запускаем виртуальную машину с СД, на приглашение boot пишем gentoo. После продолжения загрузки и выбора опций по умолчанию получаем приглашение командной строки

Вводим пароль рута. Необходимо защититься. В процессе установки виртуальная машина будет доступна из вне

New password: (Enter the new password)
Re-enter password: (Re-enter the password)

Запуск ssh

Необходимо для удаленного подключения в виртуальной машине, так как продолжать установку из консоли vmware sphere не совсем удобно

Задаем параметры сети. Где x.x.x.x внешний адрес выданный нам провайдером, x.x.x.1 — шлюз провайдера через который мы выходим в мир. Просмотрим список сетевых интерфейсов и даем ему адрес

В /etc/resolv.conf указываем сторонний днс-сервер, пока нет своего

Пробуем попингать кого-нибудь, например ping gmail.com

Если ответы есть, то сеть и днс настроены и работают. Теперь с рабочего компьютера можно соединится по ssh и продолжить установку

Разбивка диска

GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted)

Создание разделов

  1. /dev/sda1 BIOS boot раздел — рекомендовано создавать в любом случае
  2. /dev/sda2 Boot раздел
  3. /dev/sda3 Swap раздел
  4. /dev/sda4 Root раздел

По желанию можно создать еще отдельно /dev/sda5 для /home, но я этого не делал. Если мне подребуется /home выходящий за пределы размера текущего диска, то я просто создам дополнительный виртуальный диск и подключу его к виртуальной машине

При создании разделов (mkpart) размер разделов неявно указан в мегабайтах

-1 значит от 10-го гигабайта и до конца диска. В результате после выполнения print получаем следующую картину

Форматирование разделов

Я придерживаюсь правил официального мана, поэтому делаю загрузочный раздел (/dev/sda2) в ext2 и корневой раздел (/dev/sda4) в ext4

Активация и инициализация раздела подкачки

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

Установка из архива stage3 amd64

В браузере идем на https://www.gentoo.org/downloads/, находим Stage Archives, копируем ссылку и подкидываем ее в wget

В результате мы получили установленную систему. Да, во так просто. Но это еще не все. Впереди еще конфигурирование системы, компиляция ядра, установка загрузчика

Читайте также:  Установка linux mint usb flash

Задание параметров компиляции свежеустановленной системы

Мой make.conf содержит следующее

Информацию о CPU_FLAGS_X86 можем получить установив пакет app-portage/cpuid2cpuflags или командой cat /proc/cpuinfo

Копируем информацию о ДНС

Подготовка к переходу в новое окружение. Монтирование

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

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

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

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

В результате мы получили структуру папок и файлов такую, как будь-то бы сервер уже проинсталирован и мы на него залогинились

Установка portages и синхронизация до актуальной версии

Выбор чистого 64-битного окружения, без 32-битных приложений и библиотек осуществляется через выбор нужного профиля. Полный список профилей можно посмотреть командой:

Мне нужен профиль 11, я его выбираю следующей командой

Использование USE флагов

USE-флаги задают опции сборки программ включая или выключая нужное. В отличии от FreeBSD, где опции сборки нужно выбирать по ходу установки зависимостей устанавливаемой программы (Например: Вы желаете собрать postfix с поддержкой tls и mysql. В папке порта postfix вы запускаете команду make. Postfix не будет собран пока не будут собраны и установлены его зависимости, в даном случае mysql и openssl, каждая из которых имеет свой конфигуратор. Тоесть после make из /usr/ports/mail/postfix автоматически будет запущен конфигуратор openssl, где нужно проставить флаги сборки (или согласится на что, что есть) и ждать пока будет собран и установлен этот пакет, после чего установщик перейдет к следующей зависимости, в данном случае к mysql, в конфигураторе которого также нужно сделать выбор. Таким образом администратор должен полностью контролировать процесс) gentoo предлагает более удобный механизм-задать опции сразу. Часть из них я уже указал ранее в /etc/portage/make.conf

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

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

В файле /etc/portage/make.conf можно добавлять, убирать USE-флаги. Если это произошло, то необходимо пересобрать мир следующей командой

В дальнейшем мне потребуется vim/vi, поэтому я сразу устанавливаю его. Можно и не устанавливать и пользоваться дифолтным nano

Часовой пояс и дата

Список часовых поясов Европы

На основании записи в /etc/timezone сгенерируем /etc/localtime. Таким образом время на сервере будет из нашей географической временной зоны

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

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

Раскомментируем нужные локали. Я себе оставил en_US.UTF-8 UTF-8. Полный список доступных локалей можно посмотреть командой

Теперь locale -a покажет только наши локали, а команда

покажет нумерованый список локалей из которых выбираем свою en_US.utf8

Установка ядра

Следующая команда устанавливает исходники ядра в /usr/src/, в котором символьная ссылка linux будет указывать на текущую версию

Собрать ядро можно либо вручную, либо при помощи программы genkernel. Я предпочитаю ее

Для текущей разметки создадим файл /etc/fstab, в котором будут следующие записи

Собираем ядро

Так как у меня есть готовый конфиг ядра на другом сервере, то я возьму его и положу в /etc/kernels и затем дам команду сборки ядра. Если готовый конфиг взять негде, то genkernel запустит конфигуратор, где есть возможность выбрать нужные опции (главное не запутаться). Сохраненный конфиг-файл .config будет находится в папке /usr/src/linux. После окончания компиляции genkernel скопирует его в /etc/kernels с именем kernel-config-x86_64-4.4.26-gentoo, где 4.4.26 текущая, пролинкованая версия ядра (см. в /usr/src/)

В среднем компиляция выполняется минут 20-40

Настройка сети будущего сервера

В папке /etc/conf.d лежат конфигурационные файлы. Некоторые из них нужно изменить

Адреса для внешнего (eth0) и внутреннего интерфейса (eth1)

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

и постановкой их в автозапуск

Обращаю внимание на то, что названия наших интерфейсов enp2s0 и enp2s1. А сконфигурированы у нас интерфейсы с именами eth0 и eth1. Если не решить этот конфликт, то после перегрузки сервер окажется без сети, что явно плохо. Для решения проблемы в файле /etc/default/grub для параметра GRUB_CMDLINE_LINUX нужно добавить net.ifnames=0. Для нашего примера это выглядит так

Нужно запомнить этот момент и позже, когда будет установлен программа grub, но до инсталяции на бутовый раздел внести изменения в файл /etc/default/grub

Установка пароля

Так как под рутом работать не принято, то заведем для себя учетку и установим пароль

Удаленный доступ по ssh

Ssh-сервер должен стартануть после перегрузки виртуальной машины. Это обеспечивается следующей командой

Установка и конфигурирование загрузчика GRUB

Теперь внесем изменения в файл /etc/default/grub, о чем я писал выше и установим загрузчик на раздел /dev/sda

Финиш

Выход из chroot, размонтирование файловых систем, перегрузка

И в заключении даю ряд утилит, необходимых для начальной работы сервера

источник