Handbook:Parts/Working/Features/ru

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

Чтобы включить или отключить определенные возможности Portage, отредактируйте и измените или установите переменную FEATURES, которая содержит некоторые ключевые слова возможностей, разделенные пробелом. В некоторых случаях необходимо установить дополнительные утилиты на которые опирается эта возможность.

Не все возможности, которые поддерживает Portage, перечислены здесь. Для полного обзора пожалуйста обратитесь к man-странице :

Чтобы найти, что на данный момент установлено в FEATURES, запустите и поищите переменную FEATURES самостоятельно или с помощью :

Использование distcc
— это программа для распределения компиляции по нескольким, не обязательно идентичным, машинам в сети. Клиент distcc посылает всю необходимую информацию на доступные сервера distcc (запущенные distccd), чтобы они скомпилировали части исходного кода для клиента. В результате получается более быстрая компиляция.

Больше информации о distcc (и как он работает с Gentoo) можно найти в статье Distcc.

Установка distcc
Distcc поставляется с графическим монитором для отслеживания заданий, отправляемых компьютером на компиляцию. Данный монитор автоматически устанавливается, если установлен флаг  или.

Включение поддержки distcc в Portage
Добавьте distcc в переменную FEATURES в файле. Далее, отредактируйте переменную MAKEOPTS и увеличьте число параллельных задач компиляции на столько, насколько это позволяет система. Рекомендуется использовать, где   это число CPU, на которых будет запускаться distccd (включая этот хост), плюс один. Не забывайте, что это просто рекомендация.

Теперь запустите и введите список доступных серверов distcc. В качестве простого примера предположим, что среди доступных серверов distcc 192.168.102 (этот хост), а 192.168.1.103 и 192.168.1.104 (два "удаленных" хоста):

Не забудьте также запустить демон distccd:

О ccache
— это быстрый кэш компилятора. Когда программа компилируется, он будет кэшировать промежуточные результаты так, что в случае компиляции той же программы, время компиляции значительно уменьшится. В случае компиляции с ccache в первый раз, компиляция может продолжаться значительно больше по сравнению с обычной компиляцией. Однако, последующие перекомпиляции должны быть значительно быстры. ccache полезен только в тех случаях, когда одна и та же программа будет перекомпилироваться множество раз (или обновление одной и той же программы, что бывает чаще); поэтому она полезна, в основном, только для разработчиков программного обеспечения.

Для более подробной информации и ccache, пожалуйста посетите их домашнюю страницу

Установка ccache
Для установки ccache запустите следующую команду:

Включение поддержки ccache в Portage
Откройте и добавьте   в переменную FEATURES. Далее, добавьте новую переменную, которая называется CCACHE_SIZE, и установите ее в :

Чтобы проверить функциональность ccache, попросите его предоставить его статистику. Поскольку Portage использует другой домашний каталог для ccache, необходимо временно установить переменную CCACHE_DIR :

В Portage по умолчанию домашний каталог для ccache — ; но это можно изменить, настроив переменную CCACHE_DIR в файле.

Если запущен автономно (без Portage), он будет использовать каталог по умолчанию, именно поэтому необходимо указать переменную CCACHE_DIR при запросе (Portage) статистики ccache.

Использование ccache отдельно от Portage
Чтобы использовать ccache для компиляции без Portage, добавьте в начало переменной PATH (до ). Это можно сделать отредактировав в домашнем каталоге пользователя. Использование это только один из способов определения переменных PATH.

Создание бинарных (прекомпилированных) пакетов
Portage поддерживает установку бинарных пакетов. Несмотря на то, что в Gentoo не предоставляет бинарные пакеты, Portage сам может сделать такие пакеты.

Чтобы создать бинарный пакет воспользуйтесь командой, если пакет уже установлен в системе, или скомпилируйте его с опцией  или.

Чтобы Portage создавал бинарные пакеты для каждого пакета, который будет установлен, добавьте  в переменную FEATURES.

Более расширенные возможности при создании набора бинарных пакетов можно получить используя catalyst. Более подробную информацию о catalyst можно прочитать в Catalyst FAQ.

Установка бинарных (прекомпилированных) пакетов
Хотя Gentoo не предоставляет таковые, можно сделать централизованный репозиторий, где хранятся бинарные пакеты. Для того чтобы использовать такой репозиторий, нужно сообщить Portage об этом с помощью переменной PORTAGE_BINHOST, которая указывает на такое хранилище. Например, если бинарные пакеты находятся по адресу ftp://buildhost/gentoo:

Чтобы установить бинарный пакет, добавьте опцию  и опцию   в команду emerge. Первая сообщает emerge, что нужно загрузить бинарный пакет из уже определенно ранее сервера, а вторая просит emerge попытаться установить бинарный пакет до загрузки исходного кода и компиляции его.

Например, чтобы установить gnumeric из бинарного пакета (prebuilt):

Больше информации о бинарных пакетах в emerge можно найти в man-странице emerge:

Распространение бинарных пакетов для других
Если планируется предоставлять бинарные пакеты для других, то убедитесь что это разрешено. Для этого проверьте условия распространения у разработчиков. Например, если пакет выпущен под лицензией GNU GPL, то исходный код должен предоставляться вместе с бинарными файлами.

Ebuilds may define a  restriction in their RESTRICT variable if built binaries are not distributable. Sometimes this restriction is conditional on one or more USE flags.

По умолчанию Portage не маскирует пакеты из-за таких ограничений. Это можно изменить глобально настроив переменную ACCEPT_RESTRICT в файле. Например, чтобы замаскировать пакеты, у которых есть ограничение, добавьте следующую строку в файл :

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

Also consider setting the ACCEPT_LICENSE variable when distributing packages. See the Licenses section for this.

Загрузка пользователем (userfetch)
Если Portage запущен от root,  позволит Portage бросить привилегии root при загрузке исходного кода. Это небольшое усиление безопасности.

Проверенные снимки дерева Portage
Administrators can opt to update the local Gentoo ebuild tree with a cryptographically validated tree snapshot as released by the Gentoo infrastructure. This ensures that no rogue rsync mirror is adding unwanted code or packages to the tree the system is downloading.

The Gentoo release media OpenPGP keys are now available as a binary keyring. These can be installed via the package:

Это установит связку ключей в каталог.

Убедитесь, что пакет установлен:

Use to verify that the keys in the keyring are the correct keys:

Verify the fingerprints of the key(s) against those listed on the official Gentoo release engineering project page.

Repeat the following command for each key you wish to trust. (Substitute the keyid '0x...' for the desired key you wish to trust.)

Should a GPG command-line menu appear, fully trust the key and quit the program by entering the following:

The system is now set-up to sync using only OpenPGP/gpg verified snapshots. Several command options are available to perform the sync.