Jak obniżyć pakiet za pomocą apt-get?

309

Jak mogę obniżyć pakiet do starszej wersji za pośrednictwem apt-get?

Inne narzędzia są również dopuszczalne, ale apt-getsą preferowane.

Zanna
źródło

Odpowiedzi:

306

Jeśli masz numer wersji lub wersję docelową, apt-getobsługuje wybranie określonej wersji lub wersji docelowej. Więcej informacji można znaleźć na stronie podręcznika apt-get . Można również uzyskać dostęp z terminala, wpisującman apt-get

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

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

to polecenie do uruchomienia. Można to wykorzystać do obniżenia oceny pakietu do określonej wersji.

Zostało to pomocne w komentarzach, które

  • apt-cache showpkg <package-name>wyświetla wszystkie dostępne wersje. (h / t Sparhawk )
  • apt-mark hold <package-name> „trzyma” pakiet w bieżącej wersji, uniemożliwiając automatyczne aktualizacje. (h / t Luís de Sousa )
Mahesh
źródło
58
Użyj także, apt-cache showpkg <package-name>aby wyświetlić listę dostępnych wersji.
Sparhawk
16
A potem możesz też chcieć uruchomić: apt-mark hold <package-name>aby uniknąć automatycznych aktualizacji.
Luís de Sousa
4
Odkryłem, że aptitudeobniżyłem te zależności lepiej niż apt-get.
krispy
5
apt-cache policy <package-name>pokazuje tylko zainstalowane i dostępne wersje
Michael Lawton,
18
A co jeśli showpkgnie pokaże wersji, którą jesteś zainteresowany?
demongolem
103

POSŁUGIWAĆ SIĘ

apt-get install «pkg»=«version»

LUB

sudo aptitude install «pkg»=«version»

Gdzie „pkg” to nazwa pakietu, a „wersja” to numer wersji.

Danorton
źródło
3
po apt-get install pkg=version
wpisaniu
Jak wskazano w (w przeciwnym razie identycznej) odpowiedzi z większą liczbą głosów, wydaje się, że jest to jeden z kluczowych przypadków, w których aptitudepraca jest znacznie lepsza niż apt-get. W moim przypadku apt-getstanowczo odrzuciłem prośbę o obniżenie wersji, podczas gdy aptitudezwróciłem uwagę, że istnieją inne pakiety pkg, które zależą od nowszej wersji (i dlatego wymagają obniżenia w tym samym czasie).
sxc731,
28

Jeśli zaktualizowałeś oprogramowanie za pomocą ppa, możesz go obniżyć za pomocą ppa-purge. Najpierw musisz zainstalować ppa-purgeprzy użyciu tego kodu:

sudo apt-get install ppa-purge

Następnie możesz usunąć ppa za pomocą polecenia

sudo ppa-purge ppa: nazwa użytkownika / ppa

spowoduje to automatyczną zmianę oprogramowania do oryginalnej wersji dostarczonej z Ubuntu.

Apurba
źródło
1
To rozwiązanie jest niedopasowane w przypadku, gdy pakiet ma zależności, które również należy obniżyć. Dzięki!
i
1
Tak, to rozwiązanie, które działało dla mnie najlepiej w przypadku obniżenia wersji KDE / Plazmy z kubuntu-ppa / backports - zauważyłem, że plik .list PPA nie może mieć komentarza, więc ppa-purge może odwoływać się do wszystkich plików które należy usunąć w celu oczyszczenia. Zajęło mi chwilę, aby dowiedzieć się, dlaczego to na początku nie działało. Mam nadzieję, że pomaga innym ludziom!
AveryFreeman
10

Aby obniżyć wersję, musisz wykonać polecenie takie jak

 sudo apt-get install pkg_name=version

w twoim terminalu.

W miejscu versionumieszczenia poprzedniej wersji, do której chcesz obniżyć wersję.

rɑːdʒɑ
źródło
Nie działa to przynajmniej w przypadku systemu Linux, który zależy od pakietów, które również powinny zostać obniżone. Dostaję paste.ubuntu.com/p/NWSmf2ZwTy
mymedia
9

Moim zdaniem należy najpierw odinstalować lub wyczyścić pakiet, na przykład:

sudo apt-get remove <package>

lub

sudo apt-get purge <package>

Następnie możesz pobrać wersję, którą chcesz zainstalować, i przechowywać ją w folderze, powiedzmy abc.debw Pobrane. Otwórz terminal, przejdź do folderu za pomocą cdpolecenia i zainstaluj poprzednią wersję, używając dpkg:

sudo dpkg -i abc.deb

Albo istnieje małe narzędzie o nazwie, ppa-purgejeśli chcesz obniżyć pakiety zaktualizowane za pośrednictwem PPA.

Zobacz ten wątek: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html

Theeternalflame
źródło
3
usunięcie pakietu może usunąć wiele zależnych, co spowoduje, że system będzie bezużyteczny. ppapurge brzmi jednak interesująco.
wpisz
12
Czy możesz wyjaśnić, dlaczego Twoim zdaniem powinniśmy najpierw odinstalować pakiety (jako osobny krok) przed zainstalowaniem ich starszych wersji?
Eliah Kagan,
1
@temoto ten link służy do obniżania wersji unstable-> testing-> stablenie do obniżania poziomu poszczególnych pakietów.
Braiam
0

To pytanie jest stare, ale Google doprowadziło mnie tutaj i nie znalazłem prostego soulution, który nie wymaga ręcznego przekazywania wersji, gdy obniżam wiązkę pakietów do starszej wersji.

Więc może ktoś, kto również tego potrzebuje, również przyda się mojemu rozwiązaniu.

Istnieje narzędzie o nazwie, apt-show-versionsktóre pokazuje zainstalowane wersje.

Możesz łatwo obniżyć wszystkie wymagane pakiety, dostosowując wyrażenie regularne, ale oto:

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

Zamiast tego jessiemożesz użyć buster/ xenial/ etc w zależności od potrzeb.

gudvinr
źródło
Lub automatycznie przełączyć się na up-to-date zainstalowane wydanie: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). I wolą używać -Fdla greptutaj.
jarno
sudo apt-show-versions -iNajpierw uruchom , jeśli pamięć podręczna pakietu jest nieaktualna.
jarno