Perché impedire l'aggiornamento di un pacchetto? Diciamo che stai installando un pacchetto precedente alla versione disponibile nei repository Debian, Ubuntu o Linux Mint, oppure sai che un aggiornamento sta causando problemi e desideri che tutti i pacchetti meno uno (o due, tre...) vengano aggiornati.
Ecco un esempio. Sto usando anche il browser Chromium Patch di accelerazione hardware dal PPA Saiarcot895-dev in Ubuntu 18.10. Affinché l'accelerazione hardware funzioni con i driver Nvidia, è necessario un pacchetto vdpau-va-driver con patch, che non è ancora disponibile in questo PPA per l'ultimo Ubuntu 18.10. Fortunatamente, il pacchetto Ubuntu 18.04 può essere installato in Ubuntu 18.10, ma ogni aggiornamento tramite "aggiornamento apt" o utilizzando Software Updater aggiorna quel pacchetto, cosa che non voglio. Quindi in questo caso terrei questo pacchetto lontano dagli aggiornamenti per aggiornare tutti gli altri pacchetti senza dovermi preoccupare.
Tieni presente che impedire a un pacchetto di aggiornamenti futuri può causare problemi in alcune situazioni se il pacchetto in tuo possesso viene utilizzato come dipendenza da un altro pacchetto che può essere aggiornato. Quindi cerca di non impedire l'aggiornamento di troppi pacchetti, in particolare le librerie.
Dalla stessa serie:come trovare i pacchetti disponibili dalla riga di comando in Debian, Ubuntu o Linux Mint [APT]
Ecco 3 modi per impedire l'aggiornamento di un pacchetto in Debian, Ubuntu, Linux Mint.
1. Impedisci gli aggiornamenti dei pacchetti utilizzando una GUI:Synaptic Package Manager
Synaptic Package Manager, un programma grafico di gestione dei pacchetti Gtk per apt, può bloccare i pacchetti, impedendo loro di essere aggiornati.
È importante notare che l'utilizzo di Synaptic per bloccare i pacchetti non impedisce che vengano aggiornati dalla riga di comando, eseguendo apt upgrade
o apt-get upgrade
aggiornerà comunque un pacchetto bloccato in Synaptic. Il blocco dei pacchetti in Synaptic impedisce gli aggiornamenti dei pacchetti utilizzando l'app Software Updater di Ubuntu e possibilmente altri gestori di pacchetti grafici. Tuttavia, non impedirà l'aggiornamento dei pacchetti utilizzando l'applicazione Linux Mint Update Manager. Quindi ti consiglio di usare apt-mark
o dpkg
(vedi sotto) per impedire l'aggiornamento dei pacchetti.
Puoi installare Synaptic Package Manager con questo comando:
sudo apt install synaptic
Per impedire l'aggiornamento di un pacchetto con Synaptic, trovalo, seleziona il pacchetto e fai clic sul menu Synaptic Package -> Lock Version
:
Puoi anche sbloccare il pacchetto allo stesso modo.
Per visualizzare tutti i pacchetti bloccati in Synaptic, fai clic su Status
in basso a sinistra, quindi fai clic su Pinned
sopra Status
Sezione:
2. Impedisci l'aggiornamento di un pacchetto con apt-mark
Impedire l'aggiornamento dei pacchetti con apt-mark dovrebbe impedire che vengano aggiornati utilizzando Software Updater di Ubuntu, così come gli aggiornamenti della riga di comando (apt upgrade
/ apt-get upgrade
).
Puoi utilizzare un pacchetto per aggiornamenti futuri (e per la rimozione automatica) con apt-mark
con questo comando:
sudo apt-mark hold PACKAGE
Sostituisci PACKAGE
con il pacchetto che vuoi evitare di aggiornare.
Puoi controllare quali pacchetti sono contrassegnati come hold
(in modo che non vengano aggiornati) con:
apt-mark showhold
Per rimuovere una sospensione (in modo che il pacchetto possa essere aggiornato) utilizza:
sudo apt-mark unhold PACKAGE
Per entrambi hold
e unhold
Puoi specificare più pacchetti, proprio come l'installazione di software con apt
(separare i pacchetti con uno spazio).
3. Impedisci gli aggiornamenti dei pacchetti con dpkg
Qualche tempo fa c'erano alcuni gestori di pacchetti grafici che ignoravano lo stato apt-mark-hold. Non sono sicuro che sia ancora così, ma solo per sicurezza (e nel caso tu stia usando una vecchia versione di Debian / Ubuntu / Linux Mint) c'è un altro modo per ottenere gli aggiornamenti dei pacchetti in Ubuntu, Linux Mint o Debian qui prevenire:dpkg.
Per impedire l'aggiornamento di un pacchetto con dpkg, utilizzare:
echo "PACKAGE hold" | sudo dpkg --set-selections
Sostituisci PACKAGE
con il pacchetto che vuoi evitare di aggiornare.
Puoi visualizzare tutti i pacchetti conservati con questo comando:
dpkg --get-selections | grep hold
Per sbloccare (consentire l'aggiornamento del pacchetto) utilizzare:
echo "PACKAGE install" | sudo dpkg --set-selections
non come apt-mark
, questa soluzione non consente di specificare più pacchetti contemporaneamente.