INSTALLAZIONE ED ESECUZIONE DEI PROGRAMMI Come si installano i programmi? ========================================= I programmi o le applicazioni che si intende installare possono essere confezionate in vari modi. Sempre piu' frequentemente infatti lo stesso programma viene distribuito in forma di pacchetto specifico per ogni distribuzione, pacchetto che contiene oltre agli eseguibili e a tutte le componenti necessarie per il funzionamento anche tutte le informazioni su come e dove esso debba essere installato. Se ad esempio si dispone di una distribuzione Debian GNU/Linux sara' opportuno cercare gli applicativi desiderati sotto forma di pacchetto 'deb'. Lo stesso discorso vale per le distribuzioni basate su pacchetti RPM (Red Hat, i Mandrake, ecc.). Spesso si trovano pero' i sorgenti degli applicativi che interessano. Essi vengono generalmente distribuiti sotto forma di pacchetti sorgenti 'tar.gz' o 'tgz' (amichevolmente chiamati tarball). All'interno di tali pacchetti non sono presenti gli eseguibili ma i sorgenti, il che rende possibile compilare tali programmi per le piattaforme che ci interessano. All'interno di un pacchetto sorgente sono presenti, oltre ai file di installazione, la documentazione, il file-make (makefile), e alcuni script. Talvolta accade che i pacchetti 'tar.gz' (o 'tgz') contengano gia' gli eseguibili. In quel caso questi ultimi potranno essere utilizzati subito dopo la decompressione del pacchetto. Bisogna ricordare infine che altri pacchetti possono essere distribuiti in forma diversa ad esempio compressi con 'bzip2', con 'gzip', con 'pkzip', ecc. In questi casi si dovra' utilizzare i relativi programmi di utilita'. I pacchetti - 'tar.gz', 'tgz' ============================= Come si installano i programmi distribuiti in pacchetti '.tar.gz' (o '.tgz')? La decompressione del contenuto dei pacchetti '.tar.gz' (o '.tgz') avviene con il comando 'tar': # tar -zxvf pacchetto .tar.gz[ Invio ] (dove pacchetto e' il nome del pacchetto da decomprimere) Dopo avere effettuato questa operazione, e' opportuno ricordarsi di leggere il contenuto dei file 'README' ed 'INSTALL'. Nel primo si troveranno indicazioni generali sul programma, nel secondo le istruzioni da seguire per installarlo. Un pacchetto '.tar.gz' generalmente e' un pacchetto sorgente cioe' contenente tutti i componenti necessari a compilare il programma. Altre volte invece i pacchetti '.tar.gz' contengono gia' i file binari che non necessiteranno altro che di essere eseguiti. Qui di seguito si trattera' dell'installazione di programmi distribuiti in forma sorgente. Generalmente i comandi che si impartiscono sono in sequenza: 1. './configure' (serve a costruire un file specifico per il sistema su cui si opera e che sara' utilizzato dal compilatore. Questo file si chiama file-make.) 2. 'make' (Compila tutti i sorgenti basandosi sul file-make) 3. 'make install' (Copia i file compilati nelle adeguate directory) 4. 'make clean' (Elimina eventuali file temporanei generati durante la compilazione) Che differenza c'e' tra i pacchetti '.tar.gz' e i pacchetti '.tgz'? --------------------------------------------------------------------- La differenza sostanziale non c'e'. Si tratta di utilizzare a volte il formato '.tgz' per poter permettere una maggior compatibilita' con sistemi operativi che utilizzano nomi di file in formato 8+3 (8 char nome e 3 per estensione). Come si visualizza il contenuto dei pacchetti '.tar.gz' o '.tgz' ---------------------------------------------------------------- Dopo aver decompresso il pacchetto con 'gunzip': $ gunzip file .tar.gz[ Invio ] (il file puo' essere .tar.gz oppure .tgz) si dara' il comando: $ tar -t file.tar[ Invio ] Questi due comandi possono essere riassunti in uno solo: $ tar -tzf file.tar.gz[ Invio ] Come si decomprimono i pacchetti '.tar.gz' o '.tgz'? ---------------------------------------------------- # tar -zxvf file.tar.gz (o tgz)[ Invio ] La 'z' evita di utilizzare 'gunzip' prima di 'tar'. Come si disinstallano i programmi installati da pacchetti '.tar.gz' o '.tgz'? ----------------------------------------------------------------------------- Per disinstallare un programma che originariamente era stato installato da un pacchetto sorgente si potranno utilizzare diverse metodiche: Qualora si sia utilizzato 'installwatch' all'atto dell'installazione, sara' possibile risalire facilmente a tutte le operazioni che vennero svolte allora e quindi anche alla posizione dei file installati. 'installwatch' crea infatti un file di testo con queste informazioni; sarebbe quindi utile creare tanti file di testo quanti sono i programmi installati da pacchetti in forma sorgente. Si ricordi inoltre che alcuni pacchetti permettono anche comandi come i 'make uninstall' o 'make distclean'; purtroppo pero' questo non sempre accade (e ad ogni modo bisogna dare una occhiata al file README e/o INSTALL). Un altro modo e' quello di leggere il 'Makefile' per controllare quali sono le directory in cui il programma viene installato per potere quindi rimuovere i file manualmente. Infine, a volte capita che vengano generati dei file di registro (log) con l'elenco dei file installati e la loro posizione all'interno del file system. Come si creano i propri pacchetti '.tar.gz' o '.tgz'? ----------------------------------------------------- Il seguente comando generera' nella directory corrente il file compresso 'nome_archivio.tar.gz' contenente il contenuto delle directory '/etc/', '/home/', '/root/', '/var/', '/usr/local/': # tar zcvf nome_archivio .tar.gz /etc /home /root /var /usr/local[ Invio ] Come si creano pacchetti '.tar.gz' o '.tgz' nel cui nome venga inserita la data di creazione? ------------------------------------------------------------------------------- Per creare un pacchetto '.tar.gz' che nel nome del file contenga la data della creazione si potra' impartire il seguente comando: # tar zcvf nome -'date +%d%m%Y'.tar.gz /directory/ [ Invio ] Come si creano i pacchetti '.tar.gz' o '.tgz' sequenziali su dischetti? ----------------------------------------------------------------------- $ tar -c -f /dev/fd0 -L 1440 -M -v /home/utente /[ Invio ] Come si ripristinano i pacchetti '.tar.gz' o '.tgz' archiviati su dischetti sequenziali? --------------------------------------------------------------------------- Il comando da impartire per ripristinare il contenuto di un archivio presente su piu' dischetti e' il seguente: $ tar -x -f /dev/fd0 -L 1440 -M -v -p --same-owner[ Invio ] Esercizio --------- Secondo i tuoi interessi trova un programma in formato tarball da installare. Prova e scompattarlo. Leggi la domcumentazione. E' disponibile il binario o bisogna compilarlo? Compilalo/installalo. Verifica il suo funizionamento. Suggerimento: Puoi trovare parecchi programmi per piattaforma unix/linux sui siti: http://freshmeat.net http://sourceforge.net http://www.gnu.org I pacchetti - RPM ================= Come abbiamo scritto in precedenza questo formato e' utilizzato tipicamente nelle distribuzioni Red Hat e Mandrake (ma anche altre distribuzioni lo supportano), Rpm sta per RedHat Packet Manager. Generalmente i pacchetti rpm contengono i programmi in formato binario, cioe' senza la necessita' di essere compilati, il nome del pacchetto e' spesso schiarificatore. I siti di riferimento per trovare programmi in questo formato sono ovviamente quelli delle distribuzioni: http://www.redhat.com http://www.mandrake.com i tutti i loro mirror Oppure il motore di ricerca di rpm (per tutte le distro che lo supportano) http://rpmfind.net Come si installano i pacchetti RPM? ----------------------------------- Per installare un pacchetto RPM si utilizza il comando 'rpm': # rpm -i nome .rpm[ Invio ] oppure: # rpm -ivh nome .rpm[ Invio ] 16 Come si aggiornano i pacchetti RPM? ----------------------------------- Per aggiornare un pacchetto RPM si utilizza il comando 'rpm': # rpm -U nome .rpm[ Invio ] oppure: # rpm -Uvh nome .rpm[ Invio ] (aggiorna il pacchetto con dettagli e barra di progressione) Come si disinstallano i pacchetti RPM? -------------------------------------- Per disinstallare un pacchetto RPM si utilizza il comando 'rpm': # rpm -e nome [ Invio ] (il nome del pacchetto si intende senza estensione) Come si verifica l'installazione di pacchetti RPM? -------------------------------------------------- Per verificare la corretta installazione di un pacchetto RPM si utilizza il comando 'rpm': # rpm -V nome [ Invio ] (il nome del pacchetto si intende senza estensione) Da qual pacchetto RPM viene un determinato file? ------------------------------------------------ Si puu' ottenere questa informazione con le opzioni '-qf' del comando 'rpm': # rpm -qf file [ Invio ] Come si ottiene una descrizione di un pacchetto RPM? ---------------------------------------------------- Si puo' ottenere questa informazione con le opzioni '-qpi' del comando 'rpm': # rpm -qpi file .rpm [ Invio ] Se invece serve la lista di tutti i file che compongono il pacchetto si usa l'opzione '-qlp' # rpm -qpl file .rpm [ Invio ] Come si visualizza l'elenco dei pacchetti RPM installati? --------------------------------------------------------- Si puio' ottenere questa informazione con le opzioni '-qa' del comando 'rpm': # rpm -qa [ Invio ] Come si verifica la corretta installazione di tutti i pacchetti? ---------------------------------------------------------------- Con il comando 'rpm': # rpm -Va[ Invio ] Come si puo' verificare la corrispondenza tra un pacchetto RPM e cio' che e' installato? ---------------------------------------------------------------------------- Con il comando 'rpm': # rpm -Vp nome.rpm[ Invio ] Come si puo' installare un pacchetto RPM su destinazione diversa da quella predefinita? -------------------------------------------------------------------------- Con il comando 'rpm': # rpm -i --prefix percorso file .rpm[ Invio ] Esercizi -------- Trasferisci sul file /tmp/listarpm.txt la lista dei pacchetti installati sul computer lx-lm (10.0.0.100). Sul file /tmp/descrpm.txt trasferisci le descrizioni dei pacchetti installati. Trova qualche programma (compatibilmente con i tuoi interessi) in formato rpm: controlla se e' gia' installato nel computer leggi la sua descrizione e lista i file che lo compongono installalo provalo La compressione - '.gz' '.bz2' '.zip' ===================================== Come si comprime un file? ------------------------- Sono molteplici i programmi di compressione: 'gzip', 'bzip2'. Ecco la loro sintassi: $ gzip file [ Invio ] e: $ bzip2 file [ Invio ] Cosa e' un file '.gz'? ---------------------- Un file '.gz' e' un file compresso con 'gzip' e si decomprime con: $ gzip -d file [ Invio ] oppure con: $ gunzip file [ Invio ] Cosa e' un file '.bz2'? ----------------------- Un file '.bz2' e' un file compresso con 'bzip2' e si decomprime con: $ bzip2 -d file [ Invio ] oppure con: $ bunzip2 file [ Invio ] Cos'e' file '.tar.bz2' e come posso utilizzarlo? ------------------------------------------------ Si tratta di un archivio .tar compresso con 'bzip2'. Innanzitutto occorre decomprimere l'archivio con: $ bzip2 -d nomefile .tar.bz2 ; tar -xvf nomefile .tar [ Invio ] 20 oppure con un unico comando: $ tar -xIvf nomefile .tar.bz2[ Invio ] Esercizi -------- Bzip2 e' gia' installato sul computer? Prova a comprimere un file piuttosto corposo (per esempio copia uno dei file nella directory /var/log nella tua directory temporanea) usando gzip e bzip2, qual e' il programma che comprime meglio? C'e' un formato di compressione di cui non abbiamo parlato, si chiama Compress, cerca la sua sintassi col col comando man compress e anche su internet. Scrivi dieci righe al riguardo.