Come installare programmi in Linux
18 Dicembre 2009 Linux
   


I programmi da installare in Linux sono disponibili sotto forma di pacchetti binari o di file sorgenti. Esempi di pacchetti binari sono i pacchetti rpm (RedHat Packet Manager, originariamente usati in Red Hat sono ora utilizzati in molte distribuzioni come OpenSuse o Mandriva), e i pacchetti deb (Debian software package, originariamente usati in Debian sono ora utilizzati anche nelle distribuzione derivate da Debian come Ubuntu).
Altri tipi di pacchetti binari sono i pacchetti ebuild usati in Gentoo, i pacchetti pup e pet usati in Puppy Linux, i pacchetti pisi utilizzati in Pardus.
I file sorgenti sono distribuiti in file compressi ad esempio come file .tgz o .tar.gz o .tar.bz2.

I pacchetti binari possono essere installati utilizzando appositi programmi, i Sistemi di gestione dei pacchetti (Package management system) che consentono di installare, aggiornare e rimuovere i pacchetti.  
Possono essere installati da linea di comando usando programmi come rpm o deb, o utilizzando dei front-end grafici come Synaptic o YaST.
I pacchetti di cui sono distribuiti i file sorgenti devono essere compilati.

Esempi di sistemi di gestione dei pacchetti sono rpm (RedHat Packet Manager), il gestore di pacchetti rpm da linea di comando.

apt (Advanced Packaging Tool), il gestore di pacchetti della distribuzione Debian. Esistono diversi front-end grafici per apt, tra questi Synaptic (utilizzato in Debian, e nelle distribuzioni da questa derivate o comunque nei sistemi basati sui pacchetti deb)

Figura 1.
ma anche Ubuntu Software Center, aptitude, KPackage.

YaST (Yet another Setup Tool), il gestore dei pacchetti utilizzato in OpenSuse.

Figura 2.
Yellow dog Updater, Modified (YUM), gestore di pacchetti rpm da linea di comando. kyum è un front-end per yum.

Figura 3.
urpmi, gestore di pacchetti rpm da linea di comando per la distribuzione Mandriva.

Pacchetti rpm

Il filename del pacchetto rpm ha la forma seguente

  1. name-version-release.arch.rpm

dove name è il nome del pacchetto, version è la versione del pacchetto, release è la release del pacchetto, arch è l'architettura (ad es. i386) per cui è valido quel pacchetto.
Ad esempio il filename gcc-2.96-69.i386.rpm si riferisce al pacchetto gcc, versione 2.96, release 69, per l'architettura i386.
A questo sito è presente una funzione di ricerca per i pacchetti rpm esistenti.
Alcuni dei sistemi per la gestione dei pacchetti rpm da linea di comando sono: rpm, yum, urpmi.

rpm consente di installare, aggiornare, disinstallare e ottenere informazioni sui pacchetti rpm.

rpm -ivh package Installa il pacchetto package
rpm -e package Disinstalla il pacchetto package
rpm -Uvh package Aggiorna il pacchetto package
rpm -q package Visualizza il nome, la versione e la release del pacchetto package installato.
Sono disponibili ulteriori opzioni
-a visualizza tutti i pacchetti installati
-i Visualizza il nome del pacchetto, la descrizione, la release, le dimensioni, la data di installazione, il distributore ecc.
-l Visualizza l'elenco dei file contenuti nel pacchetto
-c Visualizza un elenco dei file di configurazione.
-d Visualizza un elenco dei file di documentazione.

yum consente di installare, aggiornare, disinstallare e ottenere informazioni sui pacchetti rpm.

yum install package Installa il pacchetto package
yum remove package Disinstalla il pacchetto package
yum upgrade package Aggiorna il pacchetto package
yum upgrade Aggiorna tutti i pacchetti installati
yum search key Aggiorna il pacchetto package
yum list avalaible Visualizza tutti i pacchetti disponibili nel repository per essere installati
yum list installed Visualizza tutti i pacchetti installati
yum list updates Visualizza tutti i pacchetti disponibili nel repository che sono un aggiornamento di un qualche pacchetto installato.
yum list Visualizza tutti i pacchetti disponibili nel repository e tutti i pacchetti installati
yum info Visualizza informazioni su ogni pacchetto installato o disponibile nel repository.
yum check-update Verifica se sono disponibili aggiornamenti per i pacchetti installati nel repository.
yum check-update Verifica se sono disponibili aggiornamenti per i pacchetti installati nel repository.
yum groupinstall groupname Installa tutti i pacchetti appartenenti al gruppo "groupname"

urpmi consente di installare, aggiornare, disinstallare e ottenere informazioni sui pacchetti rpm nella distribuzione Mandriva.

urpmi package Installa il pacchetto package
urpme package Disinstalla il pacchetto package
urpmq --fuzzy package_name_part Ricerca un pacchetto avendo a disposizione solo una parte del nome
urpmf filename Ricerca i pacchetti che contengono il file filename
urpmi.update -a Aggiornamento della lista dei pacchetti.
urpmi --auto-select Aggiornamento del sistema.

Pacchetti deb

I pacchetti deb sono utilizzati nella distribuzione Debian e nelle sue derivate Ubuntu, Kubuntu, ecc.
Alcuni dei sistemi per la gestione dei pacchetti deb da linea di comando sono: dpkg e apt.

apt-get consente di installare, aggiornare, disinstallare e ottenere informazioni sui pacchetti. Nel file /etc/apt/sources.list è contenuta la lista dei repository dei pacchetti. Il file ha la forma seguente

  1. deb http://it.archive.ubuntu.com/ubuntu/ karmic main restricted
  2. deb-src http://it.archive.ubuntu.com/ubuntu/ karmic main restricted
  3.  
  4. ## Major bug fix updates produced after the final release of the
  5. ## distribution.
  6. deb http://it.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
  7. deb-src http://it.archive.ubuntu.com/ubuntu/ karmic-updates main restricted

Il file /etc/apt/apt.conf è il file di configurazione di APT.

apt-get install package Installa il pacchetto package
apt-get remove package Disinstalla il pacchetto package
apt-get autoremove package Disinstalla il pacchetto package e tutti i suoi pacchetti dipendenti.
apt-get update Aggiorna l'indice locale dei pacchetti APT tenendo conto dei cambiamenti presenti nei repository indicati nel file /etc/apt/sources.list
apt-get upgrade Aggiorna i pacchetti per cui esiste una nuova versione disponibile. Utilizzando l'opzione -u verrà visualizzato l'elenco completo dei pacchetti che saranno aggiornati. Prima di usare questo comando è importante effettuare l'update dell'indice locale dei pacchetti: apt-get upgrade
apt-get clean Ogni volta che si installa un pacchetto apt scarica tutti i dati necessari e li scrive in /var/cache/apt/archives/. A lungo andare lo spazio occupato può essere grande. È possibile cancellare tutti i file, ad eccezione dei file lock, presenti in /var/cache/apt/archives/ e /var/cache/apt/archives/partial/.
apt-cache show package Visualizza le informazioni dettagliate sul pacchetto package.
apt-cache depends package Visualizza le dipendenze del pacchetto package.
apt-cache search word Visualizza i pacchetti nella cui descrizione è contenuta word.

dpkg consente di installare, aggiornare, disinstallare e ottenere informazioni sui pacchetti.

dpkg -i package Installa il pacchetto package
dpkg -l Visualizza la lista dei pacchetti installati.
dpkg -L package Visualizza la lista dei file installati con il pacchetto package.
dpkg -r package Disinstalla il pacchetto package.
dpkg -s package Visualizza lo stato del pacchetto package
dpkg -S filename Visualizza il nome del pacchetto che ha installato il file filename.

Convertire pacchetti tra i vari formati

Alien è un programma che consente di convertire pacchetti in diversi formati, ad esempio .rpm, .deb, .pkg (Solaris), .tgz.
Alcuni esempi

  1. alien --to-rpm cpp-3.4_3.4.4-6ubuntu8_i386.deb
  2. alien --to-deb gcc-2.96-69.i386.rpm

File sorgenti

Nel caso in cui un pacchetto sia distribuito sotto forma di file compresso per poter installare il pacchetto si estrae il contenuto del file compresso. Quindi ci si porta nella cartella in cui si trovano i file sorgenti che sono stati ottenuti scompattando il file compresso e si digitano da linea di comando i seguenti comandi in sequenza

  1. ./configure
  2. make
  3. sudo make install

Con l'esecuzione del comando

  1. ./configure

viene eseguito uno script che si occupa di verificare se i requisiti (presenza di determinate librerie, ecc.) per l'installazione del programma sono soddisfatti. Se tutti i requisiti sono soddisfatti produrrà un Makefile contenente le istruzioni, per il compilatore, per la compilazione dei sorgenti. È possibile specificare la directory in cui andare ad installare il programma inserendo il parametro --prefix

  1. ./configure --prefix=/usr/local/directory_installazione

Se la generazione del Makefile è andata a buon fine si eseguirà il comando

  1. make

che compilerà i sorgenti in base al Makefile.
Quindi con il comando

  1. sudo make install

si installerà il programma.