Vai al menù, saltando i contenuti (access key "m")
Appunti su Gentoo Linux.
Strumenti di amministrazione
L'amministrazione si basa principalmente sulla gestione del sistema di distribuzione dei sorgenti PORTAGE (una applicazione scritta in Python) e sui servizi di sistema, più alcune utility.
Ecco gli ebuild più importanti:
- sys-apps/portage: il sistema fondamentale di gestione dei pacchetti in Gentoo
- mirrorselect: utility testuale per la scelta dei mirror
- ufed: utility testuale per la scelta delle use flag
- app-portage/gentoolkit: insieme di utility (equery, euse, revdep-rebuild, eclean, e altre...)
- module-rebuild: utility per la compilazione di moduli esterni del kernel dopo un suo aggiornamento.
Portage
Portage si divide in due programmi, ebuild ed emerge.
/etc/make.global /etc/make.conf
Ecco un semplice esempio di uso di emerge:
emerge gimp emerge -pDv gimp
Le opzioni più utili
--pretend (p) --verbose (v) --deep (D) --newuse (N) --update (u)
Per disinstallare
emerge --unmerge gimp
Per eliminare i programmi non più usati o le vecchie versioni
emerge --depclean
I file di sistema di portage
/etc/make.profile/ Link simbolico al profilo corrente.
/var/tmp/portage Contiene i file di compilazione. Se portage non è in esecuzione si possono tranquillamente cancellare
tutti. Tanto la cache la usa ccache se è installato. Portage no. (almeno credo)
Solitamente vengono cancellati in automatico ma se si interrompe la compilazione per qualche motivo
voluto o non voluto, allora rimangono lì.
/usr/portage/distfiles Contiene tutti i codici sorgenti scaricati da Portage. Volendo si può cancellare tutto, però così
facendo se si deve reinstallare qualche programma, questo dovrà essere scaricato di nuovo.
Le vecchie versione non vengono cancellate in automatico. Pertanto questa cartella sarebbe da ripulire
ogni tanto, dato che consuma molto spazio.
/usr/portage/packages Contiene tutti i pacchetti precompilati. Vedere la voce precedente.
/var/cache/edb Cache di che?
/var/db/pkg Lista di tutti i programmi installati! Non toccare assolutamente!
Per limitare la banda di scaricamento di emerge, inserire le seguenti righe nel file /etc/make.conf
# Limit rsync speed for "emerge --sync" PORTAGE_RSYNC_OPTS="${PORTAGE_RSYNC_OPTS} --bwlimit=40" # Limit wget speed for the package downloading (when emerging a package) FETCHCOMMAND="${FETCHCOMMAND} --limit-rate=40k" RESUMECOMMAND="${RESUMECOMMAND} --limit-rate=40k" # Limit rsync speed for the package downloading (when emerging a package) FETCHCOMMAND_RSYNC="${FETCHCOMMAND_RSYNC} --bwlimit=40" RESUMECOMMAND_RSYNC="${RESUMECOMMAND_RSYNC} --bwlimit=40"
I valori numerici che esprimono il massimo della banda utilizzabile nel caso di rsync, qui tutti regolati a 40, sono espressi in kB/s.
MASKED PACKAGES
/etc/portage/package.keywords /etc/portage/package.mask /etc/portage/package.unmask
mirrorselect
sceglie il server rsync per l'upgrade dell'albero di portage
mirrorselect -i -r
sceglie il server per scaricare i file necessari:
mirrorselect -i
ufed
Editor testuale delle use flag. Le use flag sono contenute nel file:
/etc/portage/package.use
equery
Un esempio d'uso per mostrare tutti gli ebuild installati
equery l '*'
euse
Editor testuale di use flag. Io preferisco di gran lunga ufed.
revdep-rebuild
Controlla la consistenza di tutte le dipendenze del sistema. Con l'opzione -p, uguale a quella di emerge, mostra solo cosa verrà installato senza fare nulla.
revdep-rebuild -p
eclean
Strumento per pulire vecchi sorgenti e file binari non più usati da portage.
I demoni
rc-status rc-update add pippo boot rc-update del pippo boot
/etc/init.d/pippo start /etc/init.d/pippo restart /etc/init.d/pippo stop
Altro
Per eseguire un comando all'avvio e/o all'arresto del sistema usare /etc/conf.d/local.start e /etc/conf.d/local.stop. Per definire variabili d'ambiente globali usare /etc/env.d/99local
I file di configurazione di Bash
La shell bash: quali sono i file di configurazione:
File caricati al login 1. /etc/profile che carica: /etc/profile.env e i file .sh in /etc/profile.d/ (il file profile.env è generato automaticamente da env-update prendendo i file dentro /etc/env.d/) 2. .bash_profile o .bash_login o .profile (in ordine) File caricati all'apertura di una shell non di login 1. /etc/bash/bashrc 2. .bashrc File caricati quando si esce da una shell 1. /etc/bash/bash_logout 2. .bash_logout
Per avere delle impostazioni personalizzate che vengono caricate indipendentemente se la shell è di login o meno, la cosa migliore è fare il source del file bashrc/.bashrc dal file profile/.bash_profile. Nella configurazione di default il file /etc/bash/bashrc viene già caricato dal file /etc/profile e il file .bash_profile già carica il file .bashrc. (Basta aprirli per rendersene conto).
Decommentare la riga clear nel file /etc/bash/bash_logout.
La definizione delle variabili d'ambiente va in profile/.bash_profile. Però è meglio usare la directory /etc/env.d/. Mettere 10editor in cui si ci si scrive EDITOR="/usr/bin/ne" e poi eseguire env-update e poi caricate /etc/profile. Io ho usato ne perché mi piace, di solito ci si mette nano, vi o emacs. Esiste anche la directory /etc/profile.d/ ma non ho capito che utilità abbia.
La definizione di alias e funzioni va in bashrc/.bashrc.
Il programmino sw-notify-send è molto utile. Serve per inviare messaggi ai desktop manager. Prendiamo il caso dello spegnimento del pc. Il comando shutdown permette di mandare un messaggio a tutti gli utenti loggati per avvertirli. sw-notify-send è basato su dbus e manda messaggi sul desktop di tutti gli utenti loggati (ovviamente se lo usate da root). Se usato da remoto può dare strani comportamenti: warning, messaggi doppi, ecc... ma il suo lavoro comunque lo fa.