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:

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.