[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
1. File e Directory
Indice:
1.a. I file del Portage
Direttive per la configurazione
Portage usa le configurazioni predefinite memorizzate in
/etc/make.globals. Scorrendo questo file, si noterà che tutta la
configurazione del Portage è gestita da variabili. Quali sono queste variabili
ed il loro significato è descritto in seguito.
Dato che molte direttive di configurazione differiscono da architettura ad
architettura, Portage ha dei file di configurazione predefiniti che fanno parte
del proprio profilo. Il proprio profilo è indicato dal link simbolico
/etc/portage/make.profile; le configurazioni del Portage sono definite dai
file in make.defaults del proprio profilo e dei profili parenti.
Verranno presi in considerazione i profili e la directory
/etc/portage/make.profile.
Se si sta pianificando la modifica di una variabile di configurazione non
alterare /etc/make.globals o make.defaults. Usare
invece /etc/portage/make.conf che ha la precedenza sui file precedenti. C'è
anche un file chiamato /usr/share/portage/config/make.conf.example, che, come implica il
nome stesso, non è nient'altro che un esempio di configurazione, il quale viene
ignorato completamente da Portage.
Si può anche definire una variabile di configurazione di Portale come una
variabile ambiente, ma non è raccomandato.
Informazioni specifiche sul profilo
Si è già avuto a che fare con la directory /etc/portage/make.profile.
Questa non è esattamente una directory ma un link simbolico ad un profilo, come
impostazione predefinita è uno di quelli all'interno di
/usr/portage/profiles anche se potete crearne uno vostro e farlo
puntare a questo. Il profilo a cui punta il link è il profilo al quale aderisce
il sistema.
Un profilo contiene informazioni specifiche dell'architettura così come una
lista di pacchetti che appartengono al sistema che corrisponde a 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 di Portage riguardo
l'installazione del software, si dovranno modificare i file all'interno di
/etc/portage. Si è 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 Portage
non installi
-
package.unmask una lista di pacchetti che si vuole installare
anche se gli sviluppatori di Gentoo scoraggiano dal farlo
-
package.accept_keywords una lista di pacchetti che si vuole installare
anche se il pacchetto non è (ancora) considerato adatto per la propria
architettura di sistema
-
package.use una lista di flag USE che si vuole usare per certi
pacchetti senza che l'intero sistema ne sia coinvolto
Tuttavia non devono per forza essere dei file; possono essere anche delle
directory contenenti un file per pacchetto. Maggiori informazioni sulla
directory /etc/portage e la lista completa dei file che vi si
possono creare, può essere trovata nella pagina di manuale di Portage:
Codice 1.1: Leggere la pagina di manuale di Portage |
$ man portage
|
Modificare l'ubicazione dei file e delle directory di Portage
Come menzionato precedentemente i file di configurazione non possono essere
memorizzati in directory diverse da quelle predefinite. Comunque, Portage usa
molte altre ubicazioni per vari scopi: memorizzazione del codice sorgente,
directory di compilazione, albero di Portage, ...
Tutti questi scopi hanno ubicazioni predefinite ma che possono essere alterate
attraverso /etc/portage/make.conf. Il resto di questo capitolo spiega quali
sono le ubicazioni per scopi speciali usate da Portage e come alterare la loro
collocazione nel filesystem.
Questo documento non deve essere usato come un riferimento. Se si desidera avere
una panoramica, fare riferimento alle pagine man del Portage e di
make.conf:
Codice 1.2: Leggere le pagine man del Portage e del make.conf |
$ man portage
$ man make.conf
|
1.b. Ubicazione dei file
L'albero del Portage
L'ubicazione predefinita per l'albero del Portage è /usr/portage.
Questo è definito dalla variabile PORTDIR. Se si vuole mettere l'albero di
Portage da qualche altra parte (alterando questa variabile), non ci si deve
dimenticare di modificare il link simbolico /etc/portage/make.profile in
accordo con la nuova ubicazione.
Se si altera la variabile PORTDIR, si possono voler modificare anche le seguenti
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 in modo predefinito, ha comunque
un supporto esteso anche per questi. Quando si chiede al Portage di usare
pacchetti precompilati, questi verranno cercati nella directory
/usr/portage/packages. Questa ubicazione è definita dalla variabile
PKGDIR.
Codice Sorgente
Il codice sorgente delle applicazioni è memorizzato in modo predefinito
all'interno di /usr/portage/distfiles. Questa ubicazione è definita
dalla variabile DISTDIR.
Portage Database
Portage memorizza il proprio stato (quali pacchetti sono installati, che file
appartengono ad un dato pacchetto, ...) in /var/db/pkg.Non
alterare questi file manualmente! Si potrebbe alterare la conoscenza che il
Portage ha del proprio sistema.
Portage Cache
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 è realmente una cache: la si può
rimuovere se non si sta eseguendo nessuna applicazione collegata a portage.
1.c. Compilare il software
File temporanei
I file temporanei del Portage sono memorizzati in modo predefinito all'interno
di /var/tmp. Questo è definito dalla variabile PORTAGE_TMPDIR.
Se si altera la variabile PORTAGE_TMPDIR, si potrebbe voler modificare anche le
seguenti variabili dato che non noteranno la modifica di PORTAGE_TMPDIR (a
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 è definita dalla
variabile BUILD_PREFIX.
Ubicazione nel filesystem
Portage installa in modo predefinito tutti i file sul filesystem corrente
(/), ma si può modificare questa definizione usando la variabile
d'ambiente ROOT.
1.d. Caratteristiche di log
Ebuild Logging
Portage può creare file di log per ebuild, ma solo quando la variabile
PORT_LOGDIR è definita con una locazione che sia scrivibile dall'utente portage.
Il valore predefinito per questa variabile è nullo. Se non viene impostata
PORT_LOGDIR, non si riceveranno i log delle compilazioni con il log system
corrente benché si possano ricevere alcuni log dal nuovo elog. Se la
variabile PORT_LOGDIR è definita e si usa elog, si riceveranno i log di
compilazione e qualsiasi log salvato da elog, come spiegato di seguito.
In Portage è possibile avere un controllo fine su ciò che viene registrato nei
log con l'uso di
elog:
-
PORTAGE_ELOG_CLASSES: attraverso questa variabile si impostano i tipi di
messaggio che devono essere registrati. Si può usare qualsiasi combinazione
di info, warn, error, log e qa separata
da spazi.
-
info: Registra i messaggi "einfo" stampati da un ebuild
-
warn: Registra i messaggi "ewarn" stampati da un ebuild
-
error: Registra i messaggi "eerror" stampati da un ebuild
-
log: Registra i messaggi "elog" che si trovano in alcuni ebuild
-
qa: Registra i messaggi "QA notice" stampati da un ebuild
-
PORTAGE_ELOG_SYSTEM: attraverso questa variabili si seleziona il modulo(i)
per processare i messaggi di log. Se lasciata vuota, la registrazione dei
log viene disabilitata. Si può usare una qualsiasi combinazione di
save, custom, syslog, mail, save_summary
e mail_summary separata da spazi. Si deve selezionare almeno un
modulo per poter utilizzare elog.
-
save: Salva un log per pacchetto in
$PORT_LOGDIR/elog, o /var/log/portage/elog se
$PORT_LOGDIR non è definita.
-
custom: Passa tutti i messaggi ad un comando definito dall'utente
in $PORTAGE_ELOG_COMMAND; discusso di seguito.
-
syslog: Invia tutti i messaggi al sistema di log installato.
-
mail: Passa tutti i messaggi al mailserver definito dall'utente
in $PORTAGE_ELOG_MAILURI; discusso di seguito. Questa caratteristica di
elog richiede >=portage-2.1.1.
-
save_summary: Simile a save, ma unisce tutti i messaggi
in $PORT_LOGDIR/elog/summary.log, o
/var/log/portage/elog/summary.log se $PORT_LOGDIR non è
definita.
-
mail_summary: Simile a mail, ma manda tutti i messaggi in
una singola mail quando emerge termina l'operazione.
-
PORTAGE_ELOG_COMMAND: usata solo quando il modulo custom è
abilitato. Attraverso questa variabile si può specificare un comando per
processare i messaggi di log. Si possono usare due variabili: ${PACKAGE} per
il nome e la versione del pacchetto e ${LOGFILE} per il path assoluto del
file di log. Eccone un possibile uso:
-
PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
-
PORTAGE_ELOG_MAILURI: contiene i parametri per il modulo mail come
indirizzo, utente, password, mailserver e numero di porta. Il valore
predefinito è "root@localhost localhost".
-
Ecco un esempio per un server smtp che richiede username e password per
l'autenticazione su una particolare porta (la porta di default è la 25):
-
PORTAGE_ELOG_MAILURI="user@some.domain
username:password@smtp.some.domain:995"
-
PORTAGE_ELOG_MAILFROM: permette di impostare l'indirizzo "from" della mail
di log; se non viene impostata, il valore predefinito è "portage".
-
PORTAGE_ELOG_MAILSUBJECT: permette di creare il soggetto per le mail di log.
Si possono usare due variabili: ${PACKAGE} per mostrare il nome e la
versione del pacchetto e ${HOST} per il nome completo dell'host dove è in
esecuzione Portage.
-
Eccone un possibile uso:
-
PORTAGE_ELOG_MAILSUBJECT="pacchetto \${PACKAGE} è stato installato su
\${HOST} con alcuni messaggi"
Importante:
Se si usa enotice con Portage-2.0.*, si deve completamente rimuovere
enotice, in quanto incompatibile con elog.
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|