В начало → Настройка Portage |
Это руководство создается для людей, которые хотят использовать все возможности системы Portage.
Portage — это система управления пакетами Gentoo Linux. Ее возможности довольно велики — сборка пакетов из исходников, включая конфигурирование пакета на основе пользовательских USE-флагов; начальная настройка приложений; установка предкомпилированных пакетов; удаление програм; автоматическое обновление, и т. д. Однако, как показывает опыт, несмотря на отличную документацию, большинство пользователей не знают всех возможностей этой замечательной системы, поэтому очень часто Gentoo Linux подвергается незаслуженной критике. Данный документ — это попытка восполнить этот пробел.
Gentoo — многоплатформенная система, при этом количество поддерживаемых архитектур постоянно увеличивается. Поэтому возникает необходимость в так называемых профилях сборки. Профиль — это набор настроек по умолчанию для определенной архитектуры, или определенного класса задач (например, для систем с повышенной безопасностью существуют профили hardened и selinux). Наличие профилей, которые легко создавать, позволяет называть Gentoo не дистрибутивом, а метадистрибутивом, то есть дистрибутивом для создания других дистрибутивов ;). Но не об этом сейчас разговор.
Итак, для того, чтобы иметь работающую Gentoo-систему, необходимо выбрать себе нужный профиль. Профили по умолчанию находятся в каталоге /usr/portage/profiles. По названию профиля легко определить тот, который нужен вам. Например, 'default-x86-2004.2' — это стандартный профиль для архитектуры x86 версии 2004.2. Если в каталоге с профилем есть файл deprecated, то это означает, что данный профиль больше не поддерживается и выбирать его не следует.
После того как вы определились с выбранным профилем необходимо создать симлинк /etc/make.profile на каталог с выбранным профилем. Например, ln -s /usr/portage/profiles/default-x86-2004.2 /etc/make.profile Когда выйдет новая версия Gentoo, вам не надо бежать в магазин, покупать новые диски. Достаточно просто поменять симлинк /etc/make.profile на симлинк, указывающий на каталог с новым профилем.
Примечание: Сейчас идет переход на новый вид профилей — Cascading
Profiles. Такие профили имеют вид:
default-linux/x86/2004.2/
То есть настройки, общие для нескольких профилей не надо записывать по несколько раз. Пока что это экспериментальная фича, но если вы хотите помочь ее протестировать, то используйте на здоровье ;).
Примечание: Вообще-то переход на cascading profiles уже произошел, посему надо обновить то, что написано выше в этой секции "Portage profiles"
В профилях содержится следующая информация:
use-флаги использующиеся по умолчанию;
системные пакеты, то есть такие пакеты, которые устанавливаются при emerge system;
маскированные пакеты;
Настройки сборки пакетов по умолчанию. (CFLAGS, CHOST и другие);
Какие пакеты надо устанавливать при наличии альтернативных. (например, xorg или xfree)
Конфигурацию профилей напрямую менять не следует, так как ваши настройки будут удалены после следующей синхронизации с rsync-сервером. О том как правильно настраивать portage будет рассказано в следующем разделе.
/etc/portage и /etc/make.conf
Для того, чтобы изменить конфигурацию выбранного профиля, нужно использовать конфигурационные файлы в /etc/portage. Если у вас нет этого каталога, то его необходимо создать. Вот список конфигурационных файлов, которые читает Portage во время своей работы:
/etc/portage/package.mask
Синтаксис: в каждой строке содержится DEPEND ATOM, то есть один из знаков >, <, >=, <=, =, категорию, название и версию пакета. Логические знаки обязательны если указана версия пакета.
Например: >=net-www/mozilla-1.7
Неправильные примеры:
net-www/mozilla-1.7 (нет логической операции)
>=mozilla-1.7 (нет категории)
Предназначение: Маскирует пакеты. Может использоваться для того, чтоб Portage не обновлял нужный вам пакет. Например, если вы хотите использовать apache-1.3 вместо apache-2.0
/etc/portage/package.unmask
Синтаксис: такой же, как и у package.mask
Предназначение: Демаскирует пакеты, которые маскированы в профиле. Используется для установки нестабильных пакетов. Рекомендуется использовать только тем, кто хочет протестировать какой-то нестабильный пакет.
/etc/portage/profile/package.provided
Синтаксис: В каждой строчке содержится полное имя пакета, то есть category/name-version
Например: dev-lang/ghc-6.2.1-r1
Предназначение: Замена 'emerge --inject'. При наличии пакета в package.provided Portage будет считать, что этот пакет уже установлен в системе.
Примечание: Иногда этого бывает недостаточно и пакет приходится вносить в /etc/make.profile/package.provided (который удаляется после каждого emerge sync)
/etc/portage/mirrors
Синтаксис: Такой же как и у файла /usr/portage/profiles/thirdpartymirrors. Предназначение: Список зеркал, которые будут использоватся в первую очередь. Можно также указать зеркала sourceforge или gnu, которые будут использоватся в первую очередь.
Например: sourceforge http://keihanna.dl.sourceforge.net/sourceforge
Так же можно использовать тип миррора 'local'. Такое зеркало будет проверятся, даже если в ebuild'е пакета есть RESTRICT="NOMIRROR". Например:
local ftp://gentoo.linux.kiev.ua/pub/Linux/Gentoo/distfiles/
/etc/portage/package.use
Синтаксис: DEPEND ATOM USE-флаги
Например: x11-libs/gtk+ doc
Предназначение: Установка индивидуальных USE-флагов для отдельных пакетов
/etc/portage/package.keywords
Синтаксис: DEPEND ATOM KEYWORD KEYWORD — это идентификатор, который показывает, насколько стабилен пакет на данной архитектуре. Всего есть 4 вида KEYWORDS:
arch — пакет стабилен на архитектуре arch
~arch — пакет стабилен на архитекруре arch, но еще не прошло время тестирования
-arch — у пакета наблюдаются проблемы на архитектуре arch.
-* — пакет нестабилен на всех архитектурах
Например: >=app-editors/emacs-cvs-21.3 ~x86
Предназначение: Установка индивидуальных KEYWORDS для отдельных пакетов. Используйте если хотите, чтоб в вашей стабильной системе были отдельные нестабильные пакеты или наоборот :)
/etc/portage/categories
Синтаксис: В каждой строке содержится название категории. Предназначение: Используется для создание новых категорий для Portage.
Например: app-vasia
Теперь вы можете создать ebuild для пакетов категории app-vasia. emacs ${PORTDIR_OVERLAY}/app-vasia/pupkin/pupkin-0.0.1.ebuild
/etc/make.conf
Файл /etc/make.conf служит для настройки самого процесса сборки пакетов. Никаких сложных опций там нет, читайте внимательно комментарии в /etc/make.conf.example.
$PORTDIR_OVERLAY
Представьте себе такую ситуацию: вы хотите установить пакет, ebuild'а которого нет в официальном дереве, но кто-то уже его написал. Или вы собираетесь самостоятельно научится писать ebuild'ы, и вы хотите, чтоб Portage мог устанавливать нужные вам программы. Если вы запишете свой ebuild в /usr/portage, то он сотрется при следующей синхронизации с rsync-сервером. Для того, чтобы third-party ebuild'ы сохранялись, необходимо создать каталог для их хранения (например, /usr/local/portage) и записать его имя в переменную $PORTDIR_OVERLAY в файле /etc/make.conf. Теперь вы можете размещать свои ebuild'ы в этом каталоге, пример был показан в предыдущем разделе.
В начало → Настройка Portage |