Praca z pakietem portage-utils
1.
Wprowadzenie
Pakiet portage-utils to zestaw programów użytkowych napisanych w C,
które stanowią szybką, choć nieco ograniczoną alternatywę dla pakietu
gentoolkit. Pakiet portage-utils nie został napisany, aby
zastąpić gentoolkit. Programy wchodzące w jego skład są wprawdzie
znacznie wydajniejsze od odpowiedników z gentoolkit i znacznie lepiej
nadają się do wykorzystania w skryptach pracujących w środowisku drzewa
Portage, należy jednak pamiętać, że portage-utils nie dostarcza
dokładnie takich samych możliwości. Pakiet ten nie współpracuje z eklasami oraz
nie dostarcza narzędzi takich jak revdep-rebuild czy glsa-check.
Więcej informacji o pakiecie gentoolkit znajduje się w tekście Praca z gentoolkit.
Pełna lista programów należących do portage-utils znajduje się na
stronie man q, można ją również wyświetlić poleceniem q
--help. Zaleca się przeczytanie strony man każdego z opisywanych programów,
gdyż ten opis zawiera tylko najbardziej przydatne z ich funkcji, czyli ułamek
prawdziwych możliwości.
Pierwszym krokiem na drodze do używania pakietu portage-utils jest
oczywiście jego instalacja:
Listing 1.1: Instalowanie portage-utils |
# emerge portage-utils
|
2.
Używanie pakietu
Wyszukiwanie pakietu, do którego należy określony plik
Program qfile znajduje pakiet, do którego należy podany plik:
Listing 2.1: Znajdowanie pakietu, do którego należy określony plik |
$ qfile /etc/fonts/fonts.conf
media-libs/fontconfig (/etc/fonts/fonts.conf)
$ qfile /usr/share/keymaps/atari/atari-uk-falcon.map.gz
sys-apps/kbd (/usr/share/keymaps/atari/atari-uk-falcon.map.gz)
|
Sprawdzanie integralności pakietu
Dzięki programowi qcheck można sprawdzić mtime i sumy MD5 plików
zainstalowanych przez podany pakiet:
Listing 2.2: Sprawdzanie integralności pakietu |
$ qcheck portage-utils
Checking app-portage/portage-utils-0.1.13 ...
* 36 out of 36 files are good
|
Oczywiście wszystkie pliki zmienione po instalacji pakietu zostaną zgłoszone
przez program. Jeśli są to pliki konfiguracyjne, które zmieniano po instalacji
programu, zwykle nie ma się czym martwić.
Wyświetlanie listy zależności podanego pakietu
W portage-utils znajduje się również program, dzięki któremu można wyświetlić
listę wszystkich zależności pakietu, który zostanie podany programowi. Nazywa
się on qdepends. Parametr -a wyświetli informacje o DEPEND,
RDEPEND i PDEPEND, czyli różnych typach zależności danego pakietu.
Listing 2.3: Wyświetlanie listy zależności podanego pakietu |
$ qdepends -a pygtk
* DEPEND
dev-python/pygtk-2.8.2: >=dev-lang/python-2.3 >=x11-libs/gtk+-2.8.0
>=dev-libs/glib-2.8.0 >=x11-libs/pango-1.10.0 >=dev-libs/atk-1.8.0
>=gnome-base/libglade-2.5.0 >=dev-python/pycairo-0.9.0 dev-python/numeric
virtual/opengl dev-python/pyopengl >=x11-libs/gtkglarea-1.99
>=dev-util/pkgconfig-0.9 sys-devel/patch
* RDEPEND
dev-python/pygtk-2.8.2: >=dev-lang/python-2.3 >=x11-libs/gtk+-2.8.0
>=dev-libs/glib-2.8.0 >=x11-libs/pango-1.10.0 >=dev-libs/atk-1.8.0
>=gnome-base/libglade-2.5.0 >=dev-python/pycairo-0.9.0 dev-python/numeric
virtual/opengl dev-python/pyopengl >=x11-libs/gtkglarea-1.99
* PDEPEND
|
Wyświetlanie listy pakietów należących do ebuildu
Program qlist pozwala na wyświetlenie listy plików instalowanych przez
dany ebuild.
Listing 2.4: Wyświetlanie listy pakietów należących do ebuildu |
$ qlist vim
/usr/bin/gvim
/usr/bin/gvimdiff
/usr/bin/evim
/usr/bin/eview
/usr/bin/gview
/usr/bin/rgvim
[...]
|
Wyświetlanie listy pakietów posiadających podaną flagę USE
Dokonuje się tego za pomocą programu quse, który musi być uruchamiany z
konta roota. Czasem uruchomienie programu trwa nieco dłużej - przez konieczność
aktualizacji cache Portage.
Listing 2.5: Wyszukiwanie pakietów z flagą USE 'firefox' |
# quse firefox
app-office/openoffice/openoffice-2.0.2_rc1.ebuild binfilter curl eds firefox gnome gtk java kde ldap xml2
dev-haskell/gtk2hs/gtk2hs-0.9.10.ebuild doc glade gnome firefox
dev-java/swt/swt-3.1-r1.ebuild accessibility cairo firefox gnome
[...]
|
Obliczanie rozmiaru pakietu
Możliwe jest to dzięki programowi qsize:
Listing 2.6: Obliczanie rozmiaru pakietu |
$ qsize vim
app-editors/gvim-6.4: 10 files, 7 non-files, 2327.516 KB
app-editors/vim-6.4: 6 files, 2 non-files, 2058.14 KB
app-editors/vim-core-6.4: 1024 files, 68 non-files, 10950.984 KB
[...]
|
Przeszukiwanie drzewa Portage
Jednym z najciekawszych narzędzi wchodzących w skład pakietu
portage-utils jest program qsearch. Program ten pozwala na
znacznie szybsze przeszukiwanie drzewa Portage niż jest to możliwe przy pomocy
standardowego polecenia emerge -s.
Kilka przykładów jego użycia:
Listing 2.7: Przeszukiwanie drzewa Portage za pomocą qsearch |
$ qsearch terminus
media-fonts/terminus-font A clean fixed font for the console and X11
$ qsearch -H terminus
media-fonts/terminus-font http://www.is-vn.bg/hamster/jimmy-en.html
$ qsearch -S "jabber client"
app-emacs/emacs-jabber A Jabber client for Emacs.
net-im/gajim Jabber client written in PyGTK
net-im/gnome-jabber Gnome Jabber Client
net-im/gossip Lightweight Jabber client for GNOME
net-im/imcom Python commandline Jabber Client
net-im/psi QT 3.x Jabber Client, with Licq-like interface
net-im/tkabber Featureful Jabber client for tcl/tk.
x11-themes/psi-themes Iconsets for Psi, a QT 3.x Jabber Client
|
Odczytywanie informacji z logów emerge
W zestawie znajduje się również program pozwalający na odczytanie przydatnych
informacji z pliku emerge.log. Nazywa się on qlop i może być
przydatny, gdy zachodzi potrzeba ustalenia jak długo będzie kompilował się jakiś
pakiet lub gdy chce się porównać czasy kompilacji z kolegami, aby sprawdzić kto
ma szybszy komputer. Program pozwala również sprawdzić jaki pakiet jest właśnie
kompilowany, co jest przydatne dla osób, które pracują akurat w konsoli i ciężko
im to sprawdzić w inny sposób.
Listing 2.8: Odczytywanie informacji z logów emerge za pomocą programu qlop |
$ qlop -tH perl
perl: 7 minutes, 52 seconds for 4 merges
$ qlop -c
* perl-5.8.8-r23
started: Mon May 21 12:41:11 2007
elapsed: 19 seconds
|
Materiał udostępniany na podstawie licencji Creative Commons -
Attribution / Share Alike.
|