Translation(s): English - Español - Français - Italiano - 한국어(Korean)


Argomenti avanzati riguardanti al gestione dei pacchetti Debian

Il sistema di gestione dei pacchetti di Debian consiste di diversi livelli. I livelli più bassi sono fatti da dpkg e programmi associati. Sopra a questi livelli ci sono gli strumenti della famiglia Apt come apt, apt-get, apt-cache e altri. Vedere la pagina degli Strumenti di gestione dei pacchetti per una descrizione di altri strumenti che lavorano con i file dei pacchetti Debian.

Si può conoscere software come Firefox, GIMP, ecc., ma quello che sono in realtà è semplicemente moltissimi file che sono stati compilati in uno unico. Le persone (o a volte una sola persona) che scrivono il software sono detti fornitori a monte; essi compilano il proprio codice e scrivono come installarlo.

Questi fornitori a monte lavorano alla creazione di nuovo software e all'aggiornamento di quello esistente. Quando sono pronti a rilasciarlo al pubblico, inviano i loro pacchetti ai manutentori dei pacchetti che gestiscono la fornitura di questo pezzo di software nelle mani degli utenti. Questi manutentori dei pacchetti revisionano, gestiscono e distribuiscono il software in forma di pacchetti. Perciò invece di scaricare i pacchetti/software uno ad uno da siti a caso (come in Windows),jc'è qualcosa di meglio, chiamato repository dei pacchetti in Debian.

I repository non sono altro che una posizione di archiviazione centralizzata per i pacchetti. Molti repository online contengono molti pacchetti. La macchina non sa dove andare a cercare questi repository a meno di non dirle esplicitamente dove guardare. Debian viene fornita che fonti già pre-approvate da cui ottenere i pacchetti e quello è il modo in cui installa tutti i pacchetti base che si vedono sul sistema (se l'utente ha usato un'installazione da rete). In un sistema Debian il file delle fonti è il file "/etc/apt/sources.list". La macchina sa di dover guardare lì e controllare ogni repository sorgente che è stato aggiunto.

Apt

apt fornisce un'interfaccia a riga di comando di alto livello per il sistema di gestione dei pacchetti di Debian, con tutti gli strumenti necessari in un unico posto. apt mira a fornire un modo semplice ed efficiente per gli utenti finali di gestire i pacchetti.

Aggiornare il proprio elenco di pacchetti

Per usare apt è importante recuperare una copia aggiornata dell'elenco dei pacchetti dalle fonti configurate:

# apt update

Aggiornare il proprio sistema

Si dovrebbe aggiornare il sistema quotidianamente, ciò dà le risoluzioni ai bug e alla sicurezza:

# apt upgrade

A volte è utile usare "full-upgrade". Questo effettua la funzione dell'aggiornamento ma rimuove pacchetti attualmente installati se ciò è essenziale per aggiornare il sistema nel suo complesso. Questo comando viene di solito utilizzato quando si fanno aggiornamenti di sistema.

# apt full-upgrade

Prima di aggiornare il proprio sistema Debian al rilascio successivo, passare ad una console tty premendo CTRL+ALT+F3/F4/F5 ecc., dato che dpkg riavvia alcuni gestori di login che forzeranno il logout dell'utente durante l'aggiornamento avendo come risultato un aggiornamento difettoso/parziale.

Installazione e rimozione di pacchetti

Per installare un pacchetto, come in questo esempio Firefox:

# apt install firefox

Per rimuovere un pacchetto:

# apt remove firefox

Si può anche installare un file .deb con :

# apt install </percorso/al/file/deb/debfile.deb>

Nota

apt effettua l'azione richiesta su uno o più pacchetti specificati con regex, glob o corrispondenze esatte. L'azione richiesta può essere sovrascritta per pacchetti specifici aggiungendo un carattere più (+) al nome del pacchetto per installarlo o un meno (-) per rimuoverlo.

Si può selezionare una versione specifica di un pacchetto per l'installazione facendo seguire al nome di pacchetto un uguale (=) e la versione del pacchetto da selezionare. In alternativa si può selezionare la versione da uno specifico rilascio facendo seguire al nome del pacchetto una barra inclinata (/) e il nome in codice (stretch, buster, sid...) o il nome della suite (stable, testing, unstable). Ciò seleziona anche versioni da tale rilascio per le dipendenze del pacchetto, se necessarie per soddisfare la richiesta. La rimozione di un pacchetto rimuove tutti i dati pacchettizzati, ma lascia stare solitamente piccoli file di configurazione utente (modificati) nel caso in cui la rimozione sia stata un incidente. In questo caso basta effettuare una richiesta di installazione del pacchetto rimosso per sbaglio per ripristinare la sua funzionalità come prima. D'altra parte ci si può sbarazzare di questi avanzi chiamando purge anche su pacchetti già rimossi. Notare che ciò non ha effetto su alcun dato o configurazione archiviati nella directory home degli utenti.

Trovare pacchetti

Cercare un pacchetto:

$ apt search <termine_ricerca>

Per esempio, per trovare i pacchetti con "cats" nel nome o nella descrizione di pacchetto:

$ apt search cats

Per vedere informazioni dettagliate su un pacchetto:

$ apt info chameleon-cursor-theme

Pulizia

Dopo la rimozione di un pacchetto si dovrebbero rimuovere tutti gli altri pacchetti che sono stati installati automaticamente per soddisfare le dipendenze e che non sono più necessari:

# apt autoremove

Può anche essere utilizzato durante la rimozione dei pacchetti, in questo modo:

# apt remove clang --auto-remove

Si dovrebbe controllare che ciò non includa applicazioni che sono diventate ben accolte dall'utente anche se erano state una volta installate solamente come dipendenza di un altro pacchetto. Si possono marcare tali pacchetti come installati manualmente usando apt install pincopallo or apt-mark auto/manual pincopallo. Anche i pacchetti che sono stati installati esplicitamente/direttamente con install non sono mai proposti per la rimozione automatica.

Modifica delle fonti

C'è una bella nuova funzionalità di apt che permette di modificare le fonti dei pacchetti, cioè i file "sources.list" usando il proprio editor preferito e fornendo al contempo controlli di base di correttezza:

# apt edit-sources

Vedere SourcesList per informazioni su come configurare le proprie fonti.

Strumenti di basso livello

Sostanzialmente dpkg e compagnia; questi sono comandi che eseguono un singolo compito. Sono i più direttamente paragonabili al comando "rpm" di Redhat.

Contenuto di un file Debian

Per vedere il contenuto dei pacchetti Debian nei repository Debian, sia che essi siano installati sia che non lo siano, si installi il pacchetto apt-file e si digiti:

sudo apt-file update
apt-file list pippo

Per ottenere il contenuto del file "abc.deb", si deve digitare:

dpkg-deb -c abc.deb

Riconfigurazione di debconf

Per riconfigurare debconf, in modo da essere informati sulla maggior parte di cambiamenti nei pacchetti nuovi:

# dpkg-reconfigure debconf

e scegliere "Media".

Gestione dei pacchetti con apt-get e dpkg

Elenco delle fonti per i pacchetti per APT

Il file /etc/apt/sources.list è il file che definisce le fonti per apt. Per ulteriori informazioni su questo file digitare

man 5 sources.list

Recuperare nuovi elenchi dei pacchetti:

Per recuperare i nuovi elenchi di tutti i pacchetti da sources.list digitare:

sudo aptitude update

o l'equivalente

sudo apt-get update

Questo comando controlla i nuovi file release sui server specificati. Fortunatamente il comando è abbastanza intelligente da controllare se il release-file è cambiato o meno dall'ultimo aggiornamento.

Aggiornamento di tutti i file:

Per fare un aggiornamento di tutti i pacchetti che sono cambiati, inserire la riga:

sudo aptitude safe-upgrade

Se si vuole fare questo tramite cron, si dovrebbe prendere in considerazione l'uso del pacchetto cron-apt.

Il vecchio metodo basato su apt-get è:

sudo apt-get upgrade -u

L'opzione aggiuntiva -u mostra anche un elenco di tutti i pacchetti aggiornati. Se si vuole eseguire l'aggiornamento come compito di cron, si dovrebbero usare le opzioni -dy. Con esse i nuovi pacchetti vengono scaricati ma non installati; li si può installare successivamente con il comando apt-get update -u.

Aggiornamento completo della distribuzione e dei suoi file:

ATTENZIONE

Seguire le istruzioni di aggiornamento che si trovano nelle note di rilascio è il modo migliore di assicurare che il sistema si aggiorni da un rilascio principale di Debian ad un altro (es. da jessie a stretch) senza danni!

Queste istruzioni indicano di eseguire almeno una volta un dist-upgrade (invece di upgrade). Perciò si dovrà digitare qualcosa tipo:

# apt-get dist-upgrade

in qualche momento durante un aggiornamento ad un rilascio principale.

Un dist-upgrade sarà anche necessario per mantenersi aggiornati con l'ultima versione in testing e unstable. Un dist-upgrade potrebbe essere molto raramente necessario anche per ottenere gli aggiornamenti di sicurezza nei rilasci stabili nel caso in cui i pacchetti cambino nome.

Trovare un pacchetto:

Come si può scoprire quale pacchetto usare senza i programmi con interfaccia grafica?

# apt-cache search sylpheed

Oppure usare un'interfaccia web:

https://packages.debian.org/search?sylpheed

Con l'interfaccia di ricerca web si possono cercare specifici file nel contenuto dei pacchetti:

https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=contents&keywords=bin%2Fsylpheed

Aggiunta di un pacchetto:

Come aggiungere un pacchetto al proprio sistema senza i programmi con interfaccia grafica? Tutto ciò che si deve fare è scoprire il nome del pacchetto e digitare il comando

sudo aptitude install sylpheed-claws

o

sudo apt-get install sylpheed-claws

per aggiungere il pacchetto sylpheed-claws.

Rimuovere un pacchetto:

Per sbarazzarsi del pacchetto pincopallino di cui non si ha più bisogno, inserire il comando

sudo aptitude remove pincopallino

o

sudo  apt-get remove pincopallino

La rimozione di un pacchetto rimuove tutti i dati pacchettizzati, ma lascia stare solitamente piccoli file di configurazione utente (modificati) nel caso in cui la rimozione sia stata un incidente. In questo caso basta effettuare una richiesta di installazione del pacchetto rimosso per sbaglio per ripristinare la sua funzionalità come prima. D'altra parte ci si può sbarazzare di questi avanzi chiamando purge anche su pacchetti già rimossi. Notare che ciò non ha effetto su alcun dato o configurazione archiviati nella directory home dell'utente.

Perciò tecnicamente, se il pacchetto è necessario ad altri pacchetti, verrà chiesto se rimuovere il pacchetto e tutti quelli che dipendono da esso. Inoltre rimuovere semplicemente un pacchetto non rimuove i file di configurazione relativi al pacchetto.

Per sbarazzarsi del pacchetto pincopallino che non è più necessario, insieme a tutti i file di configurazione e dipendenze correlate usare il comando:

# apt-get purge --autoremove foo 

Si può anche usare il comando sottostante per eliminare completamente i file di configurazione dopo avere fatto un'eliminazione normale con apt-get remove pincopallino:

# apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')

Attenzione

Usare cautela quando si rimuovono pacchetti. Fare attenzione ai messaggi di apt.

Forzare la rimozione di un pacchetto:

Mentre si fa l'aggiornamento di una distribuzione può capitare che si debba rimuovere prima un pacchetto. A volte però, non è possibile farlo con apt-get a causa di dipendenze non soddisfatte o non completamente installate. Si può rimuovere il pacchetto pincopallino usando il comando

sudo dpkg --force-all --remove pincopallino

Leggere il contenuto di un pacchetto installato:

A volte si desidera sapere quali file sono contenuti nel pacchetto pincopallino. Per ottenere questa informazione digitare il comando

dpkg -L pincopallino

Ottenere la descrizione di un pacchetto:

Non si conosce a cosa serve il pacchetto pincopallino? Digitare semplicemente

aptitude show pincopallino

o

dpkg -p pincopallino

Cercare il pacchetto di un file:

Ci si è mai chiesti a quale pacchetto appartenga un file specifico? Per ottenere questa informazione (ad esempio per /usr/bin/apt-get), avviare il comando

dpkg -S /usr/bin/apt-get

e ci verrà detto che quel file fa parte del pacchetto apt.


CategoryPackageManagement | CategorySoftware | CategoryPackaging