Статистика
Сегодня: 97 Онлайн: 0
Опрос

Помог ли наш сайт решить Вашу проблему?

View Results

Загрузка ... Загрузка ...

Друзья и коллеги

Технология жизни - технология будущего

#Записки сисадмина

Denis Tulyakov

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

Начнём с простого — установка ПО. Установка нужного пакета осуществляется командой:

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`

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

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

PR-CY.ru