Wie kann ich ein Paket über apt-get downgraden?

309

Wie kann ich ein Paket auf eine ältere Version über downgraden apt-get?

Andere Werkzeuge sind ebenfalls akzeptabel, werden jedoch apt-getbevorzugt.

Zanna
quelle

Antworten:

307

Wenn Sie die Versionsnummer oder das Ziel-Release haben, können Sie apt-geteine bestimmte Version oder ein bestimmtes Ziel-Release auswählen. Weitere Details finden Sie auf der Manualpage von apt-get . Es kann auch vom Terminal aus durch Eingabe aufgerufen werdenman apt-get

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

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

ist der auszuführende Befehl. Dies kann verwendet werden, um ein Paket auf eine bestimmte Version herunterzustufen.

In den Kommentaren wurde darauf hingewiesen, dass

  • apt-cache showpkg <package-name>listet alle verfügbaren Versionen auf. (h / t Sparhawk )
  • apt-mark hold <package-name> "hält" das Paket auf der aktuellen Version und verhindert automatische Upgrades. (h / t Luís de Sousa )
Mahesh
quelle
58
Verwenden Sie auch, um apt-cache showpkg <package-name>verfügbare Versionen aufzulisten.
Sparhawk
16
Und danach möchten Sie möglicherweise auch ausführen: apt-mark hold <package-name>um automatische Upgrades zu vermeiden.
Luís de Sousa
4
Ich fand, dass aptitudedie Abhängigkeiten besser herabgestuft wurden als apt-get.
krispy
5
apt-cache policy <package-name>zeigt nur die installierten und verfügbaren Versionen
Michael Lawton
18
Und was ist, wenn showpkgdie Version, an der Sie interessiert sind, nicht angezeigt wird?
Demongolem
104

VERWENDEN

apt-get install «pkg»=«version»

ODER

sudo aptitude install «pkg»=«version»

Dabei ist «pkg» der Name des Pakets und «version» die Versionsnummer.

Danorton
quelle
3
wenn ich apt-get install pkg=versionapt-get
eingebe
Wie in der (ansonsten identischen) Antwort mit mehr Stimmen gezeigt, scheint dies einer der Schlüsselfälle zu sein, in denen aptitudeviel bessere Arbeit geleistet wird als apt-get. In meinem Fall habe ich apt-getdie Downgrade-Anfrage rundweg abgelehnt, wobei ich aptitudedarauf hingewiesen habe, dass es andere pkgs gibt, die von der neueren Version abhängen (und daher gleichzeitig ein Downgrade erfordern).
sxc731
28

Wenn Sie Software mit ppa aktualisiert haben, können Sie sie mit downgraden ppa-purge. Zuerst müssen Sie ppa-purgemit diesem Code installieren :

sudo apt-get install ppa-purge

Dann können Sie das ppa mit dem Befehl entfernen

sudo ppa-purge ppa: Benutzer / ppa-Name

Dadurch wird die Software automatisch auf die mit Ubuntu gelieferte Originalversion zurückgesetzt.

Apurba
quelle
1
Diese Lösung ist nur dann unerreicht, wenn das Paket Abhängigkeiten aufweist, die ebenfalls herabgestuft werden müssen. Vielen Dank!
und
1
Ja, dies ist die Lösung, die für mich am besten funktioniert hat, um KDE / Plasma-Desktops von kubuntu-ppa / backports herunterzustufen. Mir ist aufgefallen, dass in der .list-Datei des PPA die deb nicht auskommentiert sein darf, sodass ppa-purge auf alle Dateien verweisen kann das muss für die Spülung entfernt werden. Ich brauchte eine Minute, um herauszufinden, warum es zuerst nicht funktionierte. Hoffe das hilft anderen Menschen!
AveryFreeman
10

Um ein Downgrade durchzuführen, müssen Sie einen Befehl wie

 sudo apt-get install pkg_name=version

in Ihrem Terminal.

An die Stelle versionder vorherigen Version setzen, auf die Sie ein Downgrade durchführen möchten.

rɑːdʒɑ
quelle
Zumindest für Linux-Generika funktioniert dies nicht. Dies hängt von Paketen ab, die ebenfalls herabgestuft werden sollten. Ich bekomme paste.ubuntu.com/p/NWSmf2ZwTy
mymedia
9

Meiner Meinung nach sollten Sie das Paket zuerst deinstallieren oder löschen, wie zum Beispiel:

sudo apt-get remove <package>

oder

sudo apt-get purge <package>

Anschließend können Sie die Version herunterladen, die Sie installieren möchten, und sie in einem Ordner speichern, z. B. abc.debunter Downloads. Öffnen Sie das Terminal, wechseln Sie mit dem cdBefehl in den Ordner und installieren Sie die vorherige Version mit dpkg:

sudo dpkg -i abc.deb

Oder es gibt ein kleines Hilfsprogramm, das aufgerufen wird, ppa-purgewenn Sie Pakete, die über PPAs aktualisiert wurden, downgraden möchten.

Siehe diesen Thread: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html

Theeternalflame
quelle
3
Durch das Entfernen eines Pakets werden möglicherweise viele abhängige Pakete entfernt, was zu einem unbrauchbaren System führt. ppapurge klingt allerdings interessant.
Typ
12
Können Sie erklären, warum wir Ihrer Meinung nach zuerst Pakete deinstallieren sollten (als separater Schritt), bevor Sie ältere Versionen davon installieren?
Eliah Kagan
1
@temoto dieser Link dient zum Downgrade von Releases unstable-> testing-> stablenicht zum Downgrade einzelner Pakete.
Braiam
0

Diese Frage ist alt, aber Google hat mich hierher geführt, und ich habe keine einfache Lösung gefunden, die keine manuelle Versionsübergabe erfordert, wenn ein paar Pakete auf eine ältere Version heruntergestuft werden.

Vielleicht findet jemand, der das auch braucht, auch meine Lösung nützlich.

Es gibt ein Tool namens apt-show-versions, das die installierten Versionen anzeigt.

Sie können problemlos alle erforderlichen Pakete herunterstufen, indem Sie Regex optimieren. Hier ist es jedoch:

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

Stattdessen jessiekönnen Sie je nach Bedarf buster/ xenial/ etc verwenden.

gudvinr
quelle
Oder automatisch Herabstufung auf up-to-date - Version installiert: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). Ich ziehe es mit -Ffür grephier.
15.
Sie sollten sudo apt-show-versions -izuerst ausgeführt werden, wenn der Paketcache nicht mehr aktuell ist.
15.