Portage и полезные команды
Portage — основная система управления пакетами в Gentoo Linux. Аналог системы портов FreeBSD. Представляет собой набор утилит на Python и Bash, призванных облегчить и упорядочить установку программного обеспечения из исходных кодов или бинарных пакетов, с учетом всех зависимостей.
Основной пользовательский интерфейс Portage — консольная программа emerge, которая позволяет устанавливать новые пакеты с учетом зависимостей и с возможностью управления вариантами установки — например с поддержкой определенных функций или без поддержки ненужных функций (управление параметрами сборки осуществляется через так называемые USE-флаги), удалять ненужные пакеты, обновлять установленные пакеты, проводить синхронизацию с деревом портежей (по протоколу rsync) и т. д. Программа ebuild служит интерфейсом низкого уровня к Portage, а emerge — высокоуровневая оболочка для неё.
Главный конфигурационный файл системы Portage — /etc/make.conf. В нем настраиваются основные параметры компиляторов и дополнительные возможности их использования (например, применением ccache, distcc), установки переменных окружения USE, HTTP-прокси, FTP-прокси, SYNC, ACCEPT_KEYWORDS и других, необходимых для работы системы Portage.
Более подробно — http://ru.wikipedia.org/wiki/Portage
Начнём с простого — установка ПО. Установка нужного пакета осуществляется командой:
1 | emerge пакет(ы) |
но обычно для удобства я использую ключ -a, чтобы посмотреть и оценить какие пакеты с какими USE-флагами устанавливаются:
1 | emerge -av пакет(ы) |
Полезные команды и скрипты
eix — программа для поиска пакетов. Можно использовать emerge с ключом -s, но это достаточно долгий процесс. eix индексирует дерево портежей (недолгий процесс) и когда вы наберёте (после индексации, естественно) eix gentoo — он выведет все пакеты, где в названии есть слово gentoo. Ключей у программы очень много, так что рассматривать их здесь не будем — man eix всегда поможет, ибо справка у eix просто отличная.
portage-utils — отличный набор программ для работы с portage. Сюда входят:
qlist — показывает список файлов установленного пакета
quse — позволяет найти в каком пакете имеется какой-либо USE-флаг
qsearch — а-ля поиск по дереву портежей (но мне больше eix нравится)
qdepends — позволяет отобразить различные зависимости пакета (от каких пакетов он зависит и какие пакеты зависят от него)
qfile — позволяет узнать какому пакету принадлежит файл
qlop — позволяет отображать различную статистическую информацию из emerge.log
и ещё много программ, которыми я не пользовался ещё ни разу :) если у вас есть какие-либо комментарии по остальным программам пакета portage-utils — отписывайтесь в комментах :)
Ниже представлен написанный мной скрипт, который записывает все live пакеты (которые -9999) в директорию (название директории — текущая дата в формате дд.мм.гг) по разным файлам (типа категорий сделал):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash rm -fr `date "+%d.%m.%y"`/ mkdir `date "+%d.%m.%y"` eix --format "" -I | grep '9999' > `date "+%d.%m.%y"`/installed_9999 grep kde `date "+%d.%m.%y"`/installed_9999 > `date "+%d.%m.%y"`/installed_kde_9999 grep k3b `date "+%d.%m.%y"`/installed_9999 >> `date "+%d.%m.%y"`/installed_kde_9999 grep kipi `date "+%d.%m.%y"`/installed_9999 >> `date "+%d.%m.%y"`/installed_kde_9999 grep amarok `date "+%d.%m.%y"`/installed_9999 >> `date "+%d.%m.%y"`/installed_kde_9999 grep strigi `date "+%d.%m.%y"`/installed_9999 > `date "+%d.%m.%y"`/installed_desktop_9999 grep akonadi `date "+%d.%m.%y"`/installed_9999 >> `date "+%d.%m.%y"`/installed_desktop_9999 grep soprano `date "+%d.%m.%y"`/installed_9999 >> `date "+%d.%m.%y"`/installed_desktop_9999 grep phonon `date "+%d.%m.%y"`/installed_9999 | grep -v kde >> `date "+%d.%m.%y"`/installed_desktop_9999 grep qutim `date "+%d.%m.%y"`/installed_9999 > `date "+%d.%m.%y"`/installed_qutim_9999 grep -v -f `date "+%d.%m.%y"`/installed_kde_9999 `date "+%d.%m.%y"`/installed_9999 | grep -v -f `date "+%d.%m.%y"`/installed_desktop_9999 | grep -v -f `date "+%d.%m.%y"`/installed_qutim_9999 > `date "+%d.%m.%y"`/installed_other_9999 |
Так, допустим, если я захочу переустановить программы, связанные с kde, я захожу в директорию и пишу:
1 | emerge -av `cat installed_kde_9999` |
ну и так далее :) для обновления qutim:
1 | emerge -av `cat installed_qutim_9999` |
Жду отзывов :)