Ubuntu 18.04 Server / apt: installare, rimuovere e aggiornare pacchetti
Su Ubuntu 18.04 Server, apt update aggiorna gli indici dei pacchetti, mentre apt install, apt remove e apt upgrade installano, rimuovono e aggiornano i pacchetti. Aggiornare gli indici non aggiorna i programmi: controlla le modifiche previste prima di rimuovere pacchetti o eseguire un aggiornamento generale.
Il ruolo di APT e i controlli iniziali
APT (Advanced Package Tool) è un insieme di strumenti che gestisce il software usando le informazioni sui pacchetti e sulle dipendenze dei repository. Le dipendenze sono librerie o altri pacchetti necessari per eseguire un programma. Gli esempi riguardano APT 1.6 su Ubuntu 18.04; versioni e modifiche effettive dipendono dai repository e dai pacchetti installati.
La manutenzione di sicurezza standard di Ubuntu 18.04 LTS è terminata a maggio 2023. Su un server esistente, verifica anche la copertura della manutenzione estesa con Ubuntu Pro o il piano di aggiornamento del sistema operativo. Cambiare mirror o eseguire apt upgrade non prolunga il supporto. Consulta il ciclo ufficiale delle versioni di Ubuntu.
Installare, rimuovere e aggiornare gli indici richiede normalmente i privilegi sudo; cercare e consultare informazioni no. In produzione, salva configurazioni e dati importanti e pianifica l’intervento considerando possibili riavvii dei servizi. All’inizio, evita la conferma automatica con -y per controllare personalmente le modifiche.
apt è pensato per l’uso interattivo nel terminale. Negli script, preferisci apt-get e apt-cache quando conta la compatibilità dell’output e del comportamento. In particolare, apt upgrade e apt-get upgrade non gestiscono allo stesso modo le dipendenze per impostazione predefinita. Vedi il manuale di apt per Ubuntu 18.04.
Cercare e installare un pacchetto
L’esempio usa tree, che mostra le strutture delle directory. Sul server reale, sostituiscilo con il pacchetto necessario, ma controlla prima descrizione e versione candidata.
- Scarica le informazioni aggiornate dai repository. Se compaiono errori, risolvili prima di continuare.
sudo apt update
- Cerca il pacchetto ed esaminane i dettagli.
apt-cache policydistingue versione installata, versione candidata e origini dei pacchetti.
apt search tree
apt show tree
apt-cache policy tree
apt search cerca anche nelle descrizioni: possono quindi comparire pacchetti senza tree nel nome. Con apt show esamina descrizione, dipendenze e dimensioni, poi confronta Installed e Candidate in apt-cache policy. Se manca una candidata, controlla prima repository e aggiornamento degli indici. Vedi il manuale di apt-cache.
- Simula l’installazione per controllare quali pacchetti verrebbero installati, aggiornati o rimossi; poi esegui l’installazione effettiva.
sudo apt-get --simulate install tree
--simulate non modifica realmente i pacchetti. Il piano riflette però lo stato del sistema in quel momento: leggi anche la conferma immediatamente prima dell’installazione vera. Se compaiono rimozioni inattese, fermati e verifica dipendenze e repository.
sudo apt install tree
- Dopo l’installazione, verifica la registrazione del pacchetto e che l’eseguibile funzioni.
dpkg-query -W tree
tree --version
Il primo comando mostra nome e versione del pacchetto registrato; il secondo mostra la versione dell’eseguibile. Se non serve installare una nuova versione, APT può indicare che il pacchetto è già aggiornato. Le dipendenze necessarie vengono installate insieme. Il manuale di apt-get spiega le operazioni e le opzioni di simulazione.
Aggiornare gli indici e i pacchetti
update aggiorna soltanto gli indici dei repository, senza cambiare i programmi installati. Usa i comandi seguenti per esaminare gli aggiornamenti disponibili.
sudo apt update
apt list --upgradable
apt list --installed
apt list --upgradable mostra i pacchetti aggiornabili e apt list --installed quelli installati. apt list da solo può elencare pacchetti secondo criteri di nome, ma produrre un output molto lungo.
Per un normale aggiornamento dei pacchetti installati, usa sudo apt upgrade. In Ubuntu 18.04, apt upgrade può installare nuove dipendenze necessarie, ma non rimuove pacchetti esistenti. Al contrario, apt-get upgrade predefinito non installa nemmeno nuovi pacchetti e può lasciare in sospeso alcuni aggiornamenti.
sudo apt upgrade
sudo apt full-upgrade può rimuovere pacchetti esistenti per risolvere le dipendenze. Non eseguirlo automaticamente solo perché un normale aggiornamento ha lasciato pacchetti in sospeso: esamina prima installazioni, rimozioni ed effetti sui servizi importanti. Inoltre, non è un comando per passare da Ubuntu 18.04 a un’altra versione della distribuzione.
Se rimangono aggiornamenti, verifica anche i pacchetti bloccati intenzionalmente con apt-mark showhold. Per limitarti ad alcuni pacchetti o agli aggiornamenti di sicurezza, consulta come aggiornare pacchetti specifici o solo aggiornamenti di sicurezza. Al termine, controlla di nuovo apt list --upgradable e valuta separatamente se servizi o kernel richiedono un riavvio.
Rimuovere pacchetti e pulire dipendenze o cache
Scegli il metodo in base alle impostazioni da conservare e agli elementi da eliminare. I comandi seguenti sono alternative, non una sequenza da eseguire interamente.
| Comando | Che cosa rimuove |
|---|---|
apt remove tree |
Rimuove il pacchetto, lasciando normalmente i file di configurazione gestiti dal pacchetto. |
apt purge tree |
Rimuove il pacchetto e i suoi file di configurazione gestiti. Non significa eliminare tutti i file nelle directory personali degli utenti. |
apt autoremove |
Rimuove le dipendenze installate automaticamente che APT considera ormai non necessarie. |
Per rimuovere tree, per esempio, simula prima l’operazione per esaminare tutti i pacchetti coinvolti, poi esegui la rimozione effettiva. Anteponi sudo ai comandi della tabella che modificano il sistema, come nell’esempio seguente.
sudo apt-get --simulate remove tree
sudo apt remove tree
Se vuoi eliminare anche la configurazione, scegli sudo apt purge tree dopo averne verificato la necessità. Un pacchetto rimosso per errore con remove può essere reinstallato con sudo apt install tree, ma questo potrebbe non recuperare le impostazioni personalizzate eliminate da purge: serve una copia di sicurezza.
Esamina l’elenco anche prima di pulire le dipendenze. Non continuare se include strumenti che usi direttamente o pacchetti necessari al funzionamento del server.
sudo apt-get --simulate autoremove
sudo apt autoremove
Un pacchetto ancora necessario, anche se proposto per la rimozione automatica, può essere contrassegnato come installato manualmente con sudo apt-mark manual PACKAGE. Sostituisci PACKAGE con il nome reale. Questa indicazione non risolve altri problemi di dipendenze. Vedi il manuale di apt-mark.
Per conservare i programmi installati e cancellare solo i file dei pacchetti scaricati, usa sudo apt clean. sudo apt autoclean pulisce i file nella cache dei pacchetti non più scaricabili. Questi comandi non rimuovono pacchetti installati come fa autoremove.
Controllare i repository e cambiare mirror
In Ubuntu 18.04, i repository sono normalmente configurati in /etc/apt/sources.list e in file separati sotto /etc/apt/sources.list.d/. Se un download è lento o un mirror non funziona, identifica prima l’host segnalato dall’errore e il file effettivo di configurazione.
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
Scegli dall’elenco ufficiale dei mirror degli archivi di pacchetti Ubuntu, distinto dall’elenco dei mirror CD per le ISO d’installazione. Oltre alla vicinanza geografica, controlla sincronizzazione e disponibilità di bionic. Nessun mirror specifico è garantito come il più veloce in ogni situazione.
- Crea una copia del file che modificherai realmente. Se il nome seguente esiste già, scegline un altro per preservare la copia precedente.
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.backup
- Apri il file nell’editor predefinito e cambia solo l’URI del mirror Ubuntu interessato. Se la voce è in un file separato, copia e modifica quello.
sudoedit /etc/apt/sources.list
La riga seguente illustra il formato: non sostituire l’intero file con questa sola riga. Conserva le sezioni necessarie, come bionic e bionic-updates, e i componenti esistenti, come main e universe. Non sostituire indiscriminatamente indirizzi di sicurezza, Ubuntu Pro o repository di terze parti.
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
- Dopo il salvataggio, aggiorna gli indici e controlla versione candidata e origine del pacchetto necessario. Non installare o aggiornare finché rimangono errori.
sudo apt update
apt-cache policy tree
Per la sintassi, consulta il manuale di sources.list per Ubuntu 18.04. Un errore 404 non giustifica sostituire bionic con il nome in codice di un’altra versione di Ubuntu. Controlla prima i contenuti del mirror e il percorso del repository attualmente supportato.
Risolvere gli errori e comprendere il ripristino
- Pacchetto non trovato: controlla il nome, gli errori di apt update, i componenti necessari dei repository e le architetture supportate. Un comando non rende disponibile un pacchetto che manca nei repository configurati.
- Errore di blocco: controlla se un’altra operazione apt o dpkg, oppure un aggiornamento automatico, è in esecuzione e attendine il completamento normale. Non iniziare eliminando i file di blocco o terminando forzatamente il processo.
- Errore di firma o file Release: verifica URI del repository, versione della distribuzione, chiavi e orario del server. Non disabilitare i controlli di autenticità e non aggiungere repository senza verificarne l’affidabilità.
Se una precedente operazione è stata davvero interrotta e non sono in corso altre attività di gestione, la sequenza seguente può completare le configurazioni in sospeso ed esaminare il piano di riparazione delle dipendenze. Il primo comando esegue configurazioni reali: leggi l’output. Il secondo mostra soltanto il piano.
sudo dpkg --configure -a
sudo apt-get --simulate --fix-broken install
Esegui sudo apt --fix-broken install solo dopo aver confermato la necessità della riparazione e verificato che il piano non rimuova inaspettatamente pacchetti importanti. Non applicare ripetutamente comandi di riparazione a errori con cause diverse.
Per annullare soltanto un cambio di mirror, ripristina il file salvato e aggiorna gli indici. Se avevi modificato un altro file, usa la sua copia corrispondente.
sudo cp -a /etc/apt/sources.list.backup /etc/apt/sources.list
sudo apt update
Questo ripristina soltanto i repository. Non annulla pacchetti già installati, rimossi o aggiornati, né recupera i dati dei servizi. Per annullare modifiche ai pacchetti in produzione, usa copie separate di configurazioni e dati, oppure snapshot, e la procedura di recupero di ciascun servizio.




