martedì 23 marzo 2010

Come fare il log del terminale su un file

Spesso capita di dover tracciare tutto l'output di un terminale. Se le tracce sono molte e il buffer del terminale non è molto grande, è possibile che le tracce comparse per prime non siano più recuperabili perché il buffer si è riempito.
Per fortuna ci viene in aiuto il comando script, che consente di fare il log del contenuto del terminale su di un file (quindi potenzialmente molto più grande del terminal buffer).
Può essere dato semplicemente come:
> script
In questo caso il log viene scritto nel file typescript nella cartella corrente.
Per specificare il file su cui si vuole loggare l'output:
> script filename
Altre opzioni che us spesso sono:
-a: se il file di output è già esistente, non viene cancellato, ma il log viene aggiuto in coda al file.
-c COMMAND: esegue il comando COMMAND anzichè la shell, catturandone tutto l'output
Per ulteriori opzioni consultare il manuale di linux del comando.
Una volta terminata la cattura delle tracce di output, per uscire dal comando script basta digitare:
> exit

domenica 7 marzo 2010

Come aggiungere repository a yum

Yum è un utilissimo programmino che consente di aggiungere programmi al proprio sistema Linux, oppure di aggiornare o rimuovere quelli già presenti.
Per esempio, per installare skype è sufficiente digitare (da account con privilegi di root):
yum install skype
Yum va a cercare il programma skype nei repository configurati, lo scarica e lo installa nel sistema senza bisogno di alcun altro aiuto da parte dell'utente.
Se l'installazione di un pacchetto richiede l'installazione o l'aggiornamento di altri pacchetti, si occupa di fare ciò in maniera totalmente trasparente.
Per aggiornare un pacchetto preesistente:
yum update skype
Anche in questo caso cerca il programma, lo scarica e lo aggiorna, risolvendo tutte le dipendenze.
Per aggiornare in un sol colpo tutto il sistema:
yum update
Questo è particolarmente utile dopo aver installato un sistema linux da zero, o quando lo si riaccende dopo un lungo periodo di inattività, in modo da utilizzare tutti i pacchetti aggiornati all'ultima revisione.
Una parte importante e delicata è quella di configurare i repository, dove yum va a cercare i pacchetti software. Essi si trovano nella cartella /etc/yum.repo.d/
In questa cartella vi sono alcuni file, ciascuno con uno o più repository. La struttura di una entry di un repository è la seguente:

[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

  • baseurl e mirrorlist contengono l'URL di un repository oppure un elenco di mirror dello stesso: è importante che non siano mai attivi entrambi contemporaneamente (in genere, come in questo caso, è attivo il mirrorlist, mentre il baseurl è commentato).
  • enabled vale 1 o 0 a seconda che il repository sia abilitato o meno.
  • gpgcheck vale 1 o 0 a seconda che il controllo GPG sia abilitato o meno. Nel caso sia abilitato, gpgkey contiene la chiave per fare il controllo.

Per aggiungere un nuovo repository, se si conoscono questi parametri, basta editare uno dei file .repo presenti nella cartella, oppure aggiungerne uno nuovo (sempre come utente privilegiato).
Se non si conoscono, è comunque possibile aggiungerli tramite dei pacchetti rpm. Per esempio, per aggiungere i repository "livna", "rpmfusion-free" e "rpmfusion-nonfree", basta digitare:
rpm -Uvh http://rpm.livna.org/livna-release-9.rpm
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
In questo modo verranno creati in automatico i file relativi a questi repository con i parametri corretti.