PostHeaderIcon 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

Начнём с простого — установка ПО. Установка нужного пакета осуществляется командой: [cc lang=»bash»]emerge пакет(ы)[/cc] но обычно для удобства я использую ключ -a, чтобы посмотреть и оценить какие пакеты с какими USE-флагами устанавливаются: [cc lang=»bash»]emerge -av пакет(ы)[/cc]

Полезные команды и скрипты

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) в директорию (название директории — текущая дата в формате дд.мм.гг) по разным файлам (типа категорий сделал):

[cc lang=»bash»]#!/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[/cc]
Так, допустим, если я захочу переустановить программы, связанные с kde, я захожу в директорию и пишу:[cc lang=»bash»]emerge -av `cat installed_kde_9999`[/cc] ну и так далее :) для обновления qutim:[cc lang=»bash»]emerge -av `cat installed_qutim_9999`[/cc]

Жду отзывов :)

Оставить комментарий

PR-CY.ru