# Gestione dei pacchetti ## dpkg *Debian Package* (dpkg) e' il comando per installare e rimuovere pacchetti su sistemi basati su Debian. ### Installazione ```bash dpkg -i PACKAGENAME.deb ``` dpkg, se le dipendenze del pacchetto non sono soddisfatte, non installera' il pacchetto. Elenchera' quali dipendenze mancano, ma sara' compito dell'utente installarle. Per forzare l'installazione usare il parametro `-f` o `--force`. ### Disinstallazione ```bash dpkg -r PACKAGENAME ``` Un pacchetto non puo' essere rimosso, se non sia stato rimosso anche ogni altro pacchetto che dipende da esso. ```bash dpkg -P PACKAGENAME ``` In questo modo vengono rimossi anche i file di configurazione, che altrimenti restano nel sistema. ### Ottenere informazioni sui pacchetti ```bash dpkg -I PACKAGENAME ``` ### Elencare i pacchetti Per avere una lista di tutti i pacchetti installati sul sistema: ```bash dpkg --get-selections ``` Per avere un elenco di tutti i file installati da un pacchetto: ```bash dpkg -L PACKAGENAME ``` ### Riconfigurare i pacchetti Per ripristinare le impostazioni di un pacchetto allo stato iniziale: ```bash dpkg-reconfigure PACKAGENAME ``` ## APT *Advanced Package Tool* e' un sistema di gestione dei pacchetti che *risolve in automatico le dipende*. E' come un *front-end* di dpkg, che ne semplifica l'utilizzo e ne colma diverse lacune. Esistono diverse utility: - **apt-get** - **apt-cache** - **apt-file** - **apt**: combina le funzionalita' di apt-get e apt-cache ### Aggiornare l'indice dei pacchetti ```bash apt-get update ``` ### Installare e rimuovere pacchetti Prima di installare un pacchetto, buona prassi e' quella di aggiornare gli indici ```bash apt-get install PACKAGENAME apt-get remove PACKAGENAME ``` APT risolve automaticamente le dipendenze. Verranno quindi installati anche degli eventuali pacchetti aggiuntivi richiesti dal pacchetto che si sta installando. Verranno anche rimossi i pacchetti che dipendono dal pacchetto che si sta rimuovendo. I file di configurazione rimangono sul sistema. Per eliminare qualsiasi cosa associata la pacchetto: ```bash apt-get purge PACKAGENAME ``` ### Riparare dipende Per risolvere dipendenze errate o mancanti: ```bash apt-get install -f ``` ### Aggiornare i pacchetti Per aggiornare tutti i pacchetti: ```bash apt-get upgrade ``` Per aggiornare un singolo pacchetto: ```bash apt-get upgrade PACKAGENAME ``` ### Cache locale Quando si installa o aggiorna un pacchetto, il corrispondente file *.deb *viene scaricato in una cartella locale di cache, che di default e': `/var/cache/apt/archives/`. I file parzialmente scaricati si trovano invece in `/var/cache/apt/archives/partial`. Per svuotare la directory di cache usare il comando `apt-cache clean`. ### Ricercare pacchetti ```bash apt-cache search ``` Il comando seguente mostra i dettagli su un determinato pacchetto: ```bash apt-cache show PACKAGENAME ``` ### Elencare il contenuto di un pacchetto ```bash apt-file list PACKAGENAME ``` ### Repository APT utilizza una lista di fonti (*repository*) per sapere da dove ottenere i pacchetti. Questo fonti sono memorizzate nel file `/etc/apt/sources.list` e nei file contenuti nella directory `/etc/apt/sources.list.d/`. la sintassi: ```bash cat /etc/apt/sources.list # Debian SID deb http://deb.debian.org/debian/ unstable main contrib non-free non-free-firmware # Tipo archivio URL distribuzione componenti ``` #### Tipo File binari (.deb) o sorgenti, *deb-src* #### Componenti Diversi tra le distribuzioni, su Debian i componenti principali sono: - **main**: pacchetti conformi alle *Debian Free Software Guidelines* (DFSG) - **contrib**: pacchetti conformi alle DFSG, ma che dipendono da pacchetti che non sono in main - **non-free**: pacchetti non conformi alle DFSG - **security**: aggiornamenti di sicurezza - **backports**: versioni piu' recenti dei pacchetti che si trovano in main ```