Portage guida dell'utente

Contenuti:

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

Aggiungete questa linea in /etc/make.conf
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

Questo vi fà vedere quali pacchetti saranno aggiornati
# emerge -up system 
Questo aggiorna i pacchetti necessari
# 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.



Ultimo aggiorn.:
09 Ottobre 2003
Daniel Robbins
Chief Architect

Thomas Flavel
Editor

John P. Davis
Editor

Carl Anderson
Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

Stefano Lucidi
Traduttore

Team Italiano
Traduttore

Sommario: Questa guida copre brevemente come mantenere aggiornati i vostri pacchetti, e come mantenere il vostro sistema.
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.