Gentoolkit
1.
Introduzione
Cosa è Gentoolkit?
Gentoo è una distribuzione unica, e presenta alcune difficoltà che non esistono
per le altre distribuzioni. Quando gli sviluppatori di Gentoo ed i collaboratori
scoprono alcune di queste difficoltà, scrivono degli strumenti per semplificare
la vita degli utenti ed il lavoro degli amministratori. Molti di questi
strumenti hanno contribuito al Progetto Gentoo, e sono stati inclusi nel
pacchetto app-portage/gentoolkit
Nota:
In questo momento ci sono due versioni di gentoolkit:
app-portage/gentoolkit e app-portage/gentoolkit-dev Mentre il
primo contiene script per l'amministrazione, il secondo contiene script
specifici per aiutare gli sviluppatori di Gentoo. Questo documento parla
unicamente di gentoolkit.
|
Gentoolkit contiene un insieme di strumenti utili per la gestione delle proprie
installazioni e per tenere traccia di quello che accade nel proprio sistema
quando vengono installati dei programmi. Molti utenti --soprattutto quelli che
aggiornano il loro sistema spesso-- troveranno utile avere gentoolkit
installato.
Installazione
Come per ogni pacchetto Gentoo, l'installazione è un semplice emerge.
Codice 1.1: Ottenere ed installare gentoolkit |
# emerge gentoolkit
|
Nota:
Molti degli strumenti presenti in gentoolkit rivelano delle informazioni
importanti riguardo il sistema o richiedono privilegi di root. Per questo motivo
alcuni dei programmi potranno essere eseguiti (o perchè funzionino
correttamente) solo da utenti con permessi di root.
|
Trovare la documentazione
Tutta la documentazione che occorre per ogni componente di gentoolkit (oltre le
pagine man) è presente in
/usr/share/doc/gentoolkit-[versione]/[nome-programma]/.
2.
equery
Introduzione
equery è uno strumento che visualizza informazioni utili sui pacchetti
del sistema. equery è formato da un sistema di moduli. Ogni modulo ha un
nome breve. Per esempio, equery l gcc è equivalente a equery list
gcc. equery --help spiega le opzioni globali e elenca tutti i moduli
disponibili e i loro nomi abbreviati. equery --help modulo mostra la
guida per un modulo specifico. Infine, man equery fornisce una
spiegazione dettagliata dei moduli disponibili e delle opzioni e offre numerosi
esempi.
Qui in basso c'è una lista di funzionalità che funzionano per la maggior parte
dei moduli.
Codice 2.1: Esempi di argomenti validi |
$ equery --quiet list gcc #
sys-devel/gcc-4.3.2-r3
$ equery --quiet list sys-devel/gcc #
sys-devel/gcc-4.3.2-r3
$ equery --quiet list '>=sys-devel/gcc-4' #
sys-devel/gcc-4.3.2-r3
$ equery check zilla
!!! No package found matching zilla
$ equery check '*zilla*'
* Checking www-client/mozilla-firefox-3.0.14 ...
90 out of 90 files passed
$ equery check www-c*/*
* Checking www-client/links-2.2 ...
30 out of 30 files passed
* Checking www-client/mozilla-firefox-3.0.14 ...
90 out of 90 files passed
$ equery hasuse sse sse2
* Searching for USE flag sse ...
[IP-] [ ] media-libs/flac-1.2.1-r3 (0)
[IP-] [ ] media-libs/speex-1.2_beta3_p2 (0)
* Searching for USE flag sse2 ...
[IP-] [ ] dev-libs/openssl-0.9.8k (0)
[IP-] [ ] x11-libs/pixman-0.16.0 (0)
$ equery -q list --portage-tree --full-regex '[kr]?flickr.*'
dev-dotnet/flickrnet-bin-2.2
dev-ruby/flickr-1.0.2-r1
dev-ruby/flickr-1.0.2-r2
dev-ruby/rflickr-20060201
media-gfx/kflickr-0.6
[...]
|
Nota:
I carattery jolly sostituiscono parecchie vecchie opzioni di equery. Ad
esempio, per operare su tutti i pacchetti di un certo set, usare '*'.
Per operare su tutti i pacchetti di una categoria, usare
'category-name/*'.
|
Avvertenza:
Non dimenticare di racchiudere l'argomento tra apici quando si usano caratteri
speciali della shell, come asterischi o i segni di maggiore/minore.
|
Nelle prossime due sezioni di questo documento verrà fornita una breve
introduzione ai diversi moduli equery.
Trovare a quale pacchetto appartiene un determinato file con belongs
(b)
Codice 2.2: Trovare quale pacchetto ha installato un certo file |
$ equery belongs -e /usr/bin/glxgears
* Searching for /usr/bin/glxgears ...
x11-apps/mesa-progs-7.5.1 (/usr/bin/glxgears)
|
belongs può cercare file che corrispondono a un'espressione regolare con
l'opzione -f. L'opzione -e ferma la ricerca appena trova la prima
corrispondenza. poiché nessuno file nel sistema dovrebbe appartenere a due
pacchetti, dovrebbe essere una valida ottimizzazione.
Verificare i rapporti sui cambiamenti con changes (c)
changes consente di mostrare i rapporti sui cambiamenti di un pacchetto
per una versione o un range di versioni. Supponiamo che dopo un emerge
--sync ci si accorga che Portage sta per essere aggiornato e che si voglia
controllare cosa è cambiato:
Codice 2.3: Controllare i rapporti sui cambiamenti in Gentoo |
$ equery changes portage
*portage-2.1.6.13 (03 May 2009)
03 May 2009; Zac Medico <zmedico@gentoo.org> +portage-2.1.6.13.ebuild:
2.1.6.13 bump. This fixes bug #268398 (document econf automatic die)
and bug #267104 (handle insufficient space interaction with userfetch).
Bug #268228 tracks all bugs fixed since 2.1.6.11.
|
Verificare se un pacchetto è danneggiato con check (k)
Alcune volte può essere utile controllare se un pacchetto sia per caso
danneggiato. equery può verificare l'MD5 come anche i timestamp per
indicare quando un pacchetto potrebbe essere stato corrotto, sostituito o
rimosso.
Codice 2.4: Controllare l'integrità di un pacchetto |
$ equery check gentoolkit
* Checking app-portage/gentoolkit-0.3.0_rc7 ...
71 out of 71 files passed
|
Tenere presente che nel caso vengano modificati i file di configurazione dopo
l'installazione di un pacchetto, quest'ultimo potrebbe essere rilevato come
"danneggiato".
Elencare tutti i pacchetti che dipendono da un pacchetto X con depends
(d)
Capita di chiedersi perché un pacchetto è stato installato nel sistema?
equery può informare su quali pacchetti lo richiedono come dipendenza con
depends. Si possono includere dipendenze indirette con -D.
Codice 2.5: Cercare pacchetti che dipendono da pygtk |
$ equery depends pygtk
* Searching for pygtk ...
app-admin/pessulus-2.24.0 (>=dev-python/pygtk-2.6.0)
app-editors/gedit-2.24.3 (python ? >=dev-python/pygtk-2.12)
dev-libs/libgweather-2.24.3 (python ? >=dev-python/pygtk-2)
dev-python/gnome-python-base-2.22.3 (>=dev-python/pygtk-2.10.3)
dev-python/gnome-python-desktop-base-2.24.1 (>=dev-python/pygtk-2.10.3)
[...]
|
Ottenere il grafico delle dipendenze con depgraph (g)
depgraph è il complementare di depends. Se gli si fornisce il nome
di un pacchetto, depgraph fornisce i pacchetti da cui esso dipende
(non quelli che dipendono da esso). Quando trova una dipendenza, continua a
cercare ricorsivamente tutte le dipendeze di quel pacchetto. Si può
controllare quanto in profondità cotruire l'albero con l'opzione --depth.
Codice 2.6: Consultare il grafico delle dipendenze di mozilla-firefox |
$ equery depgraph mozilla-firefox
* Searching for mozilla-firefox ...
* dependency graph for www-client/mozilla-firefox-2.0.0.19:
`-- www-client/mozilla-firefox-2.0.0.19
`-- virtual/jre-1.6.0 (virtual/jre) [java]
`-- virtual/jdk-1.6.0 (virtual/jdk-1.6.0*)
`-- dev-java/icedtea6-bin (unable to resolve: package masked or removed)
`-- dev-java/sun-jdk-1.6.0.15
`-- dev-java/java-sdk-docs-1.6.0.10 [doc]
`-- app-arch/unzip-6.0-r1
`-- app-arch/bzip2-1.0.5-r1 [bzip2]
`-- sys-libs/glibc-2.9_p20081201-r2
`-- sys-devel/gettext-0.17 [nls]
`-- virtual/libiconv-0 (virtual/libiconv)
[...]
|
Si osservi come jre sia una dipendenza diretta e jdk una
dipendenza indiretta se si è impostata la flag USE java.
Elencare i file installati da un pacchetto con files (f)
equery può elencare tutti i file installati da un ebuild con il modulo
files module. Provare l'opzione --tree per visualizzare un albero
delle directory più leggibile. Usare --filter per trovare solo un certo
tipo di file. Ad esempio, per trovare quali eseguibili sono stati installati,
usare --filter=cmd, e per trovare velocemente il file di configurazione
provare --filter=conf.
Codice 2.7: Elencare i file installati in una struttura ad albero |
$ equery files --tree gentoolkit
* Searching for gentoolkit ...
* Contents of app-portage/gentoolkit-0.3.0_rc7:
/etc
> /eclean
+ distfiles.exclude
+ packages.exclude
> /env.d
+ 99gentoolkit-env
> /revdep-rebuild
+ 99revdep-rebuild
/usr
> /bin
+ eclean
+ eclean-dist -> eclean
+ eclean-pkg -> eclean
+ epkginfo
+ equery
+ eread
+ euse
+ glsa-check
+ revdep-rebuild
> /lib
> /python2.6
> /site-packages
> /gentoolkit
+ gentoolkit-0.3.0_rc7-py2.6.egg-info
+ __init__.py
> /equery
+ __init__.py
+ belongs.py
+ changes.py
+ check.py
+ depends.py
+ depgraph.py
+ files.py
[...]
|
Cercare i pacchetti che utilizzano particolari flag USE con hasuse
(h)
Si può usare hasuse per trovare quali pacchetti utilizzano una certa flag
USE. hasuse non dirà se la flag è abilitata o no, solo se il pacchetto la
comprende tra le sue opzioni. Si veda la sezione EXAMPLES di hasuse nella
pagina man di equery per qualche consiglio su come ottenere questa
informazione.
Codice 2.8: Cercare pacchetti installati che usano le flag USE qt3 o qt4 |
$ equery hasuse qt3 qt4
* Searching for USE flag qt3 ...
[IP-] [ ] app-crypt/pinentry-0.7.5 (0)
[IP-] [ ] net-dns/avahi-0.6.24-r2 (0)
[IP-] [ ] net-wireless/wpa_supplicant-0.6.9 (0)
* Searching for USE flag qt4 ...
[IP-] [ ] net-dns/avahi-0.6.24-r2 (0)
[IP-] [ ] net-wireless/wpa_supplicant-0.6.9 (0)
|
Elencare i pacchetti con list (l)
list è un modulo semplice ma potente per elencare i pacchetti installati,
quelli che sono nel Portage e quelli in overlay.
Codice 2.9: Elencare i pacchetti con list |
$ equery list '*'
* Searching for * ...
[IP-] [ ] app-admin/eselect-1.2.3 (0)
[IP-] [ ] app-admin/eselect-ctags-1.10 (0)
[IP-] [ ] app-admin/eselect-esd-20060719 (0)
[IP-] [ ] app-admin/eselect-fontconfig-1.0 (0)
[IP-] [ ] app-admin/eselect-opengl-1.0.8-r1 (0)
[IP-] [ ] app-admin/eselect-python-20090824 (0)
[IP-] [ ] app-admin/eselect-ruby-20081227 (0)
[IP-] [ ] app-admin/eselect-vi-1.1.5 (0)
[IP-] [ ] app-admin/perl-cleaner-1.05 (0)
[IP-] [ ] app-admin/pessulus-2.24.0 (0)
[IP-] [ ] app-admin/python-updater-0.7 (0)
[IP-] [ ] app-admin/sudo-1.7.2_p1 (0)
[...]
|
L'interrogazione standard cerca i pacchetti installati in base al nome. Passando
l'opzione '*' mostrerà tutti i pacchetti di un set. Nel campo di sinistra, si
vede che tutti i pacchetti qui sopra sono Installati e nell'albero del
Portage. Non sono mascherati (il secondo campo è vuoto) e sono tutti
installati nello slot di default (0).
Un'altra opportunità è usare le opzioni locali perelencare i pacchetti
nell'albero del Portage e negli overlay.
Codice 2.10: Cercare negli alberi locali con list |
$ equery list -po vim
* Searching for vim ...
[-P-] [ ] app-editors/vim-7.0.235 (0)
[-P-] [ ~] app-editors/vim-7.0.243 (0)
[-P-] [ ] app-editors/vim-7.1.123 (0)
[-P-] [ ~] app-editors/vim-7.1.330 (0)
[-P-] [ ] app-editors/vim-7.2 (0)
[-P-] [ ~] app-editors/vim-7.2.108 (0)
[IP-] [ ] app-editors/vim-7.2.182 (0)
[-P-] [ ~] app-editors/vim-7.2.238 (0)
[-P-] [ ~] app-editors/vim-7.2.264 (0)
|
In questo esempio si può vedere che la versione 7.2.182 è installata e che non
ci sono versioni disponibili dagli overlay. Si può vedere a quali versioni è
stata attribuita la keyword ~ nel secondo campo.
Visualizzare i metadati del pacchetto con meta (m)
Ogni pacchetto nell'albero del Portage delle metainformazioni almeno sul proprio
mantainer, categoria, ecc. Se ne può sapere di più leggendo Metadata
Gentoo. La quantità di informazioni utili dipende da quanto i mantainer
decidono di fornirne. Se invocato senza opzioni, meta restituisce alcune
utili informazioni di base.
Codice 2.11: Ottenere le metainformazioni su un pacchetto con meta |
$ equery meta gnucash
* app-office/gnucash [gentoo]
Herd: gnome-office (gnome-office@gentoo.org)
Maintainer: tove@gentoo.org (Torsten Veller)
Upstream: None specified
Location: /usr/portage/app-office/gnucash
Keywords: 2.2.9-r1:0: alpha amd64 ppc sparc x86
Keywords: 2.2.9-r2:0:
Keywords: 2.3.8:0:
Keywords: 2.3.10:0: ~alpha ~amd64 ~ppc ~sparc ~x86
|
Quando il mantainer fornisce ulteriori informazioni, possono essere molto utili:
Codice 2.12: Ottenere una descrizione estesa del pacchetto con meta |
$ equery meta --description emacs
* app-editors/emacs
GNU Emacs is an extensible, customizable text editor - and more. At its core
is an interpreter for Emacs Lisp, a dialect of the Lisp programming language
with extensions to support text editing. The features of GNU Emacs include:
* Content-sensitive editing modes, including syntax coloring, for a wide
variety of file types including plain text, source code, and HTML.
* Complete built-in documentation, including a tutorial for new users.
* Support for many languages and their scripts, including all the European
"Latin" scripts, Russian, Greek, Japanese, Chinese, Korean, Thai,
Vietnamese, Lao, Ethiopian, and some Indian scripts.
* Highly customizable, using Emacs Lisp code or a graphical customization
interface.
* A large number of extensions that add other functionality, including a
project planner, mail and news reader, debugger interface, calendar, and
more. Many of these extensions are distributed with GNU Emacs; others are
available separately.
|
Trovare le dimensioni del pacchetto con size (s)
Ci si è mai chiesti a quanto ammonta lo spazio occupato da un particolare
pacchetto installato? Dal momento che un pacchetto può avere i propri files
sparpagliati su più directory, il classico du -hc potrebbe non essere
sufficiente. Non c'è da preoccuparsi, equery può tornare utile anche in
questa situazione!
Codice 2.13: Dimensione del pacchetto |
$ equery size openoffice-bin
* app-office/openoffice-bin-3.1.1
Total files : 4624
Total size : 361.38 MiB
|
Come si vede, size mostra lo spazio totale utilizzato in unità comode ed
elenca il numero totale di file che compongono il pacchetto. Per ottenere le
dimensioni totali in byte, usare --bytes.
Elencare le flag USE pacchetto per pacchetto con uses (u)
Il modulo uses di equery fornisce informazioni su quali flag USE
sono disponibili per un pacchetto specifico, e quali di queste flag sono
attualmente abilitate.
Codice 2.14: Mostrare flag Use abilitate e disabilitate |
$ equery uses gst-plugins-meta
* Searching for gst-plugins-meta ...
[ Legend : U - flag is set in make.conf ]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for media-plugins/gst-plugins-meta-0.10-r2:
U I
+ + X : Adds support for X11
- - a52 : Enables support for decoding ATSC A/52 streams used in DVD
+ + alsa : Adds support for media-libs/alsa-lib (Advanced Linux Sound
Architecture)
- - dvb : Adds support for DVB (Digital Video Broadcasting)
+ + dvd : Adds support for DVDs
+ + esd : Adds support for media-sound/esound (Enlightened Sound Daemon)
+ + ffmpeg : Enable ffmpeg-based audio/video codec support
+ + flac : Adds support for FLAC: Free Lossless Audio Codec
- - mad : Adds support for mad (high-quality mp3 decoder library and cli
frontend)
+ + mpeg : Adds libmpeg3 support to various packages
- - mythtv : Support for retrieval from media-tv/mythtv backend
+ + ogg : Adds support for the Ogg container format (commonly used by
Vorbis, Theora and flac)
- - oss : Adds support for OSS (Open Sound System)
+ + theora : Adds support for the Theora Video Compression Codec
+ + vorbis : Adds support for the OggVorbis audio codec
- - xv : Adds in optional support for the Xvideo extension (an X API for
video playback)
|
Qui si può vedere che nel meta-pacchetto gstreamer sono state abilitate
diverse flag USE, ma si vede anche che ci sono altre flag USE disponibili.
Per maggiori informazioni sulle flag USE, si faccia riferimento al capitolo Flag USE
del Manuale Gentoo.
Trovare il percorso dell'ebuild con which (w)
which è uno script semplice che aiuta a trovare velocemente il percorso
di un ebuild. Se si passa come parametro il nome di un pacchetto senza indicare
la versione, which restistuisce il percorso della versione installabile
più recente, in altre parole, l'ebuild che Portage userebbe se venisse chiesto
emerge package. Passando il nome di un pacchetto con la versione, si
ottiene il percorso di quell'ebuild.
Codice 2.15: Mostrare il percorso dell'ebuild installabile più recente |
$ equery which gnome
/usr/portage/gnome-base/gnome/gnome-2.26.3.ebuild
|
Infine, se nessuna delle funzioni precedenti di equery ha risposto alle
proprie domande, si può tentare di usare which per cercare manualmente in
un ebuild con programmi come cat, less o grep:
Codice 2.16: Altri modi utili di usare which |
$ grep HOMEPAGE $(equery which gentoolkit)
HOMEPAGE="http://www.gentoo.org/proj/en/portage/tools/index.xml"
|
Avvertenza:
Si faccia attenzione al fatto che equery modifica il suo output se
eseguito attraverso una pipe. Il formato per le pipe è concepito per essere più
comodo da elaborare da altri script, ma si può anche disabilitarlo aggiungendo
l'opzione --no-pipe. Se si scrivono script che usano equery
bisogna esserne consapevoli.
|
3.
euse
Introduzione
euse è unp strumento per vedere, attivare e disattivare le flag USE a
vari livelli. Per maggiori informazioni sulle flag USE fare riferimento a Flag USE.
Consultare euse -h per visualizzare l'aiuto e tutte le opzioni.
Visualizzare, attivare e disattivare le flag USE
euse -a legge le flag USE correntemente attive e le visualizza.
Nota:
Ci sono 5 colonne che euse utilizza per mostrare le flag
utilizzate e non utilizzate e dove tutte le flag sono state impostate. Le
colonne rappresentano l'utilizzo o meno di una flag tramite -/+, indicano
inoltre se la flag è stata impostata come variabile d'ambiente (E), nel
make.conf (C), nel make.defaults (D) o nel make.globals (G). L'output è quindi
simile a [+ECDG].
|
Codice 3.1: Vedere tutte le flag USE attive |
# euse -a
X [+ CD ]
aalib [+ ]
acpi [+ C ]
alsa [+ C ]
apache2 [+ C ]
apm [+ D ]
avi [+ D ]
berkdb [+ D ]
bitmap-fonts [+ D ]
bonobo [+ ]
cdr [+ C ]
crypt [+ CD ]
cscope [+ C ]
cups [+ CD ]
curl [+ ]
emboss [+ D ]
encode [+ D ]
esd [+ ]
fam [+ ]
fbcon [+ C ]
firefox [+ C ]
font-server [+ D ]
foomaticdb [+ D ]
fortran [+ D ]
gd [+ C ]
gdbm [+ D ]
gif [+ CD ]
gimpprint [+ C ]
gnome [+ CD ]
gphoto2 [+ ]
gpm [+ CD ]
gstreamer [+ C ]
gtk [+ D ]
gtkhtml [+ C ]
guile [+ ]
imagemagick [+ ]
imlib [+ CD ]
innodb [+ ]
ipv6 [+ D ]
javascript [+ C ]
jpeg [+ CD ]
kde [+ D ]
ldap [+ ]
libg++ [+ CD ]
libwww [+ CD ]
mad [+ CD ]
mbox [+ C ]
md5sum [+ C ]
mikmod [+ CD ]
mmx [+ C ]
motif [+ CD ]
mp3 [+ ]
mpeg [+ CD ]
mpeg4 [+ C ]
mysql [+ C ]
ncurses [+ CD ]
nls [+ D ]
nvidia [+ C ]
odbc [+ ]
offensive [+ ]
ogg [+ CD ]
opengl [+ CD ]
oss [+ D ]
pam [+ CD ]
pdflib [+ CD ]
perl [+ CD ]
png [+ CD ]
python [+ CD ]
qt [+ D ]
quicktime [+ CD ]
readline [+ CD ]
ruby [+ ]
sdl [+ CD ]
slang [+ D ]
spell [+ CD ]
sse [+ C ]
ssl [+ CD ]
svga [+ CD ]
tcltk [+ C ]
tcpd [+ D ]
tiff [+ C ]
truetype [+ CD ]
usb [+ C ]
vanilla [+ C ]
x86 [+ C ]
xml [+ ]
xosd [+ C ]
xv [+ CD ]
xvid [+ C ]
zlib [+ CD ]
|
Allo stesso modo è possibile utilizzare euse -a -g per vedere le flag USE
attive globalmente. euse -a -l fa la stessa cosa ma per le flag USE
locali. -g e -l sono subopzioni di euse e necessitano
un'opzione prima di loro (come -a) per funzionare correttamente.
Codice 3.2: Vedere le flag USE attive localmente |
# euse -a -l
bitmap-fonts [+ D ]
font-server [+ D ]
fortran [+ D ]
gimpprint [+ C ]
md5sum [+ C ]
mpeg4 [+ C ]
nvidia [+ C ]
offensive [+ ]
truetype [+ CD ]
|
È possibile utilizzare euse anche per attivare o disattivare delle flag
in USE. I comandi sono euse -E nomeflag (attiva una flag) e euse -D
nomeflag (disattiva la flag).
Avvertenza:
Non utilizzare euse -E o euse -D senza impostare una flag. Questo
attiverà o disattiverà TUTTE le flag in /etc/portage/make.conf. Sebbene venga
fatta una copia di sicurezza in /etc/portage/make.conf.euse_backup,
prestare attenzione nell'utilizzo di euse -E o euse -D.
|
Codice 3.3: Attivare e disattivare le flag USE |
# euse -E 3dfx
/etc/portage/make.conf was modified, a backup copy has been placed at
/etc/portage/make.conf.euse_backup
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \
firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \
innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \
ogg odbc offensive opengl pam pdflib perl png python \
quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
vanilla X xosd xv xvid x86 zlib 3dfx"
# euse -D 3dfx
/etc/portage/make.conf was modified, a backup copy has been placed at
/etc/portage/make.conf.euse_backup
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \
firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \
innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \
ogg odbc offensive opengl pam pdflib perl png python \
quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
vanilla X xosd xv xvid x86 zlib -3dfx"
|
Nota:
euse non rimuove fisicamente la flag da make.conf, semplicemente
aggiunge un segno - davanti la flag in modo da disattivarla. Bisognerà rimuovere
manualmente le flag indesiderate.
|
4.
Altri strumenti
revdep-rebuild
Questo strumento è il Ricostruttore di Dipendenze Inverse di Gentoo. Controllerà
tutti gli ebuild installati alla ricerca di qualche pacchetto avente una o più
dipendenze spezzate, magari a causa dell'aggiornamento di un pacchetto dal quale
dipende. Può eventualmente emergere in automatico il pacchetto incriminato ma
può anche succedere che un dato pacchetto non funzioni più con la dipendenza
correntemente installata, nel qual caso si dovrà aggiornare manualmente il
pacchetto. È possibile passare l'opzione --pretend a revdep-rebuild per
vedere cosa verrà aggiornato prima di proseguire.
Codice 4.1: Utilizzare revdep-rebuild in modalità pretend |
# revdep-rebuild -p
* Configuring search environment for revdep-rebuild
* Checking reverse dependencies
* Packages containing binaries and libraries broken by a package update
* will be emerged.
* Collecting system binaries and libraries
* Generated new 1_files.rr
* Collecting complete LD_LIBRARY_PATH
* Generated new 2_ldpath.rr
* Checking dynamic linking consistency
[ 48% ] * broken /usr/lib/gstreamer-0.10/libgsttaglib.la (requires /usr/lib/libtag.la)
[ 64% ] * broken /usr/lib/libgdkglext-x11-1.0.la (requires /usr/lib/libGLU.la)
[ 67% ] * broken /usr/lib/libgtkglext-x11-1.0.la (requires /usr/lib/libGLU.la)
[ 85% ] * broken /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gdkgl/_gdkgl.la (requires /usr/lib/libGLU.la)
* broken /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gtkgl/_gtkgl.la (requires /usr/lib/libGLU.la)
[ 97% ] * broken /usr/qt/3/lib/libqt-mt.la (requires -lpng)
[ 100% ]
* Generated new 3_broken.rr
* Assigning files to packages
* /usr/lib/gstreamer-0.10/libgsttaglib.la -> media-plugins/gst-plugins-taglib
* /usr/lib/libgdkglext-x11-1.0.la -> x11-libs/gtkglext
* /usr/lib/libgtkglext-x11-1.0.la -> x11-libs/gtkglext
* /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gdkgl/_gdkgl.la -> dev-python/pygtkglext
* /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gtkgl/_gtkgl.la -> dev-python/pygtkglext
* /usr/qt/3/lib/libqt-mt.la -> x11-libs/qt
* Generated new 4_raw.rr and 4_owners.rr
* Cleaning list of packages to rebuild
* Generated new 4_pkgs.rr
* Assigning packages to ebuilds
* Generated new 4_ebuilds.rr
* Evaluating package order
* Generated new 5_order.rr
* All prepared. Starting rebuild
emerge --oneshot --pretend dev-python/pygtkglext:0
media-plugins/gst-plugins-taglib:0.10
x11-libs/gtkglext:0
x11-libs/qt:3
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] media-plugins/gst-plugins-taglib-0.10.17
[ebuild R ] x11-libs/gtkglext-1.2.0
[ebuild R ] x11-libs/qt-3.3.8b-r2
[ebuild R ] dev-python/pygtkglext-1.1.0
* Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
|
Se si vogliono emergere nuovamente alcuni pacchetti rimuovere la -p dal
comando revdep-rebuild ed i pacchetti presenti nella lista precedente verranno
riemersi.
glsa-check
glsa-check è soprattutto uno strumento di verifica che tiene traccia dei vari
GLSA (Gentoo Linux Security Advisory) e che in futuro verrà
integrato in emerge ed equery.
eread
eread è uno strumento molto semplice per visualizzare i file di log
prodotti da >=portage-2.1. È possibile impostare il salvataggio dei file
di elog configurando un paio di variabili in /etc/portage/make.conf:
Codice 4.2: Abilitare elog in /etc/portage/make.conf |
PORTAGE_ELOG_CLASSES="log"
PORTAGE_ELOG_SYSTEM="save"
|
Nota:
Questo è solamente uno dei modi per salvare i messaggi di elog. Per maggiori
informazioni su come funziona lo strumento elog di Portage,fare riferimento alla
pagina appropriata nel Manuale di
Portage.
|
Una volta che elog è stato configurato in modo soddisfacente, basta eseguire
eread per vedere i propri file di log.
Codice 4.3: Usare eread |
$ eread
This is a list of portage log items. Choose a number to view that file or
type q to quit.
1) app-portage:gentoolkit-0.2.4_pre2:20070320-000256.log
2) app-portage:gentoolkit-0.2.4_pre2:20070320-000258.log
3) app-portage:gentoolkit-0.2.4_pre2:20070320-000319.log
4) app-portage:gentoolkit-0.2.3:20070320-000408.log
Choice?
|
Selezionare un numero per visualizzare il file tramite il programma di
paginazione specificato nella variabile d'ambiente PAGER. Se PAGER non è
impostato, verrà utilizzato less.
Dopo aver visualizzato il file di elog, verrà richiesto se si vuole cancellare
il file.
eclean
eclean è uno strumento per rimuovere i vecchi file sorgenti ed i vecchi
pacchetti binari dal proprio sistema.
Quando un pacchetto viene compilato ed installato, i file sorgenti vengono
scaricati e preservati in DISTDIR, solitamente
/usr/portage/distfiles. Ciò può portare ad un accumulo di gigabyte
di materiale, a lungo andare, se non viene effettuata una pulizia periodica. È
possibile eseguire eclean-dist per ripulire solamente i file sorgenti da
DISTDIR.
È possibile creare archivi dei pacchetti installati usando quickpg o
FEATURES="buildpkg". Questi pacchetti archiviati vengono mantenuti in PKGDIR,
solitamente /usr/portage/packages. Quando non se ne ha più
bisogno, o se sono troppo vecchi, è possibile eseguire eclean-pkg per
rimuoverli da PKGDIR. È un buon metodo per assicurarsi che qualunque pacchetto
si possieda sia relativo all'ultima versione.
Per maggiori informazioni su eclean e su trucchi per mantenere un
sistema libero da dati inutili, leggere man eclean.
|