В начало → Настольная книга Gentoo Linux x86 → Работа с Portage |
Настройки Portage по умолчанию хранятся в /etc/make.globals
. Когда вы откроете этот файл, вы увидите, что все настройки представляют собой переменные. Что означает каждая из переменных,
описано ниже.
Так как многие директивы отличаются в зависимости от используемой архитектуры, к Portage прилагаются настройки по умолчанию,
которые входят в ваш профиль. На ваш профиль указывает символическая ссылка /etc/make.profile
. Настройка Portage выполняется c помощью файлов make.defaults
вашего профиля и всех родительских профилей. Более подробно о профилях и каталоге /etc/make.profile
мы расскажем позже.
Если вы планируете вносить изменения в конфигурационные переменные, не изменяйте /etc/make.globals
или make.defaults
. Вместо этого пользуйтесь файлом /etc/make.conf
, который имеет приоритет перед вышеуказанными файлами. Вы также обнаружите файл /etc/make.conf.example
. Как понятно из его названия, это просто пример — Portage не использует этот файл.
Переменные Portage также можно устанавливать как переменные среды, но мы не рекомендуем этого делать.
Мы уже встречались с каталогом /etc/make.profile
. На самом деле это не каталог, а символическая ссылка на профиль, по умолчанию на тот, что содержится в /usr/portage/profiles
, однако вы можете создавать свои собственные профили где угодно и ссылаться на них. Профиль, указанный ссылкой, является
профилем, к которому принадлежит ваша система.
В профиле содержатся сведения для Portage, специфичные для архитектуры, такие как список пакетов, принадлежащих соответствующей системе, список неработоспособных (или замаскированных) пакетов, и т.д.
Если вам необходимо изменить поведение Portage относительно установки программного обеспечения, вам потребуется отредактировать
файлы, находящиеся в /etc/portage
. Мы настоятельно рекомендуем вам пользоваться файлами из /etc/portage
, всеми силами отговариваем от настройки поведения Portage через переменные среды!
Внутри /etc/portage
вы можете создать следующие файлы:
package.mask
, в котором перечислены пакеты, которые Portage никогда не следует устанавливать;
package.unmask
, со списком пакетов, для которых вы хотите иметь возможность установки, даже если разработчики Gentoo отговаривают вас от
этого;
package.keywords
, где перечислены пакеты, которые должны быть доступны для установки, несмотря на то, что они не подходят для вашей системы
или архитектуры (пока);
package.use
, где перечислены значения USE-флагов, которые необходимо указывать для конкретных пакетов, а не для всей системы.
Дополнительные сведения о каталоге /etc/portage
, а также список всех файлов, которые там можно создавать, находятся на справочной странице Portage:
Ранее упомянутые конфигурационные файлы нельзя хранить где угодно — Portage всегда ищет свои настроечные файлы в строго определенных местах. Однако Portage также использует множество каталогов для других целей: каталог для сборки, место для хранения исходных кодов, место для дерева Portage, и т.д.
Для этих целей существуют хорошо известные каталоги по умолчанию, положение которых можно изменить на свой вкус, внеся изменения
в /etc/make.conf
. Оставшаяся часть этой главы посвящена описанию того, какие специальные места Portage использует для своих целей, и как изменить
их расположение в файловой системе.
Этот документ не претендует на статус справочника. Если вам необходим полный объем информации, пожалуйста, обратитесь к страницам справки по Portage и make.conf:
Дерево Portage размещается, по умолчанию, в /usr/portage
. Это определяется значением переменной PORTDIR
. Когда вы храните дерево Portage где-либо в другом месте (изменив эту переменную), не забывайте соответственно изменить символическую
ссылку /etc/make.profile
.
Если вы измените переменную PORTDIR
, вам может потребоваться изменить и следующие переменные: PKGDIR
, DISTDIR
, RPMDIR
, так как они не замечают изменений PORTDIR
. Это связано с особенностями их обработки Portage.
Несмотря на то, что Portage по умолчанию не использует прекомпилированное программное обеспечение, для него предусмотрена
очень мощная поддержка. Если вы укажете Portage работать с прекомпилированными пакетами, они будут разыскиваться в /usr/portage/packages
. Это расположение определяется переменной PKGDIR
.
Исходные коды приложений хранятся в /usr/portage/distfiles
по умолчанию. Это определяется переменной DISTDIR
.
Несмотря на то, что Portage не может использовать RPM-файлы, есть возможность их создания командой ebuild (см. Приложение
Ebuild). По умолчанию Portage хранит RPM файлы в каталоге /usr/portage/rpm
, как определяется переменной RPMDIR
.
Portage хранит состояние вашей системы (какие пакеты установлены, какие файлы относятся к определенным пакетам и т. п.) в
/var/db/pkg
. Не изменяйте эти файлы вручную! Это может разрушить знание вашей системы Portage.
По умолчанию Portage хранит временные файлы в /var/tmp
. За это отвечает переменная PORTAGE_TMPDIR
.
Если вы измените переменную PORTAGE_TMPDIR
, вам может потребоваться изменить и переменную BUILD_PREFIX
, так как она не замечает изменений PORTAGE_TMPDIR
. Это связано с особенностями ее обработки Portage.
Portage создает специфичные каталоги сборки для каждого пакета внутри /var/tmp/portage
. Это расположение задается переменной BUILD_PREFIX
.
Как отмечалось ранее, Portage настраивается с помощью множества переменных, которые задаются в файле /etc/make.conf
. За более полной и подробной информацией обращайтесь к странице справки по make.conf
:
Когда Portage собирает приложения, компилятору и сценарию конфигурации передаются значения следующих переменных:
CFLAGS
и CXXFLAGS
определяют желаемые флаги компилятора для C и C++;
CHOST
определяет информацию об используемой платформе для сценария конфигурации приложения;
MAKEOPTS
передается команде make и обычно применяется для установки степени распараллеливания компиляции. Более подробная информация о параметрах команды
make находится на странице справки по make.
Переменная USE
также используется при конфигурировании и компиляции, но о ней уже много и подробно говорилось в предыдущих главах.
Portage записывает файлы, предоставляемые новой версией программы, поверх старых, если только эти файлы не расположены в защищенном
месте. Защищенные каталоги определяются переменной CONFIG_PROTECT
. Обычно, это места расположения файлов конфигурации. Каталоги в списке разделяются пробелами.
Файл, который должен быть записан в такой защищенный каталог, переименовывается, а пользователь получает предупреждение о наличии новой версии (обычно) файла конфигурации.
Узнать текущее значение CONFIG_PROTECT
можно из сообщений emerge --info:
Более подробная информация о защите конфигурационных файлов, осуществляемой системой Portage, доступна по команде emerge:
Если запрошенная информация или данные отсутствуют в вашей системе, Portage обращается за ними в интернет. Расположение серверов для различных каналов получения информации задается следующими переменными:
GENTOO_MIRRORS
определяет список адресов серверов, содержащих исходный код (distfiles);
PORTAGE_BINHOST
указывает расположение определенного сервера, содержащего двоичные пакеты (prebuilt packages) для вашей системы;
Третья переменная содержит расположение сервера rsync, который используется при обновлении вашего дерева портежей:
SYNC
указывает сервер, с которого Portage извлекает дерево портежей.
Переменные GENTOO_MIRRORS
и SYNC
можно установить автоматически программой mirrorselect. Перед тем, как использовать, ее нужно установить, выполнив emerge mirrorselect. За дополнительной информацией обращайтесь к оперативной справке mirrorselect:
Если вы вынуждены использовать прокси-сервер, для его указания можно использовать переменные HTTP_PROXY
, FTP_PROXY
и RSYNC_PROXY
.
Когда Portage требуется извлечь исходный код, по умолчанию используется wget
. Вы можете это изменить с помощью переменной FETCHCOMMAND
.
Portage может возобновлять скачивание частично загруженного исходного кода. По умолчанию используется wget, но это можно переопределить переменной RESUMECOMMAND
.
Удостоверьтесь, что ваши команды FETCHCOMMAND
и RESUMECOMMAND
сохраняют исходный код в нужном месте. Внутри этих переменных следует использовать \${URI}
и \${DISTDIR}
, для указания расположения исходных кодов и distfiles, соответственно.
Также существует возможность определить индивидуальные настройки для различных протоколов, используя FETCHCOMMAND_HTTP
, FETCHCOMMAND_FTP
, RESUMECOMMAND_HTTP
, RESUMECOMMAND_FTP
, и т.п.
Вы не можете заменить команду rsync, которую Portage использует для обновления дерева портежей, но можно установить несколько переменных, определяющих ее поведение:
RSYNC_EXCLUDEFROM
указывает на файл, где перечислены пакеты и/или категории, которые rsync должна игнорировать во время обновления.
RSYNC_RETRIES
определяет, сколько раз rsync должна пытаться соединиться с зеркалом, на которое указывает переменная SYNC
. По умолчанию равна 3.
RSYNC_TIMEOUT
определяет количество секунд, в течение которого rsync соединение может бездействовать, перед тем как rsync сочтет его превысившим
время ожидания. По умолчанию равна 180, но если вы используете соединение по модему или у вас медленный компьютер, возможно,
следует установить значение этой переменной равным 300 или большим.
Используемую ветвь можно изменить переменной ACCEPT_KEYWORDS
. По умолчанию используется стабильная ветвь для вашей архитектуры. Дополнительная информация о ветвях Gento находится в следующей
главе.
С помощью переменной PORTAGE_NICENESS
можно увеличивать или уменьшать значение nice, с которым выполняется Portage. Значение PORTAGE_NICENESS
прибавляется к текущему значению nice.
Более подробно о значениях nice написано в странице справки:
Переменная ACCEPT_KEYWORDS
определяет, какую из ветвей использовать в вашей системе. По умолчанию используется стабильная ветвь для вашей архитектуры,
например x86
Мы рекомендуем использовать только стабильную ветвь. Однако, если для вас стабильность не критична и вы хотите помочь Gentoo, отсылая отчеты об ошибках на http://bugs.gentoo.org, читайте дальше.
Если вы желаете использовать наиболее свежее ПО, подумайте над использованием тестовой ветви. Чтобы Portage начала использовать
тестовую ветвь, добавьте «~
» перед названием вашей архитектуры.
Тестовая ветвь полностью соответствует своему названию: для тестирования. Если пакет находится в стадии тестирования, это означает, что разработчики считают, что пакет работоспособен, но тщательно он не протестирован. Вы можете оказаться первым, кто столкнется с какой-либо ошибкой. В этом случае вы можете создать отчет об ошибке, чтобы разработчики узнали о ней.
Однако будьте готовы к тому, что могут возникнуть проблемы со стабильностью, неудовлетворительной поддержкой пакетов (например неправильные/отсутствующие зависимости), слишком частыми обновлениями (а в результате — частыми сборками) или невозможностью собрать пакет. Если вы не знаете, как работает Gentoo и как разрешать возникающие проблемы, мы рекомендуем не отходить от стабильной и оттестированной ветви.
К примеру, для выбора тестовой ветви на архитектуре x86, отредактируйте /etc/make.conf
и укажите в нем:
Если вы запустите обновление системы, то увидите, что многие пакеты нуждаются в обновлении. Обратите внимание, что после перехода на тестовую ветвь и обновления системы, как правило, нет простого пути назад к стабильной официальной ветви (конечно, кроме использования резервной копии).
Вы можете указать, чтобы Portage использовала тестовую ветвь только для определенных пакетов, а для остальной системы — стабильную ветвь. Для этого добавьте категорию и имя пакета, для которого вы желаете использовать тестовую ветвь, в файл /etc/portage/package.keywords. Вместо этого можно создать каталог (с таким же именем) и указывать пакеты в файлах, находящихся внутри этого каталога. Например, для использования тестовой ветви для gnumeric:
Листинг 242. Настройка /etc/portage/package.keywords для gnumeric, вся строка
app-office/gnumeric ~x86
Если вы желаете использовать конкретную версию ПО из тестовой ветви, но не хотите, чтобы Portage использовала тестовую ветвь для последующих версий этого ПО, можно указать в местоположении package.keywords номер необходимой версии. В этом случае вы обязаны использовать оператор =. Также можно указать диапазон версий, используя операторы <=, <, > или >=.
В любом случае, добавляя информацию о версии, вы должны использовать один из этих операторов. Если вы не указываете версию, эти операторы использовать нельзя.
В следующем примере мы просим Portage разрешить установку gnumeric-1.2.13:
Разработчики Gentoo не поддерживают использование этого места расположения. Пожалуйста, используйте их на свой страх и риск. Просьбы о помощи, связанные
с использованием package.unmask
и/или package.mask
, останутся без ответа. Вы предупреждены.
Если использование пакета было заблокировано разработчиками Gentoo, но вы желаете его использовать несмотря на причины блокировки,
указанные в файле package.mask
(по умолчанию он находится в /usr/portage/profiles
), добавьте для него точно такую же строку в файл /etc/portage/package.unmask
(или в файл в этом каталоге, если это каталог).
Например, если =net-mail/hotwayd-0.8
заблокирован, то разблокировать его можно, прописав в package.unmask
точно такую же строчку:
Если вы не хотите, чтобы Portage использовала какое-то конкретное ПО или конкретные версии ПО, вы можете его самостоятельно
заблокировать, добавив соответствующую запись в /etc/portage/package.mask
(в такой файл либо в файл внутри такого каталога).
Если, к примеру, вы не хотите, чтобы Portage устанавливала исходные коды ядра новее, чем gentoo-sources-2.6.8.1, добавьте
такую строку в местоположение package.mask
:
Листинг 245. Пример использования файла /etc/portage/package.mask
>sys-kernel/gentoo-sources-2.6.8.1
etc-update — это утилита, предназначенная для обновления в системе файлов ._cfg0000_
. Она обеспечивает интерактивную настройку установки и может также автоматически устанавливать тривиальные изменения. Файлы
создаются <имя>
._cfg0000_
Portage, когда нужно заменить файл в каталоге, защищенном переменной <имя>
CONFIG_PROTECT
.
Выполнить etc-update довольно просто:
После выполнения тривиальных обновлений, вы увидите запрос со списком защищенных файлов, ожидающих обновления. Внизу вам предложат следующие варианты:
Листинг 247. Запрос etc-update
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
(Пожалуйста, выберите файл для правки, введя соответствующее число.
(-1 - выход) (-3 - автоустановка всех оставшихся файлов)
(-5 для автоустановки БЕЗ использования 'mv -i'): )
При вводе -1
, etc-update выходит, прекращая последующие изменения. Если вы введете -3
или -5
, все перечисленные файлы конфигурации заменяются более новыми версиями. Следовательно, очень важно сначало отобрать файлы,
которые не следует автоматически обновлять. Для этого надо только вводить номер, указанный слева от файлов.
Например, выбираем файл конфигурации /etc/pear.conf
:
Листинг 248. Обновление конкретного конфигурационного файла
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
[...]
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
Теперь можно увидеть различия между двумя файлами. Если вы считаете, что обновленный файл конфигурации можно использовать
без проблем, введите 1
. Если вы считаете, что обновленный файл конфигурации не нужен, или не содержит новую или полезную информацию, введите 2
. Если вы хотите обновить текущий файл в интерактивном режиме, введите 3
.
Нет никакого смысла в подробном описании интерактивного обновления. Для полноты изложения, мы перечислим возможные команды, которые можно использовать при интерактивном слиянии двух файлов. Вас встречают две строки (одна исходная, вторая измененная) и запрос, в ответ на который можно ввести одну из следующих команд:
Листинг 249. Команды, доступные при интерактивном слиянии
ed: редактировать и использовать оба варианта, каждый пометить заголовком eb: редактировать и использовать оба варианта el: редактировать и использовать левый вариант er: редактировать и использовать правый вариант e: редактировать новую версию l: использовать левую версию r: использовать правую версию s: молча включить общие строки v: включить общие строки, сообщив подробности q: выход
Завершив обновление важных файлов конфигурации, вы можете автоматически обновить оставшиеся файлы конфигурации. etc-update выйдет, если не найдет других файлов, подлежащих обновлению.
С помощью dispatch-conf можно обновлять файлы конфигурации, сохраняя при этом историю изменений. dispatch-conf хранит различия между файлами конфигурации в виде заплаток или в системе управления версиями RCS.
Как и с etc-update, вы можете попросить сохранить файл конфигурации как есть, использовать новый файл конфигурации, редактировать текущий или объединить изменения интерактивно. Однако, у dispatch-conf также есть приятные дополнительные возможности:
автоматическое обновление файлов, в которых обновились только комментарии;
автоматическое обновление файлов, которые отличаются только количеством пробелов.
Убедитесь, что вы сначала отредактировали /etc/dispatch-conf.conf
и создали каталог, прописанный в archive-dir.
За дополнительными сведениями обращайтесь к странице справки dispatch-conf:
С quickpkg вы можете создавать архивы пакетов, уже установленных в системе. Эти архивы можно использовать в качестве двоичных пакетов. Запуск quickpkg прост: только укажите имена пакетов, которые нужно заархивировать.
Например, чтобы поместить в архив curl, arts и procps:
Двоичные пакеты будут храниться в $PKGDIR/All
(по умолчанию — /usr/portage/packages/All
). Символьные ссылки, указывающие на эти пакеты, помещаются в $PKGDIR/
.
<категория>
Вы можете выборочно обновлять определенные категории/пакеты, игнорируя обновление других категорий/пакетов. Это достигается путем исключения таких категорий/пакетов программой rsync на этапе выполнения emerge --sync.
Вам потребуется определить имя файла, содержащего шаблоны исключаемых пакетов, в переменной RSYNC_EXCLUDEFROM
в своем файле /etc/make.conf
.
Листинг 252. Указание файла исключаемых пакетов в /etc/make.conf
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
Заметьте, однако, что это может привести к проблемам с зависимостями, так как новые разрешенные пакеты могут зависеть от других новых, но исключенных из обновления пакетов.
Вы можете указать Portage использовать сборочные файлы, не входящие в официальное дерево Portage. Создайте новый каталог (к
примеру, /usr/local/portage
), в котором будут находиться файлы ebuild сторонних разработчиков. Используйте в точности такую же структуру каталогов, как
и в официальном дереве портежей!
Затем определите переменную PORTDIR_OVERLAY
в /etc/make.conf
, чтобы она указывала на ранее созданный каталог. Теперь при использовании Portage, эти сборочные файлы будут рассматриваться
как часть системы, и не будут удаляться/перезаписываться при последующих запусках emerge --sync.
Для продвинутых пользователей, ведущих разработку в нескольких оверлейных каталогах, тестирующих пакеты перед включением в основное дерево портежей или просто желающих использовать неофициальные сборочные файлы ebuild из разных источников, в пакете app-portage/gentoolkit-dev есть утилита gensync, которая поможет поддерживать ваши оверлейные репозитории в актуальном состоянии.
Используя gensync, вы можете обновить сразу все репозитории или выбрать для обновления только некоторые из них. В каждом репозитории
в каталоге /etc/gensync/
должен находиться файл .syncsource, в котором содержится информация о местоположении репозитория, его имени, идентификаторе
и т.д.
Предположим, что у вас есть два дополнительных репозитория с названиями java (для сборочных файлов разработок, ведущихся на java) и entapps (для внутренних приложений, разработанных на вашем предприятии). Вы можете обновить эти репозитории следующей командой:
Иногда вам может потребоваться сконфигурировать, установить и поддерживать программное обеспечение самостоятельно, без автоматизации
со стороны Portage, не смотря на то, что оно поддерживается Portage. Наиболее известные случаи — это исходные коды ядра и
драйверы от nVidia. Вы можете настроить Portage так, чтобы системе стало известно, что определенные пакеты установлены вручную.
Этот процесс называется внедрение, и поддерживается Portage посредством файла /etc/portage/profile/package.provided
.
Например, если вы захотите сообщить Portage, что пакет vanilla-sources-2.6.11.6 установлен вручную, нужно добавить следующую
строку в /etc/portage/profile/package.provided
:
Программа ebuild — это низкоуровневый интерфейс системы Portage. С ее помощью можно выполнять определенные действия над заданными сборками ebuild. Например, вы можете самостоятельно выполнить отдельные этапы установки.
Программа ebuild предназначена в основном для разработчиков, поэтому более подробная информация находится в настольной книге разработчика (англ.). Однако, мы расскажем, какие экземпляры ebuild вызываются системой Portage на разных этапах установки, и как выполнить пост-конфигурационные шаги, которые допускаются некоторыми пакетами.
Каждый раз, когда вы вызываете ebuild для какого-то ebuild-файла, проверяется совпадение контрольной суммы всех задействованных файлов с указанной в файлах Manifest
или files/digest-
. Проверка выполняется после загрузки исходных кодов.
<имя>
-<версия>
Чтобы загрузить исходные коды с помощью ebuild, запустите:
Если контрольная сумма md5 сборочного файла не совпадает с той, что указана в файле Manifest
, или же один из загруженных файлов не совпадает с описанием в файле files/digest
, вы получите сообщение об ошибке, похожее на такое:
<пакет>
Листинг 257. Ошибка контрольной суммы ebuild
!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>> your file's digest: f10392b7c0b2bbc463ad09642606a7d6
(!!! Файл поврежден или усечен. (Контрольные суммы не совпадают) )
На следующей строке указывается проблемный файл.
Если вы абсолютно уверены, что загруженные исходные коды и сам сборочный файл ebuild именно те, что вам нужны, можете пересоздать
файлы Manifest
и digest-
, используя фукцию <пакетe>
digest
программы ebuild:
Чтобы рапаковать исходные коды в /var/tmp/portage
(или любой другой каталог, указанный в /etc/make.conf
), запустите функцию unpack
программы ebuild:
Эта команда выполнит функцию src_unpack()
программы ebuild (которая по умолчанию просто выполняет распаковку, если функция src_unpack()
не определена). Все необходимые заплатки накладываются также на этом этапе.
Следующий шаг в процессе установки — компиляция исходных кодов. Для этого выполняется функция src_compile() вашего сборочного файла. Если нужно, заодно выполняется конфигурация.
Если вы хотите изменить инструкции компиляции, советуем отредактировать функцию src_compile()
. Однако, вы можете также обмануть Portage, заставив ее поверить, что программа ebuild уже завершила компиляцию. Запустите
нужные команды самостоятельно и создайте пустой файл .compile
в рабочем каталоге.
Следующий шаг — установка всех необходимых файлов во временный каталог. В него помещаются все файлы, подлежащие включению
в рабочую файловую систему. Вы можете выполнить этот этап, запустив функцию установки программы ebuild, которая исполняет функцию src_install()
сборочного файла.
Последний этап — перенос всех файлов в рабочую файловую систему и их регистрация в системе Portage. В ebuild этот этап называется «qmerge», и включает следующие действия:
выполняется функция pkg_preinst()
, если она определена;
все файлы копируются в рабочую файловую систему;
файлы регистрируются в системе Portage;
выполняется функция pkg_postinst()
, если она определена;
Запустите функцию qmerge
программы ebuild, чтобы выполнить этот этап:
С помощью функции merge
программы ebuild, можно запустить команды извлечения, распаковки, компиляции, установки и помещения за один раз:
В некоторых приложениях содержатся инструкции по дальнейшей настройке установленного пакета. Эти инструкции могут потребовать
участия пользователя, и, следовательно, не выполняться автоматически. Для запуска шагов настройки, указанных в необязательной
функции config()
сборочного файла, используйте команду config программы ebuild:
Вы можете попросить Portage создать двоичный пакет или даже RPM из вашего сборочного файла, воспользовавшись командами package и rpm, соответственно. Эти команды несколько различаются:
команда package во многом похожа на merge, выполняя все необходимые шаги (извлечение, распаковку, компиляцию, установку) перед созданием пакета;
команда rpm собирает пакет RPM из файлов созданных после запуска окончания функции install
программы ebuild.
Листинг 267. Создание пакетов
(cоздание двоичного пакета, совместимого с Portage)#
ebuild
(создание пакета RPM)путь/к/файлу-ebuild
package#
ebuild
путь/к/файлу-ebuild
rpm
Созданный RPM, однако, не будет содержать информацию о зависимостях из сборочного файла ebuild.
За дополнительными сведениями о системе Portage, программе ebuild и сценариях ebuild обращайтесь к следующим страницам справки man:
Листинг 268. Страницы справки
$
man portage
(сама система Portage)$
man emerge
(команда emerge)$
man ebuild
(команда ebuild)$
man 5 ebuild
(синтаксис файлов ebuild)
Кроме того, дополнительные сведения, относящиеся к разработке, находятся в настольной книге разработчика (англ.).
В начало → Настольная книга Gentoo Linux x86 → Работа с Portage |