Come eseguire il downgrade di un pacchetto tramite apt-get?


309

Come posso effettuare il downgrade di un pacchetto a una versione precedente tramite apt-get?

Anche altri strumenti sono accettabili, ma apt-getè preferito.

Risposte:


307

Se si dispone del numero di versione o della versione di destinazione, apt-getsupporta la scelta di una versione o di una versione di destinazione specifica. Maggiori dettagli sono disponibili nella pagina di manuale di apt-get . È inoltre possibile accedervi dal terminale digitandoman apt-get

sudo apt-get install <package-name>=<package-version-number> O

sudo apt-get -t=<target release> install <package-name>

è il comando da eseguire. Questo può essere usato per ridimensionare un pacchetto ad una versione specifica.

È stato utilmente sottolineato nei commenti che

  • apt-cache showpkg <package-name>elenca tutte le versioni disponibili. (h / t Sparhawk )
  • apt-mark hold <package-name> "mantiene" il pacchetto nella versione corrente, impedendo gli aggiornamenti automatici. (h / t Luís de Sousa )

58
Inoltre, utilizzare apt-cache showpkg <package-name>per elencare le versioni disponibili.
Sparhawk,

16
E in seguito potresti anche voler eseguire: apt-mark hold <package-name>al fine di evitare gli aggiornamenti automatici.
Luís de Sousa,

4
Ho scoperto che aptitudele dipendenze sono state ridimensionate meglio di apt-get.
Krispy,

5
apt-cache policy <package-name>mostra solo le versioni installate e disponibili
Michael Lawton,

18
E se showpkgnon mostra la versione che ti interessa?
demongolem,

104

USO

apt-get install «pkg»=«version»

O

sudo aptitude install «pkg»=«version»

Dove «pkg» è il nome del pacchetto e «versione» è il numero di versione.


3
quando scrivo apt-get install pkg=versionapt-get offre la rimozione di quasi la metà di tutti i pacchetti installati che ovviamente non è quello che voglio fare
Dfr

Come indicato nella risposta (altrimenti identica) con più voti, questo sembra essere uno dei casi chiave in cui aptitudesvolge un lavoro molto migliore di apt-get. Nel mio caso apt-getha rifiutato categoricamente la richiesta di downgrade, mentre aptitudeha sottolineato che c'erano altri pkg che dipendevano dalla versione più recente (e quindi necessitavano di downgrade allo stesso tempo).
sxc731,

28

Se hai aggiornato il software usando ppa puoi eseguirne il downgrade usando ppa-purge. Per prima cosa devi installare ppa-purgeusando questo codice:

sudo apt-get install ppa-purge

Quindi è possibile rimuovere il ppa usando il comando

sudo ppa-purge ppa: nome utente / ppa

questo eseguirà automaticamente il downgrade del software alla versione originale fornita con Ubuntu.


1
Questa soluzione non ha eguali nel caso in cui il pacchetto abbia dipendenze che devono anche essere ridimensionate. Grazie!
e il

1
Sì, questa è la soluzione che ha funzionato meglio per me per il downgrade del desktop KDE / Plasma da kubuntu-ppa / backport - una cosa che ho notato è che il file .list di PPA non deve avere il deb commentato, quindi ppa-purge può fare riferimento a tutti i file che devono essere rimossi per l'eliminazione. Mi ci è voluto un minuto per capire perché all'inizio non funzionava. Spero che aiuti gli altri!
AveryFreeman,

10

Per effettuare il downgrade devi eseguire un comando simile

 sudo apt-get install pkg_name=version

nel tuo terminale.

Al posto di versionmettere la versione precedente che si desidera effettuare il downgrade.


Non funziona almeno per Linux-generico, che dipende anche dai pacchetti che dovrebbero essere declassati. Ottengo paste.ubuntu.com/p/NWSmf2ZwTy
mymedia

9

A mio avviso, dovresti prima disinstallare o eliminare il pacchetto, come:

sudo apt-get remove <package>

o

sudo apt-get purge <package>

Quindi, puoi scaricare la versione che desideri installare e tenerla in una cartella, ad esempio abc.debin Download. Apri il terminale, passa alla cartella usando il cdcomando e installa la versione precedente usando dpkg:

sudo dpkg -i abc.deb

Altrimenti, esiste una piccola utility chiamata ppa-purgese si intende effettuare il downgrade dei pacchetti aggiornati tramite PPA.

Vedi questa discussione: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
la rimozione di un pacchetto può rimuovere molti dipendenti, risultando in un sistema inutilizzabile. ppapurge sembra interessante comunque.
digita

12
Puoi spiegare perché ritieni che dovremmo prima disinstallare i pacchetti (come un passaggio separato) prima di installarne versioni precedenti?
Eliah Kagan,


1
@temoto quel link serve per il downgrade delle versioni unstable-> testing-> stablenon per il downgrade dei singoli pacchetti.
Braiam,

0

Questa domanda è vecchia ma google mi ha portato qui e non ho trovato una semplice soulution che non richieda il passaggio della versione manuale quando si esegue il downgrade di un pacchetto di versioni precedenti.

Quindi forse qualcuno che ne ha bisogno troverà utile anche la mia soluzione.

C'è uno strumento chiamato apt-show-versionsche mostra le versioni installate.

Puoi facilmente effettuare il downgrade di tutti i pacchetti richiesti perfezionando regex, ma eccolo qui:

$ sudo apt-get install $(apt-show-versions | grep -P 'newer than version in archive' | awk -F: '{print $1"/jessie"}')

Invece di jessiete puoi usare buster/ xenial/ etc a seconda delle tue esigenze.


O automaticamente il downgrade a up-to-date di rilascio installato: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). Preferisco usare -Fper grepqui.
jarno,

Dovresti eseguire sudo apt-show-versions -iprima, se la cache del pacchetto non è aggiornata.
jarno,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.