Portage-utils Łukasz Damentko Joshua Saddler Marcelo Góes Davide Cendron Questa guida spiega le principali modalità di utilizzo di portage-utils, una collezione di rapide applicazioni di appoggio per Portage scritte in C. 1.3 2007-05-23 Introduzione

portage-utils è una collezione di programmi di utilità molto veloci scritti in C, concepiti per offrire una più veloce ma più limitata alternativa alle loro controparti in gentoolkit. È importante tenere presente che portage-utils non sostituisce gentoolkit. Le sue utilità sono molto più efficienti delle rispettive in gentoolkit, e sono maggiormente indicate per l'uso in script che hanno la necessità di effettuare ripetutamente delle chiamate a Portage, di contro portage-utils non offre le stesse funzionalità. Non considera minimamente le eclass e non fornisce strumenti come revdep-rebuild e glsa-check.

Si possono trovare ulteriori informazioni riguardanti gentoolkit nella relativa guida.

È possibile vedere l'elenco completo delle applicazioni contenute in portage-utils digitando man q o q --help. È consigliabile leggere attentamente le pagine man per ognuno dei programmi di utilità, in quanto questa guida vuole essere solamente un rapido riferimento per le funzioni più utili e non include tutte le informazioni per ogni applicazione.

La prima cosa da fare con portage-utils è installare il pacchetto:

# emerge portage-utils
Utilizzo
Come trovare il pacchetto a cui appartiene un determinato file

qfile trova il pacchetto al quale appartiene un determinato file:

$ 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)
Verificare l'integrità di un pacchetto

Se si vogliono verificare le somme MD5 o le date di modifica dei file installati da qualche pacchetto, si può usare l'applicazione qcheck:

$ qcheck portage-utils
Checking app-portage/portage-utils-0.1.13 ...
  * 36 out of 36 files are good

Ovviamente verranno elencati tutti i file modificati dopo l'installazione. Se l'applicazione riporta i file di configurazione che sono stati modificati manualmente dopo l'installazione, non c'è nulla di cui preoccuparsi.

Elencare i pacchetti che dipendono da un determinato pacchetto

Naturalmente c'è anche un applicazione che permette di elencare tutti i pacchetti che dipendono da un determinato pacchetto. Ciò viene eseguito da qdepends. Usare il parametro -a per visualizzare tutte le informazioni relative a DEPEND, RDEPEND e PDEPEND per quel dato pacchetto.

$ 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
Elencare i file appartenenti ad un ebuild

qlist restituisce un elenco di tutti i file che appartengono ad uno specifico ebuild.

$ qlist vim
/usr/bin/gvim
/usr/bin/gvimdiff
/usr/bin/evim
/usr/bin/eview
/usr/bin/gview
/usr/bin/rgvim
[...]
Cercare i pacchetti che utilizzato una determinata flag USE

Questa operazione viene eseguita da quse, che deve essere eseguito da root. Alla prima esecuzione ci starà un po' di tempo per creare/aggiornare la cache per gli ebuild.

# 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
[...]
Trovare la dimensione dei pacchetti

Questa informazione viene facilmente reperita tramite l'applicazione qsize:

$ 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
[...]
Cercare all'interno del Portage tree

Uno degli strumenti più potenti di portage-utils è qsearch. Questo strumento permette di effettuare ricerche nel proprio Portage tree molto più velecemente del comando predefinito emerge -s.

Vengono forniti alcuni esempi di utilizzo:

(Mi sono scordato il nome di quel pacchetto contenente i miei font preferiti)
$ qsearch terminus
media-fonts/terminus-font A clean fixed font for the console and X11

(Voglio ringraziare la persona che li ha creati. Qual'è la sua homepage?)
$ qsearch -H terminus
media-fonts/terminus-font http://www.is-vn.bg/hamster/jimmy-en.html

(Ho bisogno di un client jabber e ne ho bisogno adesso)
$ 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
Estrarre informazioni dai log di emerge

C'è anche uno strumento che permette di estrarre informazioni utili dal proprio file emerge.log. Si chiama qlop e può essere utile quando si vogliono fare delle stime sui tempi di compilazione di un pacchetto o compararli con quelli dei propri amici che possiedono dei computer che compilano più velocemente. Inoltre permette di controllare cosa si sta compilando in quel momento e quanto tempo ci vorrà per terminare l'operazione, molto comodo quando si sta lavorando nella console e non ci sono altri modi per verificarlo.

(Sto per effettuare l'emerge di perl e voglio una stima di quanto tempo
occorre abitualmente)
$ qlop -tH perl
perl: 7 minutes, 52 seconds for 4 merges
(Ora vediamo cosa si sta attualmente emergendo)
$ qlop -c
* perl-5.8.8-r23
        started: Mon May 21 12:41:11 2007
        elapsed: 19 seconds