Основная особенность этого дистрибутива состоит в способе установки софта. При инсталляции программы автоматически собираются из исходников прямо на компьютере пользователя, что отличает Gentoo от большинства дистрибутивов, в которых используются заранее собранные бинарные пакеты. Такой подход позволяет выполнять более гибкую настройку дистрибутива под свои нужды (например, компилировать программы с поддержкой определённых возможностей или без ненужных зависимостей) и несколько оптимизировать систему (например, под инструкции конкретного процессора).
Рекомендуется для энтузиастов, увлекающихся настройкой системы.
Существует два мнения по этому поводу, одни говорят "генту", вторые произносят "дженту". И хотя по-английски название дистрибутива произносится как "дженту", в русском языке уже есть устоявшееся слово "генту", обозначающее вид субантарктических пингвинов, собственно в честь которых и назван дистрибутив.
В настоящее время рекомендуется установка только из stage3. Если вы знаете зачем и действительно уверены в том , что вам нужен stage1 или stage2, то можете просмотреть Gentoo FAQ
Создать бинарный пакет из уже установленного приложения можно посредством утилиты quickpkg. Пример:
quickpkg --include-config=y bash
--include-config=y позволяет сохранить измененные конфигурационные файлы, относящиеся к приложению, включаемому в пакет.
Для того чтобы создать бинарный пакет из приложения, которое еще не установлено в системе, необходимо воспользоваться ключом emerge --buildpkg(или --buildpkgonly, если необходимо только создать пакет без его установки в текущую систему).
Gentoo, прежде всего, является source-based дистрибутивом. Это порождает как некоторые недостатки, так и преимущества. Существует множество замечательных бинарных дистрибутивов - пользуйтесь ими, если не можете или не хотите собирать основную часть ПО из исходников. Тем не менее, некоторое количество прекомпилированных пакетов идет в составе stage3-образов и GRP-диска.
PKGDIR=/mnt/cdrom emerge -k packet_name
Создавать собственные бинарные пакеты при установке можно передавая параметр --builpkg при emerge, или из уже установленных утилитой quickpkg.
И на десерт смотрим сюда - [1]
Информацию о составе, флагах и зависимостях пакетов можно получить с помощью:
Воспользуйтесь deltup - [2]
Кроме того, если вы используете Gentoo на нескольких машинах, можно использовать общее дерево портажей (portage tree) и DISTDIR - [3]
Вы также можете создать собственное зеркало для RSYNC [4] если у вас несколько машин с Gentoo или воспользоваться пакетом emerge-delta-webrsync как заменой для emerge --sync , пакет скачивает сжатые патчи (за сутки) для дерева portage. При использовании eix, есть аналогичная команда eix-sync -W, которая выполняет как emerge-delta-webrsync, так и eix-update
Внимание: вопрос возникал в форуме, но остался без ответа: если при использовании getdelta.sh вы получаете Segmentation fault при выполнении deltup, проверьте права записи на /tmp или каталог, заданный как временный переменной $TMP. getdelta.sh и deltup запускаются от пользователя portage, а deltup же при недостатке прав записи во временный каталог просто вылетает с segmentation fault.
Скриптом eclean из пакета gentoolkit, скрипт удаляет только старые ненужные более файлы, если же вы хотите полностью очистить все скачанные файлы исходников, то можно удалить каталог стандартными методами (например rm).
Существует удобная утилита для управления неофициальными оверлеями (ветками дерева портежей) под названием layman. Для оверлеев, которые будут обрабатываться вручную, необходимо создать отдельный каталог, допустим /usr/local/portage/ Сюда будут закидываться ebuild-ы. Таким образом официальное дерево и дополнительные ebuild-ы смешиваться не будут. При помещении ebuild файла в этот каталог, необходимо использовать такую же схему иерархии каталогов как и в /usr/portage/
Для начала нужно установить утилиту для автоматизации обслуживания оверлеев:
user@gentoo # emerge layman
В /etc/make.conf добавляем строку:
source /usr/local/portage/layman/make.conf
Могут понадобится утилиты git, subversion, mercurial, bzr. Так как большинство оверлей-репозитории обновляются через эти системы контроля версий.
Краткий перечень команд:
layman -L # выводит список оверлеев подключаемых оверлеев layman -a overlay # подключает оверлей layman -d overlay # удаляет оверлей layman -S # обновляет все подключенные оверлеи
Координацией оверлеев занимается проект overlays.gentoo.org, также о неофициальных/не поддерживаемых ебилдах (и их разработчиках) заботятся на gentoo-sunrise.org
Прописать PORTAGE_NICENESS в /etc/make.conf, подробности (вообще по конфигурации портежей) в файле /etc/make.conf.example.
Например, многие делают так:
PORTAGE_NICENESS=19
Если хотите поменять вручную, то просто добавьте nice -n+19 перед emerge, например:
root@linux# nice -n+19 emerge -uD world
Для portage 2.2 также можно ограничивать и приоритет ввода-вывода, задайте в /etc/make.conf
PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
или запустите с командной строки
root@linux# ionice -c3 nice -n+19 emerge -uDN world
Ещё можно ограничить число потоков, которые будет запускать emerge. Делается это с помощью опции MAKEOPTS в make.conf:
MAKEOPTS="-j1"
В таком случае emerge не запустит более одного потока сборки, таким образом для компиляции будет использовано не более одного ядра, что значительно снизит нагрузку на машину более чем с одним ядром (читай, любую современную).
Если требуется ограничить загрузку процессора (например при перегреве ноутбука) , то может помочь утилита cpulimit
Хорошие рекомендации написаны тут (на английском) или здесь (по-русски). Как правило безопасными и оптимальными являются флаги основаные на -O2 -march=тип_вашего_процессора (можно использовать -march=native) , но имейте ввиду что если вы собираете бинарные пакеты для других машин с Gentoo, то вам стоит явно указывать самую младшую модель в -march= из соображений совместимости, -march=native также не стоит указывать если вы пользуетесь distcc, укажите тип процессора явным образом.
Пожалуйста не используйте экспериментальные флаги выбранные по случайным рекомендациям , если вы сами не совсем представляете для чего они используются и в каких случаях, особенно для сборки всей системы (world). Для искателей приключений и экстремалов нужно как минимум просмотреть справку по флагам GCC, для автоматического выбора и/или сравнения флагов можно воспользоваться утилитой Acovea
Поискать сообщение об ошибке в гугле, затем на bugs.gentoo.org, задать вопрос на форуме
В пакет gentoolkit входит утилита для управления флагами - euse.
user@linux$ euse -i {флаг}
Данная команда выведет краткое описание флага. Посмотреть значения use флагов для пакета можно утилитой equery:
user@linux$ equery u packet_name
user@linux$ emerge -s word_for_search # по названию user@linux$ emerge -S word_for_search # по описанию
Рекомендуется использовать утилиты eix (пакет app-portage/eix) или esearch (app-portage/esearch). Они индексируют метаинформацию дерева портежей и обеспечивают гораздо более быстрый поиск по дереву.
Сначала нужно установить утилиту:
user@linux$ emerge eix
Создать базу дерева портеджей и подключенных к системе оверлеев:
user@linux# eix-update
Поиск:
user@linux# eix package_name # по названию user@linux# eix -C app-portage emer # по указанной категории, части имени пакета ( -С ) user@linux# eix -S # по описанию
Использовать distcc и ccache:
Также стоит добавить в файл /etc/make.conf строчку MAKEOPTS="-jX", где X = (количество-ядер-CPU × 2) + 1
Свежее руководство по русификации Gentoo под UTF-8 - [14].
Чтобы в галерее не кричали "ШГ" нужно:
emerge layman layman -a devnull euse -E newspr euse -E filter_default echo "media-libs/freetype -bindist" >>/etc/portage/package.use/use emerge -1 -uvDN -a media-libs/freetype media-libs/fontconfig emerge -1 -uvDN -a x11-libs/libXft x11-libs/pixman x11-libs/cairo
Параметры субпиксельного сглаживания и хинтинга настраиваются с помощью
eselect fontconfig
примечание: USE флаг bindist более не актуален для freetype 2.4.0 и выше, bytecode interpreter будет использован по умолчанию, так как соответствующие патенты Apple уже истекли.
При помощи epm:
root@linux# epm -qa
С помощью eix:
user@linux$ eix -I
Установите пакет lafilefixer и запустите скрипт
root@linux# lafilefixer --justfixit
Скрипт исправляет .la файлы в системе избавляя их от зависимостей на другие .la файлы (будут использоваться библиотеки в путях поиска ld/ld.so). Данная операция безопасна.
Если устанавливать лишний пакет не хочется, можно запустить скрипт напрямую из portage, где он находится, следующей командой:
root@linux# bash /usr/portage/dev-util/lafilefixer/files/lafilefixer-0.5 --justfixit
В portage 2.2 lafilefixer - часть логики работы portage: он запускается для .la файлов каждого устанавливаемого пакета. Поэтому его отдельная установка и использование не требуется
Если даже набор gnome-light кажется Вам громоздким (например, за счет yelp, тянущего xulrunner), можно установить ещё более легкий Gnome, указав основные компоненты вручную:
root@gentoo# emerge -va metacity gnome-settings-daemon gnome-control-center \ nautilus gnome-desktop gnome-session gnome-panel gnome-icon-theme gnome-themes \ gnome-terminal
Если Вы используете gdm, то установите и его.
После этого ставите необходимые Вам компоненты (например, totem, file-roller) по вкусу.