Управление пакетами

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел советов

Содержание

[править] Введение

Для управления системой портeжей в Gentoo используйте пакет gentoolkit. emerge gentoolkit В этот пакет входят следующие программы:

euse 
Утилита редактирования флагов USE.
equery 
Показывает различную информацию об установленных пакетах. Замена etcat и qpkg.
revdep-rebuild 
Находит неработающие бинарники и устанавливает необходимые для их работы пакеты.

[править] equery

[править] Обзор

Утилита equery обладает следующими возможностями:

  • Поиск файлов, принадлежащих пакету и проверка их целостности.
  • Поиск пакета, которому принадлежит файл.
  • Поиск пакетов, которые зависят от данного, и вывод дерева зависимостей данного пакета.
  • Поиск пакетов, использующие USE-флаг.
  • Вывод USE-флагов пакета и их описаний.
  • Подсчет занимаемого места пакетом на диске.

[править] Использование

Синтаксис команды equery таков:

equery <глобальные опции> команда <локальные опции>

Утилита equery самодокументированая, то есть вы можете узнать о ее использовании с помощью ее самой. Для того, чтоб посмотреть список всех глобальных опций и команд наберите

equery --help

Для того, чтоб прочитать что делает та или иная команда наберите

equery команда --help

Под pkgspec помощи equery подразумевается полное имя пакета + категория и версия, причем категорию и версию указывать необязательно.


[править] Ускорения поиска пакетов

Поиск пакетов с помощью emerge -s занимает довольно много времени.

А поиск с учетом описания пакетов emerge -S на Celeron 700Mhz занимает около 10 минут.

Поэтому, для таких целей лучше использовать утилиту esearch из одноименного пакета, которая создает индексный файл, который использует при поиске. Подобным образом работает утилита slocate. emerge esearch

Для создания индексного файла запустите команду eupdatedb под рутом: su - -c eupdatedb

После того как индексный файл создан, можно заниматся поиском. esearch <regexp>


esearch -S <regexp> Также, эта утилита позволяет конфигурировать формат вывода, поэтому ее можно использовать в sh-скриптах или просто для облегчения жизни. Например, можно легко установить все desklet'ы имеющиеся в дереве портежей emerge `esearch -o '%p ' ^desklet`

man esearch подробно описывает как можно конфигурировать формат вывода.

Для того, чтоб индексный файл автоматически обновлялся во время синхронизации дерева портежей, используйте скрипт esync также из пакета esearch. esync После окончания синхронизации индексный файл будет обновлен и вам будет показан список обновившхся пакетов.


[править] Примеры использования

Утилита qpkg является устаревшей и временно перенесена в /usr/lib/gentoolkit/bin/qpkg однако вскоре она будет окончательно удалена из пакета gentoolkit, вместо нее следует использовать equery.

  • Чтобы получить полный список установленных пакетов и версию

qpkg -I -v

или

equery l

  • Посмотреть дубликаты программ с версией

qpkg --dups -v

или

equery list -d

  • Узнать, какому пакету принадлежит /bin/ls

equery b /bin/ls

Команды equery и qpkg различаются информативностью результатов.
  • Чтобы посмотреть с какими флагами был установлен пакет samba

equery uses samba

  • Чтобы узнать, какие файлы принадлежат пакету net-tools

equery files net-tools | sort | less

  • Посмотреть дерево зависимостей пакета

equery depgraph bash

  • Чтобы посмотреть у каких устанновленных пакетов указана зависимость от gtk+:

equery -q d gtk+

  • Чтобы удалить пакет

emerge -C пакет

  • Что бы получить список всех установленных пакетов в системе без номера версии:

equery -q -C l | sed 's/-[0-9][0-9]*.*//' | uniq | sort

  • Чтобы обновить абсолютно все пакеты (даже те, которые не входят ни world ни в system):

equery -q -C l | sed 's/-[0-9][0-9]*.*//' | uniq | xargs emerge -uD

  • Чтобы удалить пакет:

emerge -C пакет

  • Чтобы удалить из системы все ненужные пакеты

emerge depclean (ОЧЕНЬ ОПАСНАЯ ОПЕРАЦИЯ, которая может привести к удалению нужных пакетов)

  • Чтобы собрать бинарный пакет, уже проинсталлированый на вашей системе, для переноса на другую систему или повторного инсталлирования

quickpkg пакет

  • Чтобы посмотреть какие файлы в папке /usr/portage/distfiles уже не будут использоваться (т.е. устарели):

eclean -p distfiles

  • Чтобы очистить папку /usr/portage/distfiles от устаревших исходников:

eclean distfiles

  • Чтобы перенести из папки /usr/portage/distfiles все устаревшие исходники в папку /usr/portage/distfiles/old/:

mv `eclean -p -q -C distfiles` /usr/portage/distfiles/old/


Также стоит обратить внимание на утилиту epm. Она обеспечивает совместимый с rpm набор параметров и формат вывода.

Личные инструменты