Ubuntu: aggiornare pacchetti specifici o aggiornamenti di sicurezza
Per aggiornare solo pacchetti specifici installati su Ubuntu, usa apt install --only-upgrade PACKAGE. Per selezionare aggiornamenti di sicurezza, controlla le fonti consentite in unattended-upgrades, simula l'aggiornamento e poi applicalo. A seconda delle dipendenze o delle impostazioni dei pacchetti selezionati, anche altri pacchetti potrebbero essere modificati insieme.
Cose da controllare prima di aggiornare
apt update recupera l'elenco dei pacchetti dal repository ma non aggiorna i pacchetti installati. L'installazione e l'aggiornamento sono attività separate. Prima di applicare l'aggiornamento, controllare i metodi di backup e ripristino, lo spazio su disco e le possibili interruzioni dei servizi, e programmare l'orario dell'operazione sui server di produzione.
sudo apt update
apt list --upgradable
Se il primo comando fallisce, risolvere gli errori del repository e della rete, quindi aggiornare nuovamente l'elenco. Il secondo comando mostra i pacchetti attualmente aggiornabili, ma ciò non significa che tutti gli elementi dell'elenco siano aggiornamenti di sicurezza.
Aggiornamento di un pacchetto specifico
I comandi seguenti utilizzano curl come esempio, assumendo che sia già installato. Sostituiscilo con il nome effettivo del pacchetto installato che vuoi aggiornare. Prima, controlla la versione candidata, la sorgente e le modifiche previste da APT.
apt-cache policy curl
sudo apt-get -s install --only-upgrade curl
-s è una simulazione che non esegue l'installazione. --only-upgrade non installerà ex novo il pacchetto specificato se non è già installato. Tuttavia, può suggerire di installare, aggiornare o rimuovere altri pacchetti necessari per l'aggiornamento del pacchetto target, quindi rivedi l'intero risultato. La versione desiderata potrebbe non essere selezionata a seconda dei pacchetti bloccati, delle dipendenze e della priorità del repository.
Se le modifiche previste sono appropriate, applicale con il comando seguente. Riconferma l'elenco delle installazioni, degli aggiornamenti, delle rimozioni e dei requisiti di spazio suggeriti da APT e, se differisce da quanto ti aspetti, fermati al passaggio di conferma.
sudo apt install --only-upgrade curl
Dopo il completamento, controlla la versione installata con apt-cache policy curl e verifica che il servizio o l'applicazione corrispondente funzioni correttamente. A seconda del pacchetto, potrebbe essere necessario riavviare il servizio o il sistema.
Controlla le fonti consentite per gli aggiornamenti di sicurezza
A differenza del nome, unattended-upgrade non seleziona sempre solo gli aggiornamenti di sicurezza. A seconda delle fonti consentite configurate, possono essere installati anche altri aggiornamenti. Per prima cosa, verifica se il pacchetto è installato e le impostazioni correnti di APT.
dpkg-query -W unattended-upgrades
apt-config dump | grep -E 'Unattended-Upgrade::(Allowed-Origins|Origins-Pattern|Automatic-Reboot|Remove-)'
apt-cache policy
Se non è installato, può essere installato con sudo apt install unattended-upgrades. Dopo l'installazione, il programma di aggiornamento automatico potrebbe diventare attivo, quindi verifica la politica del server e le impostazioni esistenti di /etc/apt/apt.conf.d/20auto-upgrades. Confronta le informazioni del repository di apt-cache policy con l'elenco consentito e verifica anche le impostazioni per il riavvio automatico o la rimozione di pacchetti non necessari. L'elenco può combinare valori provenienti da più file di configurazione.
Se le fonti al di fuori dell'ambito di sicurezza, come -updates o repository esterni, sono consentite, è necessario modificare le impostazioni secondo la politica organizzativa prima di eseguire il comando seguente. Il repository di sicurezza ESM di Ubuntu Pro e i repository esterni possono essere fonti separate, quindi controlla l'ambito di supporto e le fonti per garantire che le patch di sicurezza richieste non vengano perse. Puoi controllare le fonti predefinite e le impostazioni di riavvio nel documentazione sugli aggiornamenti automatici di Ubuntu.
Esempio che consente solo i repository di sicurezza generali di Ubuntu
Il seguente è un esempio di configurazione che consente solo i repository di sicurezza standard di Ubuntu. Non include ESM o repository esterni, quindi non applicarlo così com'è negli ambienti che richiedono quegli aggiornamenti. Poiché questa è un'impostazione persistente che influenza anche gli aggiornamenti automatici, registra le tue politiche esistenti e assicurati che non confliggano con altri strumenti di gestione della configurazione prima di procedere.
In /etc/apt/apt.conf.d/, crea un nuovo file chiamato 99local-security-only senza sovrascrivere un file esistente e salva il seguente contenuto. L'elenco APT mantiene le voci esistenti quando se ne aggiungono di nuove, quindi prima cancella entrambi gli elenchi. #clear è una direttiva di configurazione APT, non un prompt della shell.
#clear Unattended-Upgrade::Allowed-Origins;
#clear Unattended-Upgrade::Origins-Pattern;
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Altri file potrebbero riaggiungere le sorgenti in seguito, quindi dopo aver salvato, controlla le sorgenti effettivamente consentite utilizzando il apt-config dump sopra e i risultati della simulazione. Il repository di sicurezza deve essere attivo e, se le dipendenze necessarie non possono essere ottenute dalle sorgenti consentite, alcuni pacchetti potrebbero rimanere in sospeso. Per ripristinare questa configurazione, rimuovi solo il file creato da questa operazione e controlla nuovamente la configurazione e i risultati della simulazione.
Simulazione e verifica post-applicazione
Il seguente comando è utilizzato per controllare le sorgenti consentite e i pacchetti da elaborare senza installare effettivamente aggiornamenti. Rivedi l'output e i log per sorgenti inattese, elementi in sospeso ed errori.
sudo unattended-upgrade --dry-run --debug
L'esecuzione della simulazione non garantisce i risultati del lavoro effettivo. Controllare il sorgente e il destinatario, le politiche di riavvio/rimozione automatico, ed eseguire il comando seguente solo durante una finestra di manutenzione appropriata.
sudo unattended-upgrade --verbose
Dopo il completamento, verificare i log in /var/log/unattended-upgrades/ e lo stato dei servizi interessati, e se necessario, riavviare al momento pianificato. Commentare i repository in sources.list può trascurare altri file sorgente e dipendenze, quindi questo metodo non viene utilizzato qui. Per opzioni e percorsi dei log, fare riferimento al manuale Ubuntu unattended-upgrade.




