From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.50) id 1ESXfO-00027W-6r for garchives@archives.gentoo.org; Thu, 20 Oct 2005 10:28:59 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.5/8.13.5) with SMTP id j9KAQjJs008084; Thu, 20 Oct 2005 10:26:45 GMT Received: from alpha.cerm.unifi.it (alpha.cerm.unifi.it [150.217.146.11]) by robin.gentoo.org (8.13.5/8.13.5) with ESMTP id j9KAQiqx020563 for ; Thu, 20 Oct 2005 10:26:44 GMT Received: (qmail 22939 invoked from network); 20 Oct 2005 12:26:26 +0200 Received: from service2.cerm.unifi.it (150.217.146.251) by alpha.cerm.unifi.it with SMTP; 20 Oct 2005 12:26:26 +0200 Date: Thu, 20 Oct 2005 12:29:18 +0200 From: Enrico Morelli To: gentoo-docs-it@lists.gentoo.org Subject: [gentoo-docs-it] Aggiornamenti Message-ID: <20051020122918.79f6bcd8@service2.cerm.unifi.it> Organization: CERM X-Mailer: Sylpheed-Claws 1.9.13 (GTK+ 2.8.6; i686-pc-linux-gnu) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-docs-it@gentoo.org Reply-to: gentoo-docs-it@lists.gentoo.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh X-Archives-Salt: 1ee8fb9f-60de-478b-8d98-74ac0aca0fb2 X-Archives-Hash: eab29740fe55d806ae76cdeb94e9add7 --Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Doc Ver Rev ----------------------------------------------------- hb-portage-branches 1.6 1.12 hb-portage-divertree 1.3 1.7 hb-portage-tools 1.4 1.7 hb-portage-configuration 1.4 1.9 hb-portage-files 1.7 1.10 hb-working-portage 1.56 1.51 -- ------------------------------------------------------------------- (o_ (o_ //\ Coltivate Linux che tanto Windows si pianta da solo. (/)_ V_/_ +------------------------------------------------------------------+ | ENRICO MORELLI | email: morelli@CERM.UNIFI.IT | | * * * * | phone: +39 055 4574269 | | University of Florence | fax : +39 055 4574253 | | CERM - via Sacconi, 6 - 50019 Sesto Fiorentino (FI) - ITALY | +------------------------------------------------------------------+ --Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/xml; name=hb-portage-branches.xml Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=hb-portage-branches.xml 1.6 11 Agosto 2005
Usare una branca La branca stabile

La variabile ACCEPT_KEYWORDS definisce la branca usata dal sistema. Il suo = valore predefinito =C3=A8 la branca stabile per l'architettura del sistema in uso,= per esempio x86

La raccomandazione =C3=A8 di usare solo la branca stabile, comunque, se non= si =C3=A8 preoccupati eccessivamente per la stabilit=C3=A0 e si vuole aiutare = Gentoo sottomettendo rapporti di problemi su http://bugs.gentoo.org, si pu=C3=B2 proseguire con la lettura.

La branca di test

Se si vogliono usare i software pi=C3=B9 recenti si pu=C3=B2 considerare l'= uso=20 della branca test. Per far usare al Portage la branca di test occorre aggiu= ngere il simbolo ~ prima dell'architettura del sistema in uso.

La branca di test =C3=A8 esattamente ci=C3=B2 che significa: In fase di= test. Se un pacchetto =C3=A8 in fase di test, significa che gli sviluppatori pensano che sia funzionante= ma non ancora testato in maniera esauriente. Ci si potrebbe trovare ad essere i primi a s= coprire un bug nel pacchetto, nel qual caso si dovrebbe aprire un bug su bugreport per farlo conoscere agli= sviluppatori. it.=09

=09 =09

=09 Si potrebbero comunque notare problemi di stabilit=C3=A0, gestione imperfetta dei pacchetti (per esempio dipendenze errate od omesse),=20 aggiornamenti troppo frequenti (risultante in compilazioni multiple) o=20 pacchetti corrotti. Se non si conosce come lavora Gentoo e come risolvere i problemi, si raccomanda di usare le branche stabili e testate.

=09 Per esempio, per selezionare la branca di test per architetture x86, editare /etc/make.conf e definire:

ACCEPT_KEYWORDS=3D"~x86"

Se si aggiorna il sistema dopo questa modifica, si avranno molti pa= cchetti da aggiornare. Una cosa da tenere bene in mente =C3=A8 che se si aggiorna i= l sistema in uso alla branca di test non c'=C3=A8 un modo semplice per tornare alla b= ranca stabile (eccetto l'uso di backup naturalmente).

Miscelare branche stabili e test Il file package.keywords

Si pu=C3=B2 chiedere al Portage di permettere la branca di test per partico= lari pacchetti ma usare la branca stabile per il resto del sistema. Per questo, si deve aggiungere la categoria ed il nome del pacchetto che si vuole usare dalla branca di test al file /etc/portage/package.keyw= ords.=20 Per esempio, per usare la branca di test di gnumeric:

app-office/gnumeric ~x86
Sperimentare versioni particolari

Se si vuole usare una versione specifica di software dalla branca di test ma non si vuole che Portage usi la branca di test per le versioni successiv= e, si pu=C3=B2 aggiungere la versione nel file package.keywords. In questo caso si deve usare l'operatore =3D. Si pu=C3=B2 anche inse= rire un intervallo di versioni usando gli operatori <=3D, <, > o >=3D.

In ogni caso, volendo aggiungere una versione si deve usare un opera= tore. Se non si specifica alcuna versione non si possono usare operatori.

Il seguente esempio mostra come accettare gnumeric-1.2.13:

=3Dapp-office/gnumeric-1.2.13 ~x86
Usare pacchetti mascherati Il file package.unmask

=09 Gli sviluppatori di Gentoo non supportano l'uso di questi file. Si prega di usare cautela nel loro uso. Le richieste di supporto in relazio= ne a package.unmask e/o package.mask non avranno risposta. Si =C3=A8 avvertiti.

=09 =20

Quando un pacchetto =C3=A8 stato mascherato dagli sviluppatori di Gentoo e = si vuole comunque installare il file a dispetto della ragione menzionata nel file package.mask (ubicato di default in /usr/porta= ge/profiles), aggiungere la stessa identica linea in /e= tc/portage/package.unmask.=20

Per esempio, se =3Dnet-mail/hotwayd-0.8 =C3=A8 mascherato, si pu=C3= =B2 comunque installarlo aggiungendo la stessa identica linea nel file package.unmask:

=3Dnet-mail/hotwayd-0.8
Il file package.mask

Se non si vuole che Portage installi un certo pacchetto o una specifica ver= sione di un pacchetto, lo si pu=C3=B2 mascherare autonomamente aggiungendo una ri= ga appropriata in /etc/portage/package.mask.

Per esempio, se non si vuole che Portage installi nuove versioni del kernel= dopo gentoo-sources-2.6.8.1, si aggiunga la seguente linea a package.mask:

>sys-kernel/gentoo-sources-2.6.8.1
--Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/xml; name=hb-portage-diverttree.xml Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=hb-portage-diverttree.xml 1.3 11 Ottobre 2005
Usare un Portage Tree Subset Escludere pacchetti e/o categorie

Si possono selettivamente aggiornare certe categorie/pacchetti ed ignorarne altre/i facendo in modo che rsync escluda categorie/pacchetti durante la fase di emerge --sync.

Di default, rsync controlla il contenuto di=20 /etc/portage/rsync_excludes (se esiste) per vedere quali categorie o pacchetti non si vogliono aggiornare con rsync.

Si noti comunque che questo pu=C3=B2 portare ad avere problemi di dipendenz= e nuove, aggiornando pacchetti che potrebbero dipendere da pacchetti nuovi ma esclus= i.

Aggiungere ebuild non ufficiali Definizione di una propria directory Portage

Il Portage pu=C3=B2 usare ebuild che non sono disponibili attraverso l'albe= ro ufficiale. Per far questo, si pu=C3=B2 creare una nuova directory (per e= sempio /usr/local/portage) entro la quale memorizzare gli ebuild di t= erze parti usando la stessa struttura delle directory dell'albero del Porta= ge.

Si definisce quindi la variabile PORTDIR_OVERLAY in /etc/make.conf affinch=C3=A9 punti alla directory creata precedentemente. Usando Port= age dopo queste modifiche, si potranno usare questi nuovi ebuild senza che vengano rimossi o sovrascritti da un nuovo emerge --sync.

=09 Lavorare con diversi overlay=09 =09 =09

=09 Per gli utenti che sviluppano su diversi strati, testano pacchetti prima di porli nell'albero di Portage o vogliono semplicemente usare ebuild= non ufficiali di varie sorgenti, il pacchetto=20 app-portage/gentoolkit-dev fornisce=09 gensync, uno strumento che aiuta a mantenere aggiornati gli overlay repository.

=09 =09

=09 Con gensync si possono aggiornate tutti i repository in una = volta sola o selezionare solo alcuni di essi. Ogni repository dovrebbe aver= e un=20 file .syncsource nella directory di configurazione /etc/ge= nsync/ che contiene l'ubicazione del repository, il nome, l'ID, ecc.

=09 =09

=09 Si supponga di avere due repository aggiuntivi chiamati java ( per lo sviluppo di ebuild java) e entapps (per le applicaz= ioni sviluppate per la propria azienda), si potranno aggiornare nel seguente mod= o:

=09 =09
=09
 	 # gensync java entapps=09
 	 
=09 =09 =09
Software non mantenuto dal Portage Usare il Portage con software proprietario

In alcuni casi si pu=C3=B2 voler configurare, installare e manutenere softw= are proprietario senza dover automatizzare il processo del Portage anche se Portage pu=C3=B2 provvedere il titolo software. Casi conosciuti sono sorgen= ti del kernel e driver nvidia. Si pu=C3=B2 configurare Portage in modo tale ch= e=20 sappia che certi pacchetti sono stati installati manualmente nel sistema. Questo processo =C3=A8 chiamato injecting ed =C3=A8 supportato dal P= ortage attraverso il file /etc/portage/profile/package.provided.

Per esempio, per informare il Portage che=20 vanilla-sources-2.6.11.6 =C3=A8 stato installato manualmente, aggiun= gere la seguente linea a /etc/portage/profile/package.provided:

vanilla-sources-2.6.11.6
--Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/xml; name=hb-portage-tools.xml Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=hb-portage-tools.xml 1.4 28 Luglio 2005
etc-update

etc-update =C3=A8 un tool il cui scopo =C3=A8 di installare i file ._cfg0000_<name> attraverso un'interfaccia che permette l'installazione interattiva e l'installazione automatica dei file di configurazione non importanti. I file ._cfg0000_<name> sono generati dal Portage quando vuole sovrascrivere un file in una directory protetta dalla variabile CONFIG_PROTECT.

Eseguire etc-update =C3=A8 molto semplice:

# etc-update

Dopo l'installazione dei file di configurazione non importanti, viene visualizzata una lista di file protetti che dovrebbero essere aggiornati. In fondo alla lista viene richiesto il da farsi tra le seguenti possibili opzioni:

Please select a file to edit by entering the corresponding number.
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i'):

Se si sceglie -1, si provoca l'uscita immediata di etc-update= =20 senza aver eseguito alcun cambiamento. Con le scelte -3 o -5, tutti i file di configurazione listati verrano sovrascritti con le nuove versioni. E' perci=C3=B2 molto importante selezionare prima i file di configurazione che non si vorrebbero aggiornare automaticamente. Questo si pu=C3=B2 fare semplicemente digitando il numero listato alla sini= stra del file di configurazione.

Come esempio selezioniamo il file di configurazione /etc/pear.conf:

Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
[...]
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again

Si possono ora vedere le differenze tra i due file. Se si pensa che il file possa venire aggiornato senza problemi, digitare 1. Se si pensa che l'aggiornamento non sia necessario o non provveda nuove o utili informazion= i, digitare 2. Se si vuole aggiornare il file di configurazione corrente in modo interattivo, digitare 3.

Non ci sono punti a favore della fusione interattiva. Per completezza, segue la lista di comandi che possono essere usati mentre si sta=20 interattivamente fondendo i due file. Vengono visualizzate due linee (quella originale e quella proposta nell'aggiornamento) e la richiesta sul da farsi tra uno dei seguenti comandi:

ed:     Edit then use both versions, each decorated with a header.
eb:     Edit then use both versions.
el:     Edit then use the left version.
er:     Edit then use the right version.
e:      Edit a new version.
l:      Use the left version.
r:      Use the right version.
s:      Silently include common lines.
v:      Verbosely include common lines.
q:      Quit.

Una volta terminato l'aggiornamento dei file di configurazione importanti, si pu=C3=B2 procedere all'aggiornamento automatico dei restanti file, etc-update terminer=C3=A0 la sua esecuzione quando non ci saranno pi= =C3=B9 file di configurazione da aggiornare.

dispatch-conf

Usando dispatch-conf si possono installare gli aggiornamenti dei file di configurazione mentre si tiene traccia di tutte le modifiche. dispatch-conf memorizza le differenze tra i file di configurazione come patch o usando il sistema di revisione RCS.

Come con etc-update, viene richiesto di mantenere li file di configu= razione invariato, usare il nuovo file, editare il file corrente o fondere le modif= iche interattivamente. Comunque, dispatch-conf possiede anche alcune caratteristiche aggiuntive:

  • Vengono aggiornati automaticamente i file di configurazione le cui modi= fiche coinvolgono solo commenti.
  • Vengono automaticamente aggiornati i file di configurazione che differi= scono solo per la quantit=C3=A0 di spazi.

Accertarsi di editare /etc/dispatch-conf.conf e di creare la directory referenziata dalla variabile archive-dir.

Per maggiori informazioni, consultare le pagine di manuale di dispatch-c= onf:

$ man dispatch-conf
quickpkg

Con quickpkg si possono creare archivi di pacchetti che sono gi=C3=A0 installati sul sistema. Questi archivi possono essere usati come pacchetti precompilati. L'uso di quickpkg =C3=A8 estremamente semplice, basta = aggiungere i nomi dei pacchetti che si vuole archiviare.

Per esempio, se si vogliono archiviare curl, arts e procp= s:

# quickpkg curl arts procps

I pacchetti precostruiti vengono memorizzati in $PKGDIR/All (/usr/portage/packages/All di default). Link simbolici che puntano a questi pacchetti sono posti in $PKGDIR/<category>.

--Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/xml; name=hb-portage-configuration.xml Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=hb-portage-configuration.xml 1.4 22 Gennaio 2005
Configurazione del Portage

Si =C3=A8 potuto notare come il Portage sia configurabile attraverso numero= se variabili che si possono definire in /etc/make.conf. Si faccia riferimento alle pagine man di make.conf per maggiori e pi=C3=B9 complete informazioni:

$ man make.conf
Opzioni specifiche per la compilazione Opzioni per la configurazione e la compilazione

Quando Portage compila un'applicazione, passa il contenuto delle seguenti variabili al compilatore e allo script configure:

  • CFLAGS & CXXFLAGS definisce le flag per i compilatori C e C++.
  • CHOST definisce l'informazione dell'host per lo script configure dell'a= pplicazione.
  • MAKEOPTS =C3=A8 passata al comando make e di solito definisce l'ammontare del parallelismo usato durante la compilazione. Maggiori inform= azioni sulle opzioni di make possono essere trovate nella pagina man di make.

Anche la variabile USE viene usata durante la configurazione e la compilazi= one ma =C3=A8 gi=C3=A0 stata spiegata minuziosamente nei precedenti capitoli.

Opzioni di emersione

Quando Portage deve emergere una nuova versione di un certo software, rimuover=C3=A0 i file obsoleti delle vecchie versioni dal sistema. Portage aspetta cinque secondi prima di rimuovere le vecchie versioni. Questi cinque secondi sono definiti dalla variabile CLEAN_DELAY.

Protezione dei file di configurazione Protezione delle locazioni del Portage

Portage sovrascrive i file provvisti dalle nuove versioni di un software se i file non sono memorizzari in una locazione protetta. Queste locazioni protette sono definite dalla variabile CONFIG_PROTECT e so= no generalmente locazioni di file di configurazione. La lista delle directory =C3=A8 separata da spazi.

Un file che avrebbe dovuto essere scritto in tale locazione protetta viene rinominato e l'utente viene avvertito della presenza di una nuova versione del (presumibilmente) file di configurazione.

Si pu=C3=B2 avere la definizione corrente di CONFIG_PROTECT attraverso l'ou= tput di emerge --info:

$ emerge --info | grep 'CONFIG_PROTECT=3D'

Maggiori informazioni sulla protezione dei file di configurazione del Porta= ge =C3=A8 disponibile attraverso emerge

$ emerge --help config
Escludere directory

Per 'sproteggere' certe sottodirectory da locazioni protette si pu=C3=B2 us= are la variabile CONFIG_PROTECT_MASK.

Opzioni per il download Ubicazione dei server

Quando le informazioni o i dati richiesti non sono disponibili sul sistema, Portage cerca di recuperarli da Internet. L'ubicazione dei server per le=20 varie informazioni e i canali dati sono definite attraverso le seguenti=20 variabili:

  • GENTOO_MIRRORS definisce la lista dei server che contengono codice sorg= ente (distfiles)
  • PORTAGE_BINHOST definisce un particolare server che contiene pacchetti precompilati per il sistema

Una terza definizione coinvolge l'ubicazione del server rsync usato quando si aggiorna l'albero del Portage:

  • SYNC definisce un particolare server che Portage usa per aggiornare il proprio albero

Le variabili GENTOO_MIRRORS e SYNC possono essere definite attraverso il comando mirrorselect. Sar=C3=A0 necessario emergere l'applicazione p= rima dell'uso com emerge mirrorselect. Per maggiori informazioni ved= ere l'help online di mirrorselect:

# mirrorselect --help

Se il nostro ambiente richiede di usare un proxy server, si possono usare le variabili HTTP_PROXY, FTP_PROXY e RSYNC_PROXY per dichiarare il proxy server.

Comandi per il download

Quando Portage necessita di scaricare codice sorgente, usa il comando wget di default. E' possibile modificarlo attraverso la variabile FETCHCOMMAND.

Portage riesce e riprendere download parziali di codice sorgente. Per questo usa wget, ma si pu=C3=B2 alterare con la variabili RESUMECOMMAND.

Occorre assicurarsi che sia FETCHCOMMAND che RESUMECOMMAND memorizzino il=20 codice sorgente nella collocazione corretta. Per questo si possono usare=20 le variabile \${URI} e \${DISTDIR} per puntare all'ubicazione del codice sorgente e dei distfiles rispettivamente.

Si possono anche definire dei gestori di protocollo specifici con FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP, ecc.

Configurazione di rsync

Non si pu=C3=B2 alterare il comando rsync usato dal Portage per aggiornare = il proprio albero, ma si possono definire delle variabili relative al comando rsync:

  • RSYNC_EXCLUDEFROM punta ad un file contenente la lista dei pacchetti e/o categorie che rsync dovrebbe ignorare durante il processo di aggiorname= nto
  • RSYNC_RETRIES definisce quante volte rsync dovrebbe provare a connetter= si al mirror definito dalla variabile SYNC prima di rinunciarvi. Il valore pre= definito per questa variabile =C3=A8 3.
  • RSYNC_TIMEOUT definisce i secondi di inattivit=C3=A0 di una connessione= rsync prima di avere un timeout. Il valore predefinito per questa variabile =C3= =A8 180 ma utenti dialup probabilmente dovrebbero aumentare i secondi a 300 o pi=C3= =B9.
Configurazione di Gentoo Selezione di una branca

Si pu=C3=B2 cambiare la branca predefinita con la variabile ACCEPT_KEYWORDS= il cui valore di default =C3=A8 l'architettura stabile del sistema. Maggiori infor= mazioni sulle branche di Gentoo possono essere trovate nela prossimo capitolo.

Caratteristiche del Portage

Si possono attivare certe caratteristiche del Portage con la variabile FEATURES. Le caratteristiche del Portage sono state discusse nei capitoli precedenti, come in Caratteristiche del Portage .

Comportamento del Portage Gestione delle risorse

Con la variabile PORTAGE_NICENESS si pu=C3=B2 aumentare o ridurre il valore= nice con cui viene eseguito il Portage. Il valore di PORTAGE_NICENESS viene aggiunto al valore corrente di nice.

Per maggiori informazioni sui valori di nice fare riferimento alle pagine man del nice:

$ man nice
Comportamento dell'output

La variabile NOCOLOR, il cui valore predefinito =C3=A8 "false", definisce se Portage deve disabilitare l'uso di output colorato.

--Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/xml; name=hb-portage-files.xml Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=hb-portage-files.xml 1.7 27 Giugno 2005
I file del Portage Direttive per la configurazione

Portage usa le configurazioni predefinite memorizzate in /etc/make.gl= obals. Scorrendo questo file, si noter=C3=A0 che tutta la configurazione del Porta= ge =C3=A8 gestita da variabili. Quali sono queste variabili ed il loro significato =C3=A8 descritto in seguito.

Dato che molte direttive di configurazione differiscono da architettura ad architettura, Portage ha dei file di configurazione predefiniti che fann= o=20 parte del proprio profilo. Il proprio profilo =C3=A8 indicato dal link simbolico /etc/make.profi= le; le configurazioni del Portage sono definite dai file in ma= ke.defaults del proprio profilo e dei profili parenti. Verranno presi in considerazione i profili e la directory /etc/make.profile.

Se si sta pianificando la modifica di una variabile di configurazione non alterate /etc/make.globals o make.defaults. Usare invece /etc/make.conf che ha la precedenza sui file precedenti. Un file di esempio che non viene preso in considerazione dal Po= rtage, si trova in /etc/make.conf.example. =20

Si pu=C3=B2 anche definire una variabile di configurazione del Portage come= una variabile ambiente, ma non =C3=A8 raccomandato.

Informazioni specifiche sul profilo

Si =C3=A8 gi=C3=A0 avuto a che fare con la directory /etc/make.profil= e. Questa non =C3=A8 esattamente una directory ma un link simbolico ad un prof= ilo, di default uno all'interno di /usr/portage/profiles anche se potete crearne uno vostro e farlo puntare a questo. Il profilo cui punta il link =C3=A8 il profilo al quale aderisce il sistema.

Un profilo contiene informazioni specifiche dell'architettura cos=C3=AC come una lista di pacchetti che appartengono al sistema che corrisponde a=20 questo profilo, una lista di pacchetti che non girano su questo profilo (o sono mascherati), ecc.

Informazioni specifiche dell'utente

Quando si vuole sovrascrivere il comportamento del Portage riguardo l'installazione del software, si dovrnno editare file all'interno di /etc/portage.=20 Si =C3=A8 incoraggiati ad usare i file all'interno di /etc/portage e scoraggiati ad usare variabili ambiente.

All'interno di /etc/portage si possono creare i seguenti file:

  • package.mask una lista di pacchetti che si vuole che il Po= rtage non installi
  • package.unmask una lista di pacchetti che si vuole install= are anche se gli sviluppatori di Gentoo scoraggiano dal farlo
  • package.keywords una lista di pacchetti che si vuole insta= llare anche se il pacchetto non =C3=A8 stato trovato disponibile per l'architett= ura del sistema
  • package.use una lista di flag USE che si vuole usare per certi pacchetti senza che l'intero sistema ne sia coinvolto=20

Maggiori informazioni sulla directory /etc/portage=20 e la lista completa dei file che vi si possono creare, pu=C3=B2 essere trovata nella pagina man del Portage:

$ man portage
Modificare l'ubicazione dei file e delle directory del Portage</titl= e> <body> <p> Come menzionato precedentemente i file di configurazione non possono=20 essere memorizzati in directory diverse da quelle predefinite. Comunque, Portage usa molte altre ubicazioi per vari scopi: memorizzazione del codice sorgente, directory di compilazione, albero del Portage, ... </p> <p> Tutti questi scopi hanno ubicazioni predefinite ma che possono essere alter= ate attraverso <path>/etc/make.conf</path>.=20 Il resto di questo capitolo spiega quali sono le ubicazioni per scopi speci= ali usate dal Portage e come alterare la loro collocazione nel filesystem. </p> <p> Questo documento non deve essere usato come un riferimento. Se si desidera avere una panoramica, fare riferimento alle pagine man del Portage e di <path>make.conf</path>: </p> <pre caption=3D"Leggere le pagine man del Portage e del make.conf"> $ <i>man portage</i> $ <i>man make.conf</i> </pre> </body> </subsection> </section> <section> <title>Ubicazione dei file L'albero del Portage

L'ubicazione predefinita per l'albero del Portage =C3=A8 /usr/portage= . Questo =C3=A8 definito dalla variabile PORTDIR. Se si vuole mettere l'alber= o del Portage da qualche altra parte (alterando questa variabile), non ci si=20 deve dimenticare di modificare il link simbolico /etc/make.profile in accordo con la nuova ubicazione.

Se si altera la variabile PORTDIR, si possono voler modificare anche le seg= uenti variabili in quanto non noteranno il cambio di PORTDIR (a causa del modo di gestire le variabili del Portage): PKGDIR, DISTDIR, RPMDIR.

Binari precompilati

Anche se Portage non usa pacchetti precompilati di default, ha comunque un supporto esteso anche per questi. Quando si chiede al Portage di usare pacchetti precompilati, questi verranno cercati nella directory=20 /usr/portage/packages. Questa ubicazione =C3=A8 definita dalla variabile PKGDIR.

Codice Sorgente

Il codice sorgente delle applicazioni =C3=A8 memorizzato, di default, in /usr/portage/distfiles. Questa ubicazione =C3=A8 definita dalla = variabile DISTDIR.

File RPM

Ancge se Portage non usa file RPM, =C3=A8 possibile generarli usando il comando ebuild=20 (vedere L'applicazione ebuild). L'ubicazione di default per i file RPM =C3=A8 /usr/portage/rpm ed =C3=A8 definita dalla variabile RPMDIR.

Portage Database =20

Portage memorizza il proprio stato (quali pacchetti sono installati, che fi= le appartengono ad un dato pacchetto, ...) in /var/db/pkg. Non alterare questi file manualmente! Si potrebbe alterare la conosc= enza che il Portage ha del proprio sistema.

=20
=09 Portage Cache=09 =09 =09

=09 La cache di Portage (con la data di modifica, i pacchetti virtuali, l'informazione sull'albero delle dipendenze,...) viene memorizzata in /var/cache/edb. Questa locazione =C3=A8 realmente una cache: la si pu=C3=B2 rimuovere se non si sta eseguendo nessuna applica= zione collegata al portage.

=09 =09 =09
Compilare il software File temporanei

I file temporanei del Portage sono memorizzati di default in /var/tmp= . Questo =C3=A8 definito dalla variabile PORTAGE_TMPDIR.

Se si altera la variabile PORTAGE_TMPDIR, si potrebbe voler modificare anch= e le seguenti variabili dato che non noteranno la modifica di PORTAGE_TMPDIR (a= =20 causa di come Portage gestisce le variabili): BUILD_PREFIX.

Directory di compilazione

Portage crea specifiche directory di compilazione per ogni pacchetto emerso all'interno di /var/tmp/portage. Questa ubicazione =C3=A8 definita dalla vari= abile BUILD_PREFIX.

Ubicazione nel filesystem

Di default Portage installa tutti i file sul filesystem corrente (/), ma si pu=C3=B2 modificare questa definizione usando la va= riabile ambiante ROOT. =20

Caratteristiche di log Ebuild Logging

Portage pu=C3=B2 creare file di log per ebuild, ma solo quando la variabile= PORT_LOGDIR =C3=A8 definita con una locazione che sia scrivibile dall'uten= te portage. Il valore predefinito per questa variabile =C3=A8 nullo.

--Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh Content-Type: text/xml; name=hb-working-portage.xml Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=hb-working-portage.xml 1.51 30 Giugno 2005
Benvenuti in Portage

Portage =C3=A8 probabilmente l'innovazione di Gentoo pi=C3=B9 rilevante nel= la gestione software. La grande flessibilit=C3=A0 e l'enorme quantit=C3=A0 = di caratteristiche ne fanno uno dei migliori programmi per la gestione del software disponibili per Linux.

Portage =C3=A8 completamente scritto in Python e Bash e= perci=C3=B2 completamente visibile agli utenti essendo entrambi linguaggi di scripting.

Molti utenti useranno Portage attraverso il tool emerge. Questo capitolo non =C3=A8 un duplicato delle informazioni disponibili attraverso le pagine man di emerge. Per avere la lista completa delle opzioni di emerge, consultare la pagina man:

# man emerge
L'albero del Portage Gli ebuild

Quando si parla di pacchetti si intendono spesso titoli software che sono disponibili agli utenti Gentoo attraverso l'albero del Portage. L'albero del Portage =C3=A8 una collezione di file ebuild che conten= gono tutte le informazioni necessarie al Portage per manutenere il software (installare, ricercare,....). Questi ebuild risiedono di default in /= usr/portage.

Ogni qualvolta si chiede al Portage di eseguire alcune azioni riguardanti i titoli software, vengono usati gli ebuild del sistema come base. Diviene, cos=C3=AC, importante aggiornare regolarmente gli ebuild del siste= ma in modo tale che Portage sia a conoscenza del nuovo software, degli aggiorn= amenti, ecc.

Aggiornamento dell'albero del Portage

L'albero del Portage viene di solito aggiornato con rsync, una utility per il trasferimento incrementale di file. L'aggiornameto =C3=A8 realmente semplice dato che il comando emerge fornisce un'interfaccia per rsync:

# emerge --sync

Se non si riesce ad usare rsync a causa di un firewall si pu=C3=B2 aggiorna= re l'albero del Portage usando lo snapshot che viene generato giornalmente. Il tool emerge-webrsync scarica ed installa automaticamente l'ultimo snapshot dai sistemi Gentoo.

# emerge-webrsync
Manutenzione del software Ricerca del software

La ricerca dei titoli software attraverso l'albero del Portage si esegue utilizzando la funzione di ricerca di emerge. Di default emerge --search restituisce i nomi dei pacchetti i cui titoli corrispondono (per intero o parzialmente) a quelli forniti per la ricerca.

Per esempio, dovendo cercare tutti i pacchetti che hanno "pdf" nel loro nome:

$ emerge --search pdf

Se si vuole cercare attraverso la descrizione si pu=C3=B2 usare l'opzione --searchdesc ( o -S):

$ emerge --searchdesc pdf

Da uno sguardo all'output si nota che vengono fornite diverse informazioni. I campi sono chiaramente identificati cos=C3=AC che non saranno esaminati:

*  net-print/cups-pdf
      Latest version available: 1.5.2
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 15 kB
      Homepage:    http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
      Description: Provides a virtual printer for CUPS to produce PDF files.
      License:     GPL-2
Installazione del software

Una volta trovato il titolo del software che interessa, lo si pu=C3=B2 faci= lmente installare con emerge facendolo seguire dal nome del pacchetto. Per esempio, per installare gnumeric:

# emerge gnumeric

Dato che molte applicazioni dipendono da altre ogni tentativo di installare certi pacchetti software potrebbe portare all'installazione di alcuni pacchetti aggiuntivi. Se si vuol sapere cosa verr=C3=A0 installato dal Portage quando viene richiesta un'installazione, si deve aggiungere l'opzio= ne --pretend. Per esempio:

# emerge --pretend gnumeric

Quando si chiede al Portage di installare un pacchetto, verr=C3=A0 scaricat= o il codice sorgente necessario da internet e memorizzato di default in=20 /usr/portage/distfiles. Il pacchetti verr=C3=A0 quindi scompre= sso, compilato e installato. Se si vuole che Portage scarichi solo i sorgen= ti senza installarli, si aggiunga al comando emerge l'opzione --fetchonly<= /c>:

# emerge --fetchonly gnumeric
Trovare la documentazione di pacchetti installati=09 =09 =09

=09 Molti pacchetti forniscono la propria documentazione. Alcune volte il flag USE doc determina se la documentazione del pacchetto verr=C3=A0 installata o no. Si pu=C3=B2 controllare l'esistenza di = un flag USE doc con il comando emerge -vp=09 <nome pacchetto>.=09

=09 =09
=09
 	 (Naturalmente, alsa-lib =C3=A8 solamente un esempio.)=
=09
 	 # emerge -vp alsa-lib=09
 	 [ebuild  N    ] media-libs/alsa-lib-1.0.9_rc3  +doc -jack 674 kB=09
 	 
=09 =09

=09 Si pu=C3=B2 abilitare o disabilitare il flag USE doc sia glo= balmente nel file /etc/make.conf o per pacchetto nel file /etc/portage/package.use.=20 Il capitolo USE Flag copre in dettaglio questo= aspetto.

=09 =09

=09 Una volta che il pacchetto =C3=A8 stato installato, la sua document= azione viene generalmente trovata in una sottodirectory col nome del pacchetto nella directory /usr/share/doc. Si pu=C3=B2 avere la lista dei file installati col tool equery che fa parte del pacchetto=20 app-portage/gentoolkit .=09

=09 =09
=09
 	 # ls -l /usr/share/doc/alsa-lib-1.0.9_rc3=09
 	 total 28=09
 	 -rw-r--r--  1 root root  669 May 17 21:54 ChangeLog.gz=09
 	 -rw-r--r--  1 root root 9373 May 17 21:54 COPYING.gz=09
 	 drwxr-xr-x  2 root root 8560 May 17 21:54 html=09
 	 -rw-r--r--  1 root root  196 May 17 21:54 TODO.gz=09
 	 =09
 	 (Alternativamente, usare equery per localizzare file interessan=
ti:)=09
 	 # equery files alsa-lib | less=09
 	 media-libs/alsa-lib-1.0.9_rc3=09
 	 * Contents of media-libs/alsa-lib-1.0.9_rc3:=09
 	 /usr=09
 	 /usr/bin=09
 	 /usr/bin/alsalisp=09
 	  (output troncato)
 	 
=09 =09 =09
Rimozione del software

Se si vuole rimuovere un pacchetto dal sistema, usare emerge --unmerge. Questo comando rimuover=C3=A0 tutti i file installati dal pacchetto=20 eccetto i file di configurazione che sono stati alterati dopo l'installazione. In questo modo si permette di continuare a lavorare con il pacchetto nel caso si decidesse di installarlo= =20 nuovamente.

Attenzione: Portage non controller=C3=A0 se il pacchetto che si vuole rimuovere sia richiesto da un altro pacchetto. Verr=C3=A0 solo emesso un avviso del fatto che la rimozione di pacchetti im= portanti potrebbe danneggiare il sistema.

# emerge --unmerge gnumeric

Quando si rimuove un pacchetto dal sistema, le sue dipendenze saranno=20 lasciate. Per far trovare al Portage tutte le dipendenze che potrebbero essere rimosse, usare la funzionalit=C3=A0 --depclean di emerge. Se ne parler=C3=A0 in seguito.

Aggiornare il software

Per mantenere il sistema in perfetta forma (e non solo con gli ultimi aggiornamenti sulla sicurezza) si dovr=C3=A0 mantenere aggiornato il sistema regolarmente. Dato che Portage controlla gli ebuild dell'albero del Portage si dovr=C3=A0 prima aggiornare l'albero. Quindi, si potr=C3=A0 aggiornare i= l sistema con emerge --update world:

# emerge --update world

Portage cercher=C3=A0 quindi le nuove versioni delle applicazioni installat= e. Verranno comunque verificate solo le versioni per le applicazioni che=20 si sono esplicitamente installate e non le dipendenze. Se si vuole aggiornare ogni singolo pacchetto del sistema, occorre aggiungere l'argomento --deep:

# emerge --update --deep world

=09 Dato che aggiornamenti che riguardano la sicurezza possono essere correlati a pacchetti che non si sono esplicitamente installati nel sistema (ma che sono stati installati quali dipendenze di altri program= mi), si raccomanda di eseguire questo comando una volta ogni tanto.

Se =C3=A8 stato alterato qualche USE f= lag si pu=C3=B2 aggiungere l'opzione --newuse. Portage verificher=C3=A0 se la modifica richiede l'installazione di nuovi pacchetti o la ricompilazi= one di quelli esistenti:

# emerge --update --deep --newuse world
Metapacchetti

Alcuni pacchetti presenti nell'albero del Portage non hanno un contenuto re= ale ma sono usati per installare una collezione di pacchetti. Per esempio, il pacchetto kde installa un ambiente KDE sul sistema ricercando tra i vari pacchetti legati al KDE come dipendenze.

La rimozione di un tale pacchetto dal sistema usando emerge --unmerge, non avr=C3=A0 successo dato che le numerose dipendenze rimarranno sul siste= ma.

Portage ha anche la funzionalit=C3=A0 di rimozione delle dipendenze orfane,= ma dato che la disponibilit=C3=A0 del software =C3=A8 dinamicamente dipendente, occorre= prima aggiornare completamente l'intero sistema, includendo, se ci sono state, le modifiche alle flag USE. Quindi sar=C3=A0 possibile eseguire emerge --de= pclean per rimuovere le dipendenze orfane. Fatto ci=C3=B2, ci sar=C3=A0 bisogno di= =20 ricompilare le applicazioni che erano dinamicamente linkate al software rimosso ma non pi=C3=B9 richiesto.

Tutto ci=C3=B2 pu=C3=B2 essere fatto con un seguenti tre comandi:

# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild

revdep-rebuild viene provveduto col pacchetto gentoolkit, che= deve essere quindi emerso prima:

# emerge gentoolkit
Errori durante l'uso del Portage Slot, virtualit=C3=A0, branche, architetture e profili

Portage =C3=A8 estremamente potente e supporta molte caratteristiche che altri gestori di software omettono. Si vedranno ora altri aspetti del Portage senza andare troppo nei dettagli.

Portage permette la coesistenza di differenti versioni dello stesso pacchet= to. A differenza di altre distribuzioni che tendono a chiamare i propri pacchet= ti con le versioni (come freetype e freetype2), Portage usa una tecnica chiamata SLOT. Un ebuild dichiara un certo SLOT per le propr= ie versioni. Ebuild con SLOT differenti possono coesistere sullo stesso sistem= a. Per esempio, il pacchetto freetype ha un ebuild con SLOT=3D"1" e SLOT=3D"2".

Ci sono anche pacchetti che provvedono la stessa funzionalit=C3=A0 ma con un'implementazione diversa. Per esempio, metalogd, sysklogd e syslog-ng, tutti gestori di eventi di sistema. Applicazioni che fa= nno assegnamento sulla disponibilit=C3=A0 di un gestore di eventi di sistema, n= on=20 possono dipendere da uno in particolare. Per esempio, metalogd, come= altri sistemi di gestione di eventi, sono tutti un'ottima scelta. Portage permette l'uso di virtualit=C3=A0: ogni sistema di gestione degli eventi prov= vede un virtual/syslog in modo tale che le applicazioni possano dipendere da tale virtual/syslog.

Il software all'interno dell'albero del Portage, pu=C3=B2 risiedere in diff= erenti branche. Di default il sistema accetta solo pacchetti che Gentoo giudica stabili. Molti nuovi software una volta raccomandati, vengono aggiunti ad una branca di test, il che significa che sar=C3=A0 necessario procedere= =20 ad ulteriori verifiche prima di marcarli come stabili. Anche se gli ebuild per tali software sono presenti nell'albero del Portage, non vengono aggior= nati prima di raggiungere la branca stabile.

Alcuni software sono disponibili solo per alcune architetture. Oppure il software non gira su altre architetture o ha necessit=C3=A0 di essere ulteriormente testato o gli sviluppatori che raccomandano il software non sono in grado di verificare se il pacchetto gira su differenti architet= ture.

Ogni installazione di Gentoo aderisce ad un certo profilo che contie= ne tra le altre informazioni, la lista dei pacchetti che sono richiesti affinch=C3=A9 un sistema funzioni normalmente.

Pacchetti bloccati
[blocks B     ] mail-mta/ssmtp (from pkg mail-mta/postfix-2.2.2-r1)
!!! Error: the mail-mta/postfix package conflicts with another package.
!!!        both can't be installed on the same system together.
!!!        Please use 'emerge --pretend' to determine blockers.=20

Gli ebuild contengono specifici campi che informano il Portage sulle dipendenze. Ci sono due possibili dipendenze: dipendenze in fase di compila= zione dichiarate in DEPEND e dipendenze per l'esecuzione dichiarate = in RDEPEND. Quando una di queste dipendenze marca un pacchetto o un virtuale come non compatibile, questo viene bloccato.

Per correggere il blocco, si pu=C3=B2 scegliere tra il non installare il pa= cchetto o rimuovere prima il pacchetto che causa il conflitto. Nel precedente esempio si pu=C3=B2 scegliere tra il non installare postfix o rimuov= ere prima ssmtp.

=09 E' anche possibile che due pacchetti che devono essere ancora installati siano in conflitto tra loro. In questo raro caso, si dovrebbe capire perch=C3=A9 si vogliono installare entrambi dato che in molti casi pu=C3=B2= bastare l'installazione di un solo pacchetto. Se non =C3=A8 questo il caso, aprire = un bug sul Gentoo bugtracking system.=09

Pacchetti mascherati
!!! all ebuilds that could satisfy "bootsplash" have been masked.=20
!!! possible candidates are:

- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- media-video/ati-gatos-4.3.0 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)

Quando si desidera installare un pacchetto che non =C3=A8 disponibile per i= l=20 nostro sistema, si ricever=C3=A0 un errore di pacchetto mascherato. Si dovr=C3=A0 quindi installare un'applicazione differente disponibile per il nostro sistema oppure aspettare finch=C3=A9 il pacchetto divenga disponibile. C'=C3=A8 sempre una ragione perch=C3=A9 un pacchetto viene mas= cherato:

  • ~arch keyword significa che l'applicazione non =C3=A8 stata suff= icientemente testata per essere inserita nella branca stabile. Aspettare alcuni giorni o alcune settimane e provare nuovamente.
  • -arch keyword o -* keyword significa che l'applicazione n= on funziona sulla nostra architettura. Se si crede che il pacchetto giri, a= prire un=20 bug sul bugzilla di Gentoo.
  • missing keyword significa che l'applicazione non =C3=A8 ancora s= tata testata sulla nostra architettura. Chiedere al gruppo che si occupa del porting per l'architettura di testare il pacchetto o testarlo per loro e riportare i risultati sul=20 bugzilla di Gentoo.
  • package.mask significa che il pacchetto =C3=A8 corrotto, instabi= le o difettoso ed =C3=A8 stato deliberatamente marcato come non-usare.
  • profile significa che il pacchetto non =C3=A8 stato trovato appr= opriatamente nel vostro profilo. Le applicazioni potrebbero danneggiare il sistema se installate o sono solo non compatibili col profilo in uso.
Dipendenze omesse
emerge: there are no ebuilds to satisfy ">=3Dsys-devel/gcc-3.4.2-r4".

!!! Problem with ebuild sys-devel/gcc-3.4.2-r4
!!! Possibly a DEPEND/*DEPEND problem.=20

L'applicazione che si sta provando ad installare dipende da un altro=20 pacchetto che non =C3=A8 disponibile per il sistema. Controllare su bugzilla se la cosa =C3=A8 segnalata altrimenti la si pu=C3=B2 riportare. A meno che non si stia mescolando le branche, questo non dovrebbe accadere ed =C3=A8 perci=C3=B2 un bug.

Nomi di ebuild ambigui
!!! The short ebuild name "aterm" is ambiguous.  Please specify
!!! one of the following fully-qualified ebuild names instead:

    dev-libs/aterm
    x11-terms/aterm

L'applicazione che si vuole installare ha un nome che corrisponde con un al= tro pacchetto. Occorre specificare la categoria. Portage informa sulle scelte possibili.

Dipendenze circolari
!!! Error: circular dependencies:=20

ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-=
7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-=
1.1.15-r2=20

Due (o pi=C3=B9) pacchetti che si vuole installare dipendono l'uno dall'alt= ro e non possono perci=C3=B2 essere installati. Questo =C3=A8 probabilmente un bug d= el Portage. Provare ad eseguire un rsync e provare nuovamente. Si pu=C3=B2 anche contro= llare su bugzilla se =C3=A8 un caso c= onosciuto oppure no, nel qual caso lo si pu=C3=B2 riportare.

Scaricamento non riuscito
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered.  Please see above for details.

Portage non =C3=A8 riuscito a scaricare i sorgenti per una data applicazione e prover=C3=A0 a proseguire con l'installazione delle altre applicazioni se ci sono. Questo problema pu=C3=B2 essere causato da un mirror che non = =C3=A8 stato sincronizzato appropriatamente o perch=C3=A9 l'ebuild punta ad una lo= cazione incorretta. Il server dove risiedono i sorgenti potrebbe anche non essere=20 disponibile per qualche ragione.

Riprovare dopo un'ora e vedere se la situazione persiste.

Protezione dei profili di sistema
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.

Si =C3=A8 richiesto la rimozione di un pacchetto che fa parte del core del sistema. Tale pacchetto =C3=A8 listato nel vostro profile come richiesto e dovrebbe perci=C3=B2 non essere rimosso dal sistema.

--Multipart_Thu__20_Oct_2005_12_29_18_+0200_zyhBz3+EOXMEVHQh-- -- gentoo-docs-it@gentoo.org mailing list