Gentoo Logo

Gentoolkit

Indice:

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

(Molti moduli hanno come argomento un pacchetto. equery accetta gli stessi formati di emerge):
$ equery --quiet list gcc                  # pacchetto
sys-devel/gcc-4.3.2-r3
$ equery --quiet list sys-devel/gcc        # categoria/pacchetto
sys-devel/gcc-4.3.2-r3
$ equery --quiet list '>=sys-devel/gcc-4'  # sintassi atom
sys-devel/gcc-4.3.2-r3

(Come emerge, equery non comprende nomi parziali di pacchetti):
$ equery check zilla
!!! No package found matching zilla

(A differenza di emerge, equery non accetta carattery jolly nella categoria o nel nome del pacchetto):
$ 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

(Molti moduli equery ammettono argomenti multipli):
$ 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)

(Alcuni moduli ammettono anche espressioni regolari):
$ 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

(Mostrare le informazioni relative all'ultima versione):
$ 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

(Abilitare una flag USE)
#  euse -E 3dfx
/etc/portage/make.conf was modified, a backup copy has been placed at
/etc/portage/make.conf.euse_backup

(/etc/portage/make.conf dopo il comando)
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"

(Disattivare una flag USE)
#  euse -D 3dfx
/etc/portage/make.conf was modified, a backup copy has been placed at
/etc/portage/make.conf.euse_backup

(/etc/portage/make.conf dopo il comando)
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.



Stampa

Aggiornato il 30 novembre 2012

La versione originale di questo documento non è più mantenuta

Oggetto: Gentoolkit è un insieme di strumenti che semplificano l'amministrazione di un sistema Gentoo. Questo documento tratta le basi di alcuni degli strumenti presenti in Gentoolkit.

Matt Butcher
Autore

John P. Davis
Redazione

Erwin
Redazione

Shyam Mani
Redazione

Xavier Neys
Redazione

Karl Trygve
Redazione

José Luis Rivero
Redazione

Joshua Saddler
Redazione

Douglas Anderson
Editor

Davide Cendron
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.