lpic/101/007_gestione_pacchetti_debian.md
2024-10-22 21:30:31 +02:00

162 lines
3.8 KiB
Markdown

# 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
```