Gentoo, список установленных пакетов с USE флагами

Ноябрь 15, 2009
Gentoo

Контролировать состояние операционной системы порой бывает не менее важно, чем состояние исходных текстов программы. Если Вы попадали в ситуацию, когда необходимо было выяснить, что же явилось причиной странного поведения программ после обновления каких-то компонент, то Вы знаете, о чем я говорю. Уже несколько лет я использую собственную программу для создания резервных копий различных данных, в том числе и для сохранения состояния системы в виде набора конфигурационных файлов и специальных отчетов. Для ведения истории используется система контроля версий, таким образом каждое изменение сопровождается комментарием администратора. Моя программа пока не готова для публикации, поскольку требует определенной доработки для того, чтобы ей могли пользоваться другие люди, но некоторыми ее частями я буду периодически делиться. Сегодня я расскажу об отчете, содержащем список установленных пакетов Gentoo GNU/Linux с USE флагами.

Многие из пользователей Gentoo скорее всего знакомы с командой, позволяющей сгенерировать список установленных в системе пакетов. Это делается при помощи утилиты equery из пакета gentoolkit.

# equery list

...
[I--] [  ] x11-libs/Xaw3d-1.5-r1 (0)
[I--] [  ] x11-libs/cairo-1.8.8 (0)
[I--] [  ] x11-libs/gtk+-2.16.6 (2)
[I--] [  ] x11-libs/libICE-1.0.5 (0)
[I--] [  ] x11-libs/libSM-1.1.1 (0)
[I--] [  ] x11-libs/libX11-1.2.2 (0)
[I--] [  ] x11-libs/libXScrnSaver-1.1.3 (0)
...

Ее вывод очень полезен, но этого часто бывает не достаточно, поскольку состояние пакета зависит от USE флагов, с которыми Вы его собрали. Чтобы вывести для каждого пакета список его USE флагов, можно воспользоваться моим скриптом.

# list-gentoo-packages.sh

...
x11-libs/Xaw3d-1.5-r1
x11-libs/cairo-1.8.8 +X +opengl +svg -cleartype -debug -directfb -doc -glitz -xcb
x11-libs/gtk+-2.16.6 +cups +jpeg +tiff -debug -doc -jpeg2k -test -vim-syntax -xinerama
x11-libs/libICE-1.0.5 +ipv6 -debug
x11-libs/libSM-1.1.1 +ipv6 +uuid -debug -elibc_FreeBSD
x11-libs/libX11-1.2.2 +ipv6 +xcb -debug
x11-libs/libXScrnSaver-1.1.3 -debug
...

Это осуществляется прямым анализом базы данных Portage, которая находится в /var/db/pkg/, и файлов IUSE для каждого пакета. После обновления системы бывает полезно посмотреть различия с предыдущим отчетом, чтобы заранее выявить возможные ошибки. Надеюсь, это пригодится Вам.

Загрузить list-gentoo-packages.sh, версия 0.2.

Никита Мельниченко.

Комментирование приостановлено