Введение
На земле Gentoo обновление понимается иначе, чем в большинстве существующих дистрибутивов linux. Gentoo никогда не был предназначен для «классического» способа обновления программ: дождаться нового релиза, скачать его, прожечь, поместить диск в привод и следовать инструкции по обновлению. Такой процесс вряд ли может удовлетворить опытных пользователей, желающих иметь свежее программное обеспечение. С самого начала, Gentoo был разработан вокруг концепции быстрых последовательных обновлений. В идеале, вы устанавливаете систему один раз, и никогда не беспокоитесь о выпусках: просто следуете инструкциям из Введения в Portage в настольной книге Gentoo, которые объясняют, как сохранить вашу систему в актуальном состоянии. Хотя иногда вносятся изменения в ядро ОС и требуется его ручное обновление.
Но в Gentoo есть и релизы. Новый релиз означает появление нового установочного диска, исправленного и дополненного. Диск содержит актуальные/свежие пакеты для новых установок, иногда реализуются функции, несовместимые с предыдущими выпусками. В таком случае принято говорить о новом профиле. Профиль — набор конфигурационных файлов, хранимых а каталоге . Профили, устаревающие с появлением новых, хранятся в наряду с текущими, но они помечены как устаревшие. Portage уведомит вас о необходимости перехода на новый профиль.
Настройка локалей
Генерация локалей
Большинству пользователей достаточно иметь одну или две локали на своих системах.
Локаль указывает не только язык, который использует пользователь при взаимодействии с системой, но и правила для сортировки строк, формат вывода даты и времени, и так далее. Локали являются регистрозависимыми и должны использоваться так, как они описаны. Полный список доступных локалей можно найти в файле /usr/share/i18n/SUPPORTED.
Локали, поддерживаемые системой, должны быть указаны в /etc/locale.gen.
Следующие локали являются примером для создания английской (США) и русской (Россия) локалей с поддержкой формата символов (например, UTF-8).
Файл Включение US и RU локалей с поддержкой формата символов
en_US ISO-8859-1 en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8
ПредупреждениеМы настоятельно рекомендуем добавить хотя бы одну локаль UTF-8, так как для сборки многих приложений это является обязательным требованием.
Далее, запустим команду locale-gen, которая создаст все перечисленные в файле /etc/locale.gen локали.
Чтобы убедится, что выбранные локали теперь доступны, запустите команду locale -a.
Выбор локали
Теперь настало время установить локаль для всей системы. И снова мы используем eselect для этого, только теперь с модулем .
Команда eselect locale list выведет список доступных локалей:
Available targets for the LANG variable: C C.utf8 en_US en_US.iso88591 en_US.utf8 POSIX ru_RU.utf8 ru_RU.UTF-8 (free form)
Команда eselect locale set <NUMBER> установит необходимую локаль:
Это также можно сделать вручную, с помощью файла /etc/env.d/02locale:
Файл Ручная настройка системной локали
LANG="ru_RU.UTF-8" LC_COLLATE="C"
Установка локали предотвратит появление предупреждений и ошибок в процессе компиляции ядра и программ.
Заново перезагрузите окружение:
Полное руководство локализации может дать дополнительную информацию, связанную с работой с локалями. Также стоит взглянуть на статью UTF-8 с очень подробной информацией о том, как включить поддержку UTF-8 в системе.
← Установка Gentoo файлов установки К содержанию Настройка ядра Linux →
Создание бинарных пакетов
Существует три основных способа создания бинарных пакетов:
- после обычной установки использовать приложение quickpkg;
- явно, во время каждого запуска emerge, использовать параметр ();
- автоматически, с помощью установки значения в переменной Portage FEATURES.
Все три метода создадут бинарные пакеты в каталоге, который указан в переменной PKGDIR (по умолчанию это /var/cache/binpkgs).
Использование quickpkg
Приложение quickpkg создаёт бинарные пакеты для всех установленных пакетов, которые соответствуют заданным атомам (или множествам пакетов).
Например, для создания бинарных пакетов для всех установленных версий GCC:
Используйте , для того чтобы создать бинарные пакеты для всех установленных пакетов в системе:
Для данного метода существует оговорка: он полагается на установленные файлы, что может вызвать проблему с конфигурационными файлами. Администраторы после установки программного обеспечения часто изменяют конфигурационные файлы
Поскольку это может привести к утечке важной (возможно, даже конфиденциальной) информации, quickpkg по умолчанию не включает в пакеты конфигурационные файлы, защищённые с помощью CONFIG_PROTECT. Чтобы принудительно включить конфигурационные файлы, используйте опцию или .
Использование —buildpkg как параметра emerge
При установке программ с помощью emerge можно попросить Portage создавать бинарные пакеты, если использовать параметр ():
Так же можно попросить Portage только создать бинарный пакет без установки пакета в систему. Для этого необходимо использовать параметр ():
Последний метод, однако, требует предварительной установки всех зависимостей времени сборки.
Реализация работы buildpkg с помощью возможности Portage
Наиболее распространенный способ создания бинарного пакета, каждый раз когда пакет устанавливается Portage, — это использовать возможность (feature) , которою можно включить в файле /etc/portage/make.conf так:
Файл Включение возможности Portage buildpkg
FEATURES="buildpkg"
Каждый раз, когда Portage будет устанавливать программное обеспечение и эта возможность включена, он будет создавать также бинарный пакет.
Исключение для некоторых пакетов
Можно попросить Portage не создавать бинарные пакеты для некоторых выбранных пакетов или категорий. Это можно сделать передав команде emerge параметр :
Сборка ядра
Сделайте необходимые изменения в ядре и соберите его. Смотрите статьи настройку ядра Linux и конфиурацию ядра, чтобы узнать больше подробностей об этом шаге
Важно помнить, что здесь лучше всего подходит обобщённое ядро, потому что чем оно более общее, тем больше машин будет загружаться с ним.
В ходе настройки, возможно скомпилировать модули и включить их в initramfs. Они будут загружаться при загрузке.
Команда выше займёт некоторое время на установку стандартного ядра, создание диска и копирования файлов в /tmp/boot.
initramfs-genkernel-x86_64-3.5.2-gentoo kernel-genkernel-x86_64-3.5.2-gentoo System.map-genkernel-x86_64-3.5.2-gentoo
По умолчанию: GRUB2
Emerge
Если используется старая материнская плата, BIOS которой поддерживает только таблицу разделов MBR, для установки GRUB не нужно никаких дополнительных настроек:
Заметка для пользователей UEFI: запущенная команда выведет включенные значения в переменной GRUB_PLATFORMS, перед компиляцией. Если используется более новая UEFI-совместимая материнская плата, пользователям сперва нужно убедиться, что включено (обычно это уже сделано по умолчанию). Если это не так, добавьте в файл /etc/portage/make.conf до компиляции GRUB2, что позволит собрать пакет с поддержкой EFI:
- Если GRUB2 был каким-то образом был установлен до включения , то добавьте строку (из примера выше) в make.conf, после чего повторно переопределите зависимости для для набора пакетов world с помощью emerge :
GRUB2 теперь установлен в системе, но еще не активирован.
Установка GRUB2 на диск
Далее установим необходимые для GRUB2 файлы в каталог /boot/grub/ с помощью команды grub-install. Если предположить, что первый диском (тот, с которого будет загружаться система) является /dev/sda, то одна из следующих команд сделает это:
Когда используется BIOS:
Когда используется UEFI:
ВажноУбедитесь, что системный раздел EFI был смонтирован перед запуском grub-install. grub-install может установить файл GRUB EFI (grubx64.efi) в неправильном каталоге без каких-либо сообщений, о том, что использовался неправильный каталог
- ЗаметкаИзмените параметр на корневой каталог системного раздела EFI. Это необходимо, если раздел /boot не был отформатирован как FAT.
ВажноЕсли grub_install вернёт ошибку , необходимо перемонтировать специальную точку монтирования efivars в режим чтения-записи:
Некоторые производители материнских плат поддерживают только каталог /efi/boot/ для расположения файла .EFI в системном разделе EFI (ESP). Установщик GRUB может выполнить эту операцию автоматически, если использовать параметр . Убедитесь, что ESP смонтирован до запуска следующих команд. Предполагая, что ESP смонтирован в /boot (как было предложено ранее), выполните:
Это создает каталог по умолчанию, определенный спецификацией UEFI, а затем скопирует файл grubx64.efi в каталог EFI «по умолчанию», определенный той же спецификацией.
Настройка
Далее, нужно сгенерировать конфигурационный файл GRUB2 на основе настроек пользователя, указанных в файле /etc/default/grub и сценариях /etc/grub.d. В большинстве случаев ничего не нужно настраивать, так как GRUB2 автоматически определяет, какое ядро есть для загрузки (самый высокий приоритет у /boot/) и какая файловая система у rootfs. Здесь также можно добавить параметры ядра в /etc/default/grub, используя переменную GRUB_CMDLINE_LINUX.
Для создания окончательной конфигурации GRUB2, запустите команду grub-mkconfig:
Generating grub.cfg ... Found linux image: /boot/vmlinuz-4.9.16-gentoo Found initrd image: /boot/initramfs-genkernel-amd64-4.9.16-gentoo done
Вывод команды должен содержать по крайней мере один образ Linux, так как он необходим для загрузки системы. Если используется initramfs или ядро создавалось с помощью genkernel, также должен быть указан правильный образ initrd. Если это не так, перейдите в /boot/ и проверьте содержимое, используя команду ls. Если файлы действительно отсутствуют, вернитесь к инструкции по настройке и установке ядра.
Управление программным обеспечением
Поиск программного обеспечения
Есть несколько способов поиска программ в Gentoo репозитории. Один из способов использовать emerge. По умолчанию emerge —search находит имена пакетов, которые совпадают (полностью или частично) с заданным условием поиска.
Например, чтобы найти все пакеты, содержащие «pdf» в названии:
Для поиска пакетов еще и по тексту описания используйте опцию (или ):
Обратите внимание, что вывод команды возвращает много информации. Поля четко обозначены, поэтому мы не будем вдаваться в подробности их значения:. Код Пример вывода команды поиска
Код Пример вывода команды поиска
Установка программы
Когда программное обеспечение было найдено, его легко можно установить командой emerge. Например, для установки gnumeric:
Поскольку многие приложения зависят друг от друга, любая попытка установить какой-либо пакет может привести к установке нескольких зависимостей. Не беспокойтесь об этом, Portage учтет и эти зависимости. Чтобы увидеть что Portage будет устанавливать, добавьте опцию . Например:
Во время установки пакета, Portage скачает необходимый исходный код из интернета (если необходимо) и по умолчанию сохранит его в /var/cache/distfiles/. После этого он распакует, скомпилирует и установить пакет. Для того чтобы Portage только загрузил исходный код без его установки, добавьте опцию к команде emerge:
Поиск документации для установленных пакетов
Многие пакеты поставляются с собственной документацией. Иногда, USE-флаг определяет будет ли установлена документация из пакета или нет. Чтобы увидеть есть ли USE-флаг в пакете используйте emerge -vp category/package:
These are the packages that would be merged, in order: Calculating dependencies... done! media-libs/alsa-lib-1.1.3::gentoo USE="python -alisp -debug -doc" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7" 0 KiB
Лучший способ настроить USE-флаг это настроить его для каждого пакета с помощью /etc/portage/package.use, так документация будет устанавливаться только для требуемых пакетов. Для большего количества информации, прочитайте раздел USE-флаги.
После установки пакета, его документацию, как правило, можно найти в подкаталоге с именем пакета в каталоге /usr/share/doc/:
total 16 -rw-r--r-- 1 root root 3098 Mar 9 15:36 asoundrc.txt.bz2 -rw-r--r-- 1 root root 672 Mar 9 15:36 ChangeLog.bz2 -rw-r--r-- 1 root root 1083 Mar 9 15:36 NOTES.bz2 -rw-r--r-- 1 root root 220 Mar 9 15:36 TODO.bz2
* Searching for alsa-lib in media-libs ... * Contents of media-libs/alsa-lib-1.1.3: /usr/share/doc/alsa-lib-1.1.3/ChangeLog.bz2 /usr/share/doc/alsa-lib-1.1.3/NOTES.bz2 /usr/share/doc/alsa-lib-1.1.3/TODO.bz2 /usr/share/doc/alsa-lib-1.1.3/asoundrc.txt.bz2
Параметр можно использовать с другими параметрами, чтобы увидеть место установки множества других типов файлов. Дополнительную информацию можно посмотреть в man-странице equery: man 1 equery.
Удаление программы
Для удаления пакета из системы используйте emerge —unmerge. Она попросит Portage удалить все файлы установленные пакетом из системы. Одним исключением из этого являются файлы конфигурации этого приложения, если они были изменены пользователем. Сохранение конфигурационных файлов позволяет пользователям продолжать работать с пакетом, без необходимости настраивать снова пакет, если он будет установлен снова позже.
Когда удаляется пакет из системы, зависимости от этого пакета, которые установились при установки пакета, все еще остаются в системе. Для того чтобы Portage нашел все зависимости, которые теперь можно удалить, используйте опцию emerge о которой мы расскажем позже.
Установка Gentoo
- Об установке Gentoo Linux
- В этой главе даётся общее представление о предлагаемом порядке установки.
- Выбор подходящего носителя для установки
- Gentoo можно установить множеством способов. Данная глава описывает установку Gentoo при помощи минимального установочного компакт-диска.
- Настройка сети
- Чтобы загрузить актуальный исходный код, потребуется настройка сети.
- Подготовка дисков
- Перед тем как установить Gentoo, необходимо создать разделы на диске. В данной главе описывается процесс разбиения диска.
- Установка установочных файлов Gentoo
- Базовая система Gentoo скачивается в качестве архива stage3. В этой главе описано, как скачать и распаковать архив, а также настроить пакетный менеджер Gentoo Portage.
- Установка базовой системы Gentoo
- После установки и настройки stage3 базовая система готова, благодаря чему становится доступным минимальное рабочее окружение.
- Настройка ядра Linux
- Ядро Linux — сердце каждого дистрибутива. В этой главе описывается, как его настроить.
- Настройка системы
- Необходимо отредактировать некоторые важные конфигурационные файлы. В данной главе дан обзор этих файлов, а также объясняется как их настроить.
- Установка системных средств
- В данной главе описывается выбор и установка некоторых важных утилит.
- Настройка начального загрузчика
- В данной главе устанавливается и настраивается правильный начальный загрузчик.
- Завершение установки
- Установка почти закончена. В данной главе описаны последние штрихи.
ОПИСАНИЕ¶
В настоящее время portage использует большое количество конфигурационных файлов; со многими из них незнакомы пользователи и, во многих случаях, даже разработчики. В данном руководстве мы попытались собрать воедино все сведения о portage, которые позволили бы максимально эффективно использовать этот инструмент. Заметьте, что здесь мы описываем только те возможности, которые не имеют собственной справочной страницы.
Все файлы в каталоге make.profile могут быть тонко сконфигурированы при использовании каскадных профилей с помощью родительских профилей. Подробнее см. здесь:
Примечание:
Данное руководство не содержит информации о том, как установить ту или иную программу; если вам нужна именно она, обратитесь к справке по emerge(1).
euse
euse является инструментом для просмотра, активации и деактивации USE-флагов в различных местах. Для получения дополнительной информации об использовании флагов, пожалуйста, обратитесь к главе USE-флаги. Смотрите euse -h для получения помощи и всех опций.
Просмотр, активация и деактивация USE-флагов
Команда euse -a считывает текущие активные USE-флаги и отображает их.
ЗаметкаЕсть 5 «столбцов», которые euse теперь использует, для того, чтобы показать активен или неактивен флаг и где установлены все флаги. Столбцы следуют — +/-, установлены в Environment (окружении), установлены в make.Conf, установлены в make.Defaults, и установлены в make.Globals. Результат выглядит .
X aalib acpi alsa apache2 apm avi berkdb bitmap-fonts bonobo cdr crypt cscope cups curl emboss encode esd fam fbcon firefox font-server foomaticdb fortran gd gdbm gif gimpprint gnome gphoto2 gpm gstreamer gtk gtkhtml guile imagemagick imlib innodb ipv6 javascript jpeg kde ldap libg++ libwww mad mbox md5sum mikmod mmx motif mp3 mpeg mpeg4 mysql ncurses nls nvidia odbc offensive ogg opengl oss pam pdflib perl png python qt quicktime readline ruby sdl slang spell sse ssl svga tcltk tcpd tiff truetype usb vanilla x86 xml xosd xv xvid zlib
Так же можно использовать команду euse -a -g, чтобы просмотреть только активные глобальные флаги. Команда euse -a -l делает то же самое для активных локальных флагов. и являются суб-опциями для euse и для корректного функционирования перед ними необходима опция (такая как ).
bitmap-fonts font-server fortran gimpprint md5sum mpeg4 nvidia offensive truetype
euse может активировать и деактивировать USE-флаги. Для этого используются команды euse -E flagname(активировать флаг) и euse -D flagname (деактивировать флаг).
ПредупреждениеНе используйте команды euse -E или euse -D без флага. Это действие активирует/деактивирует ВСЕ USE-ФЛАГИ в /etc/portage/make.conf. Копия будет храниться в /etc/portage/make.conf.euse_backup, тем не менее будьте осторожны при использовании euse -E или euse -D.
Активация USE-флага:
/etc/portage/make.conf was modified, a backup copy has been placed at /etc/portage/make.conf.euse_backup
Файл /etc/portage/make.conf выглядит таким, после запуска команды:
Файл После активации USE-флага 3dfx
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \ firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \ innodb -java javascript jpeg libg++ libwww mad mbox md5sum \ mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \ ogg odbc offensive opengl pam pdflib perl png python \ quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \ vanilla X xosd xv xvid x86 zlib 3dfx"
Деактивация USE-флага:
/etc/portage/make.conf was modified, a backup copy has been placed at /etc/portage/make.conf.euse_backup
Снова, вид файла /etc/portage/make.conf после запуска команды:
Файл После деактивации USE-флага 3dfx
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \ firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \ innodb -java javascript jpeg libg++ libwww mad mbox md5sum \ mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \ ogg odbc offensive opengl pam pdflib perl png python \ quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \ vanilla X xosd xv xvid x86 zlib -3dfx"
Заметкаeuse физически не удаляет флаг из /etc/portage/make.conf. Он просто добавляет (минус) перед флагом, чтобы деактивировать его. Возможно, придется вручную очистить /etc/portage/make.conf, чтобы избежать нежелательных переменных. В противном случае, используйте опцию (снос) для удаления флага. Например, euse -P 3dfx удалит флаг .
Использование
Как мне настроить интернациональную раскладку клавиатуры?
Измените переменную в /etc/conf.d/keymaps. Чтобы консоль правильно показывала расширенную таблицу символов также стоит настроить переменные и в /etc/conf.d/consolefont (для дальнейшей информации по локализации окрущения смотрите инструкцию по локализации). Затем перезагрузитесь с помощью reboot или перезапустите срипты keymaps и consolefont:
See keyboard layout switching for more information.
/etc/resolv.conf имеет неправильные права; chmod исправит это:
See also resolv.conf.
Как мне заставить numlock включаться при загрузке?
Следующая команда добавит сервис numlock к уровню загрузки по умолчанию, что будет включать numlock при загрузке.
Каждый GUI имеет собственные инструменты для вещей такого типа; пожалуйста, проверьте раздел справки или обратитесь за помощью к онлайн-документации для используемого GUI.
Как автоматически очищать терминал после выхода?
Чтобы терминал автоматически ошичищался, добавьте clear в файл ~/.bash_logout :
Чтобы эта функция автоматически добавлялась каждому новому пользователю, добавьте то же самое в файл /etc/skel/.bash_logout :
Лицензии
Начиная с версии Portage 2.1.7 можно принять или отклонить установку программного обеспечения основываясь на лицензии. Все пакеты в дереве содержат запись LICENSE в ebuild. Запуск emerge —search category/package покажет лицензию пакета.
ВажноПеременная LICENSE в ebuild является только ориентиром для разработчиков и пользователей Gentoo. Она не является юридически значимым заявлением и не гарантирует, что условия использования соответствуют действительности
Не стоит доверять ей безоговорочно и при необходимости следует проводить полный аудит всех файлов используемого пакета самостоятельно.
Переменная, которая контролирует допустимые лицензии называется ACCEPT_LICENSE. Ее можно настроить в файле /etc/portage/make.conf. В следующем примере показано значение по умолчанию:
Файл Настройка по умолчанию для ACCEPT_LICENSE
ACCEPT_LICENSE="-* @FREE"
При такой конфигурации пакеты, имеющие свободную лицензию ПО или документации, могут быть установлены. Несвободное ПО не сможет быть установлено.
Можно настроить ACCEPT_LICENSE глобально в файле /etc/portage/make.conf или специально для отдельного пакета в файле /etc/portage/package.license.
Файл Разрешение лицензии google-chrome для пакета google-chrome
www-client/google-chrome google-chrome
ВажноСами лицензии хранятся в каталоге /var/db/repos/gentoo/licenses/, а лицензионные группы — в файле /var/db/repos/gentoo/profiles/license_groups. Первая запись в каждой строке, записанная ЗАГЛАВНЫМИ буквами — это название группы лицензий, остальные записи после неё — индивидуальные лицензии.. Группа лицензий в переменной ACCEPT_LICENSE указываются с символом перед ней
Возможной настройкой (которая является значением по умолчанию в Gentoo) является разрешение всех лицензий, кроме Соглашений с лицензией конечного пользователя (EULA), которые обычно требуют прочтения и подписания соглашения о принятии условий лицензии. Это можно достичь, приняв все лицензии (через ), после чего удалив лицензии из группы EULA, как указано ниже:
Группа лицензий в переменной ACCEPT_LICENSE указываются с символом перед ней. Возможной настройкой (которая является значением по умолчанию в Gentoo) является разрешение всех лицензий, кроме Соглашений с лицензией конечного пользователя (EULA), которые обычно требуют прочтения и подписания соглашения о принятии условий лицензии. Это можно достичь, приняв все лицензии (через ), после чего удалив лицензии из группы EULA, как указано ниже:
Файл Позволять все лицензии за исключением EULA
ACCEPT_LICENSE="* -@EULA"
Обратите внимание что такая настройка разрешит несвободное программное обеспечение и документацию.
Плюсы и минусы Gentoo Linux
Плюсы Gentoo Linux
- Каждый раз, когда вы будете получать современное программное обеспечение в соответствии с вашими потребностями и потребностями.
- У вас есть полный контроль над Linux с нуля, без каких-либо барьеров зависимости.
- Все оптимизировано под вашу архитектуру и предпочтения.
- Все типы зависимостей Package будут обрабатываться portage. Если вам не нужно вручную устанавливать зависимость.
- Для вашей помощи Gentoo предоставляет вам онлайн-доступ к сообществу, где вы можете получить доступ к документации, форумам и т.д.
Минусы Gentoo Linux
- Длительное время установки.
- Пакеты устанавливаются и обновляются дольше, потому что каждый пакет создается из исходного кода.
Обновление
Философия
Здесь, на земле Gentoo, концепция обновление понимается совсем не так, как во всем остальном мире Linux. Это широко известный факт, что Gentoo никогда не следовала «классическому» способу обновления программ: дождаться нового релиза, скачать его, прожечь, засунуть диск в дисковод и, наконец, следовать инструкциям по обновлению.
Gentoo пользователи знают, что такой процесс раздражает опытного пользователя, стремящегося всегда быть на переднем крае. Учитывая популярность и распространенность инструментов типа apt или apt-rpm, облегчающих быстрые и частые обновления, мы полагаем, что и опытные пользователи других дистрибутивов испытывают те же чувства. Однако ни один дистрибутив не приспособлен для удовлетворения нужд требовательных пользователей лучше Gentoo, поскольку Gentoo с самого начала строился на идее быстрых последовательных обновлений.
В идеале, пользователи устанавливают систему однажды, и более никогда не беспокоятся о выпусках: просто следуйте инструкциям из введение в Portage в настольной книге Gentoo, где описывается, как поддерживать актуальность системы. Хотя обычно такого подхода достаточно, иногда в ядро системы вносятся изменения, требующее установки вручную.
Выпуски и профили
О процессе выпуска версий Gentoo постоянно задают вопрос: «Зачем нужно часто делать новые выпуски, если они не предназначены для обновления программ у пользователей?». Тому есть ряд причин:
- Новый выпуск — это новые CD с исправлениями и дополненными возможностями.
- Новый выпуск несет обновленный набор пакетов GRP, так что пользователи, избирающие «быстрый способ» установки (stage3 + заранее скомпилированные пакеты), получают не устаревшую систему.
- Наконец, в новых выпусках время от времени реализуются функции, несовместимые с предыдущими выпусками.
Когда релиз включает в себя новые функции, несовместимые, или изменяет набор основных пакетов и установок, сильно меняющих поведение системы, мы говорим, что он предоставляет новый profile (профиль).
Профиль представляет собой набор конфигурационных файлов, хранимый в подкаталоге /usr/portage/profiles, которые описывают вещи, такие как ebuild для system (системных) пакетов, USE-флаги по умолчанию, отображение по умолчанию для виртуальных пакетов, и архитектуру, на которой работает система.
Используемый профиль определяется символьной ссылкой /etc/portage/make.profile, указывающей на один из подкаталогов каталога /usr/portage/profiles, содержащего файлы профиля. Например, профиль 13.0, являющийся профилем по умолчанию для x86, находится в каталоге /usr/portage/profiles/default/linux/x86/13.0. Файлы, находящиеся в родительском каталоге, также являются частью профиля (и, следовательно, используются различными субпрофилями) — поэтому эти профили называются каскадными (cascaded profiles).
Устаревшие профили хранятся в каталоге /usr/portage/profiles вместе с текущими, но они помечены как не рекомендованные к использованию (deprecated). В этом случае файл под названием deprecated помещается в каталог профиля. Этот файл содержит название профиля, до которого следует «обновить» текущий профиль; Portage использует эту информацию для автоматического предупреждения администраторов о необходимости обновления профиля.
Часовой пояс
Определите, какой часовой пояс будет установлен для системы. Просмотрите список всех доступных часовых поясов в каталоге /usr/share/zoneinfo/, затем запишите выбранный в файл /etc/timezone.
Suppose the timezone of choice is Europe/Brussels.
OpenRC
We write the timezone name into the /etc/timezone file.
Старайтесь не использовать часовые пояса, начинающиеся с /usr/share/zoneinfo/Etc/GMT*, так как их названия не отражают настоящий часовой пояс. Например, GMT-8 на самом деле является GMT+8.
Systemd
We use a slightly different approach here; we generate a symbolic link:
Later, when systemd is running, we can configure the timezone and related settings with the timedatectl command.
Настройка переменной USE
Открытие файла /etc/portag/make.confnano /etc/portage/make.confUSE=»acl alsa berkdb cdr crypt cups dbus dvd elogind gnutls ipv6 nls policykit pulseaudio sasl ssl syslog tcpd udev udisks unicode X»VIDEO_CARDS=»intel»INPUT_DEVICES=»evdev synaptics»CFLAGS=»-march=ivybridge -mno-avx -mno-aes -mno-rdrnd -O2 -pipe»CXXFLAGS=»${CFLAGS}»MAKEOPTS=»-j3″LINGUAS=»ru en»L10N=»ru en»GRUB_PLATFORMS=»efi-64″ для ОС без efi GRUB_PLATFORMS=»pc»CPU_FLAGS_X86=»mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3″
Для включения правильных флагов CPU_FLAGS_X86 используем Python
скрипт, который генерирует правильное значение с /proc/cpuinfoemerge app-portage/cpuid2cpuflagscpuid2cpuflagsemerge -C app-portage/cpuid2cpuflags
Для оптимизации GCC необходимо подобрать разумные флаги
CFLAGS и CXXFLAGS.
Определяем модель процессора:grep -m1 -A3 «vendor_id» /proc/cpuinfo
Чтобы узнать необходимый CFLAGS, сопоставляем CPU с одним, из указанных на странице.
Значение MAKEOPTS устанавливается в зависимости от числа процессоров +1.Если выбран профиль в названии с Systemd (так как все стадии Gentoo по умолчанию используют OpenRC как систему инициализации) имеет смысл обновить @world с добавлением USE — флага, systemd и отключением флага -consolekit:emerge —ask —update —deep —newuse @world
это не является обязательным для других профилей.
Установка часового пояса:ls /usr/share/zoneinfoecho «Europe/Volgograd» > /etc/timezone
Переконфигурируем timezone-data:emerge —config sys-libs/timezone-data
Сетевые утилиты
Если нет необходимости в каких-либо дополнительных сетевых утилитах, можно продолжить чтение с раздела Настройка загрузчика.
Установка DHCP-клиента
ВажноХотя этот раздел необязателен, для большинства
пользователей может понадобиться DHCP-клиент для взаимодействия с сервером DHCP в сети. Воспользуйтесь этой возможностью, чтобы установить DHCP-клиент
Если пропустить этот шаг, то система не сможет настроить подключение к сети, что сделает невозможным скачивание DHCP-клиента.
Больше информации о dhcpcd можно найти в соответствующей статье.
Необязательно: Установка утилит для беспроводной сети
Далее продолжим с раздела Настройка начального загрузчика.
← Настройка системы К содержанию Настройка начального загрузчика →
USE-флаги, специфичные для пакета
Просмотр доступных USE-флагов
Возьмём для примера seamonkey: какие USE-флаги он поддерживает? Чтобы получить ответ на этот вопрос, воспользуемся emerge с параметрами и :
These are the packages that would be merged, in order: Calculating dependencies... done! www-client/seamonkey-2.48_beta1::gentoo USE="calendar chatzilla crypt dbus gmp-autoupdate ipc jemalloc pulseaudio roaming skia startup-notification -custom-cflags -custom-optimization -debug -gtk3 -jack -minimal (-neon) (-selinux) (-system-cairo) -system-harfbuzz -system-icu -system-jpeg -system-libevent -system-libvpx -system-sqlite {-test} -wifi" L10N="-ca -cs -de -en-GB -es-AR -es-ES -fi -fr -gl -hu -it -ja -lt -nb -nl -pl -pt-PT -ru -sk -sv -tr -uk -zh-CN -zh-TW" 216,860 KiB Total: 1 package (1 new), Size of downloads: 216,860 KiB
Теперь запустите equery с аргументом uses для получения списка USE-флагов для определённого пакета. Например, для пакета gnumeric:
* Found these USE flags for app-office/gnumeric-1.12.31: U I + + introspection : Add support for GObject based introspection - - libgda : Enable database support through gnome-extra/libgda. - - perl : Enable perl plugin loader. + + python : Enable python plugin loader. + + python_targets_python2_7 : Build with Python 2.7