Portage guida dell'utente
1.Getting Started
Ottenere il Portage corrente
Dopo aver installato Gentoo Linux e girovagato un tantino, potreste trovare alcuni bug o un cavillo
in alcuni pacchetti, o forse volete installare gli ultimi pacchetti software di Gentoo Linux
o aggiornare i vostri attuali pacchetti.. Per far questo, avete bisogno di scaricare il nostro Portage
tree. Noi forniamo alcuni server rsync anonimi che potete usare per ottenere il nostro ultimo Portage tree.
Ecco come usarlo.
Usate i seguenti comandi per sincronizzare il vostro Portage
tree:
Esempio 1: Ottenere il portage aggiornato |
# emerge sync
|
Notate che emerge sync automaticatcamente evoca
l'opzione --clean, che cancella tutte i vostri cambiamenti personali
o aggiunte a /usr/portage Se volete mantenere separati i vostri
ebuilds dal Portage tree principale, usate la funzione PORTDIR_OVERLAY.
Esempio 2: Usare PORTDIR_OVERLAY |
PORTDIR_OVERLAY="/dir/where/your/ebuilds/are"
|
Se iniziate a modificare molti ebuild, correggere bug, etc, potreste voler considerare di divenire parte
del Gentoo Linux Development Team. Per favore contattate
Daniel Robbins o
Seemant Kulleen per maggiori informazioni.
Aggiornare Portage
Prima che usiate il nostro Portage tree, è importante che aggiorniate Portage facendo le seguenti operazioni:
Esempio 3: Aggiornare Portage |
# emerge -up system
# emerge -u system
|
Ora state usando la più recente versione di portage, e potete iniziare ad usare il nostro sistema di ebuild
per aggiornare il vostro software installato.
2.Introduzione a emerge
emerge --pretend
Prima di installare un pacchetto, è una buona idea vedere quali dipendenze saranno installate,
quali pacchetti hanno bisogno di essere aggiornati, etc. emerge --pretend o
emerge -p possono farlo per voi.
Esempio 4: Usare emerge -p |
# emerge -p xchat
These are the packages that I would emerge, in order.
Calculating dependencies......... done!
[ebuild U] sys-libs/zlib-1.1.3-r2 to /
[ebuild U] dev-libs/glib-1.2.10 to /
[ebuild N ] media-libs/jpeg-6b-r2 to /
[ebuild N ] x11-base/xfree-4.0.3-r3 to /
[ebuild N ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N ] media-libs/giflib-4.1.0-r3 to /
[ebuild N ] media-libs/tiff-3.5.6_beta to /
[ebuild N ] media-libs/imlib-1.9.10 to /
[ebuild N ] net-irc/xchat-1.4.3 to /
|
In questo caso particolare,stiamo tentando di fare l'emerge di xchat su una
macchina che non ha X installato. Così, emerge --pretend
correttamente identifica che alcune dipendenze hanno bisogno di essere soddisfatte prima.
Precisamente, sys-libs/zlib e dev-libs/glib hanno bisogno di essere
aggiornate e poi un fascio di ebuild (incluso x11-base/xfree,
certamente) hanno bisogno di essere installati.
USE e emerge
Sopra, ho eseguito emerge --pretend su un sistema che non aveva
gnome definito nella variabile USE in /etc/make.conf.
Questo significa che il supporto opzionale per GNOME, se presente, non viene abilitato.
Comunque, xchat ha il supporto opzionale per GNOME, quindi date un'occhiata
all'output di emerge --pretend dopo che ho aggiunto gnome alla
variabile d'ambiente USE in /etc/make.conf:
Esempio 5: Usare emerge con la variabile USE |
# emerge -p xchat
These are the packages that I would emerge, in order.
Calculating dependencies............................ done!
[ebuild N ] media-libs/jpeg-6b-r2 to /
[ebuild N ] gnome-base/libghttp-1.0.9 to /
[ebuild N ] media-libs/audiofile-0.2.1 to /
[ebuild N ] media-sound/esound-0.2.22-r2 to /
[ebuild N ] gnome-base/gnome-env-1.0 to /
[ebuild N ] gnome-base/libxml-1.8.11 to /
[ebuild N ] gnome-base/ORBit-0.5.8 to /
[ebuild N ] gnome-base/oaf-0.6.5 to /
[ebuild U] dev-libs/glib-1.2.10 to /
[ebuild N ] net-libs/libwww-5.3.2-r1 to /
[ebuild N ] media-libs/giflib-4.1.0-r3 to /
[ebuild N ] dev-util/guile-1.4-r3 to /
[ebuild U] sys-libs/zlib-1.1.3-r2 to /
[ebuild N ] x11-base/xfree-4.0.3-r3 to /
[ebuild N ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N ] media-libs/tiff-3.5.6_beta to /
[ebuild N ] media-libs/imlib-1.9.10 to /
[ebuild N ] gnome-base/gnome-libs-1.2.13 to /
[ebuild N ] gnome-base/glibwww-0.2-r1 to /
[ebuild N ] gnome-base/gdk-pixbuf-0.11.0 to /
[ebuild N ] gnome-base/gconf-1.0.0 to /
[ebuild N ] gnome-base/gnome-vfs-1.0.1 to /
[ebuild N ] gnome-base/control-center-1.4.0.1 to /
[ebuild N ] gnome-base/scrollkeeper-0.2 to /
[ebuild N ] dev-util/xml-i18n-tools-0.8.1 to /
[ebuild N ] gnome-base/libglade-0.16-r1 to /
[ebuild N ] gnome-base/gnome-core-1.4.0.4 to /
[ebuild N ] net-irc/xchat-1.4.3 to /
|
Come potete vedere, con gnome aggiunto a USE, emerge riconosce
che xchat può includere il supporto opzionale per GNOME. Certamente per poter essere compilato
ed eseguito correttamente il supporto per GNOME, quest'ultimo deve essere prima
installato. emerge presenta questo e aggiunge vari pacchetti
richiesti dalla lista di ebuild di GNOME. potrebbero esserci delle volte in cui la
vostra variabile USE non è configurata correttamente, causando che emerge
insapettatamente includa o escluda il supporto per varie estensioni opzionali.
Quello che raccomandiamo è di eseguire sempre un emerge --pretend
prima di eseguire l'attuale emerge, specialmente per i nuovi, non familiari
ebuild. In questo modo, sapete cosa aspettarvi. :) Quando tutto sembra OK,
potete procedere con l'attuale emerge togliendo l'opzione --pretend:
Esempio 6: Emerge xchat |
# emerge xchat
|
Dopo che tutte le dipendenze sono installate (se esistono; non tutti i pacchetti
le hanno), i sorgenti di xchat saranno scaricati (in
/usr/portage/distfiles), verificati, scompattati, compilati and
installati in una directory temporanea chiamata sandbox. Poi, verranno uniti (emerge) nel filesystem locale
e il database del pacchetto sarà creato in
/var/db/pkg/net-irc/xchat-1.4.3/CONTENTS, contenente i file installati e
e l' md5sums per tutti i file.
Se volete vedere quali USE-flag potete usare con un determinato pacchetto, e
quali sono azionati nel vostro sistema, aggiungete l'argomento -v o
--verbose a emerge -p:
Esempio 7: Usare emerge con --verbose |
# emerge -pv gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild U ] sys-kernel/gentoo-sources-2.4.20-r5 -build +crypt -evms2
-aavm -usagi
|
Controllare cosa è cambiato
Se volete sapere cosa è cambiato dalla versione che avete installato
e quella disponibile su Portage, aggiungete l'argomento
--changelog o -l:
Esempio 8: Vedere il ChangeLog |
# emerge -pl mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild U ] net-www/mozilla-1.3-r1 [1.2.1-r5]
*mozilla-1.3-r1
22 Mar 2003; Martin Schlemmer <azarah@gentoo.org> mozilla-1.3-r1.ebuild :
Add Gtk2 patch. Add default/prefs/xft.js when Xft is enabled. Some other
long overdue cleanups.
*mozilla-1.3
21 Mar 2003; Jay Kwak <jayskwak@gentoo.org> mozilla-1.3.ebuild :
Add XIM input patch for GTK
18 Mar 2003; Martin Schlemmer <azarah@gentoo.org> mozilla-1.3.ebuild :
New version.
13 Mar 2003; Olivier Reisch <doctomoe@gentoo.org> mozilla-1.2.1-r5.ebuild :
Marked ppc stable
*mozilla-1.3_beta
23 Feb 2003; Martin Schlemmer <azarah@gentoo.org> mozilla-1.3_beta.ebuild :
New version.
|
3.Aggiornare i pacchetti
Il modo standard per aggiornare i pacchetti in Portage è di usare emerge --update
o emerge -u.
Esempio 9: Using emerge -u |
# emerge -u xchat
|
Portage usa quello che viene chiamato "safe" unmerge; esso esegue soltanto
l'unlink dei file originali Se un file è stato sovrascritto o modificato in qualche modo,
viene lasciato sul filesystem (presumibilmente, avete installato una uova versione
del pacchetto). così, se eseguite l'unmerge di una vecchia versione di xchat dopo l'emerge di
una nuova versione, l'eseguibile di xchat non viene cancellato dal vostro filesystem,
dopo che ha un differente timestamp e un differente md5sum. Safe unmerge è veramente
buono perchè assicura che alcune versioni dell'applicazione sono sempre disponibili.
Se aveste dovuto fare l'unmerge prima, xchat non sarebbe stato disponibile
per alcuni minuti, in cui la nuova versione veniva scaricata, compilata,
installata e eseguito l'emerge.
Importante: Portage ha una speciale funzione chiamata "config file protection".
L'intento di questa funzione è di prevenire che i nuovi pacchetti installati modificano
gli esistenti file di configurazione. Il config file protection è attivo di default
per /etc e le dir di configurazione di KDE; molte potrebbero essere aggiunte in futuro. Scrivete
emerge --help config per maggiori detagli. |
4.Resolving Blocked Packages
I pacchett attualmente installati possono talvolta bloccare l'installazione
di altri pacchetti. Questo può succedere quando le funzionalità di un pacchetto sono state spostate
in un'altro pacchetto o quando due pacchetti sono incompatibili.
Un pacchetto bloccante deve essere rimosso dal sistema prima che il pacchetto bloccato possa essere installato.
Esempio 10: Installare un pacchetto bloccato |
# emerge -pv libbonobo
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[blocks B ] gnome-base/bonobo-activation (from pkg gnome-base/libbonobo-2.4.0)
[ebuild U ] gnome-base/ORBit2-2.8.1 [2.6.3] -doc +ssl
[ebuild U ] gnome-base/libbonobo-2.4.0 [2.2.3] -doc
|
Nell'esempio sopra il pacchetto bonobo-activation blocca l'installazione di
libbonobo-2.4.0.
Esempio 11: Rimuovere un pacchetto bloccante dal sistema |
# emerge -C bonobo-activation
# emerge libbonobo
|
Rimuovere bonobo-activation dal sistema permette
a libbonobo-2.4.0 fare il merge correttamente.
Importante:
Eseguire un'unmerge (emerge -C) rimuoverà il pachetto dal sistema anche
se è una dipendenza per altri pacchetti, con la possibilità di corrompere il sistema.
|
5.Controllare il comportamento di Portage
Se volete cambiare il comportamento di Portage, potete modificare
/etc/make.conf. Esso contiene variaili (o esempi di valori
per variabili) che potete definire per alterare la condotta di Portage.
Per esempio, se volete cambiare il modo di scaricare i codici sorgenti,
potete modificare FETCHCOMMAND secondo le vostre esigenze.
/etc/make.conf contiene molti esempi di settaggi per variabili
dai quali potete derivare come definirli.
Potete anche dare un'occhiata alla pagina man di make.conf
(man make.conf) e, se volete tuffarvi profondamente nel mondo di
Portage, leggete il Portage
Manual.
Se avete bisogno di cambiare una variabile per una sola esecuzione, potete assegnare
una variabile d'ambiente invece di modificare /etc/make.conf
due volte. Per esempio AUTOCLEAN="no" emerge kde disabilità
l'autocleaning solo durante emerge kde.
6.Cosa sono i masked packages?
Molte persone sono curiose sul perchè i nuovi pacchetti rilasciati non sono inclusi
quando eseguono emerge -u world. Un buon esempio di questo è xfree-4.3.0
(la versione al momento della stesura di questo documento). Se eseguite emerge sync
seguito da emerge -u world, non vedete xfree come canditato per l'upgrade.
Perchè questo?
La ragione è che alcuni pacchetti sono segnati come "masked"--così, il pacchetto
non sarà automaticamente aggornato o installato a meno che voi non lo facciate esplicitamente.
Per una spiegazione su come abilitare l'installazione di pacchetti masked
vi incoraggiamo a visistare Masked Packages
FAQ nel nostro Gentoo Forums.
|