Bagaimana cara menurunkan versi paket melalui apt-get?


Jawaban:


307

Jika Anda memiliki nomor versi, atau rilis target, apt-getmendukung memilih versi tertentu atau rilis target. Rincian lebih lanjut dapat ditemukan di halaman manual apt-get . Itu juga dapat diakses dari terminal dengan mengetikman apt-get

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

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

adalah perintah yang harus dijalankan. Ini dapat digunakan untuk menurunkan kelas suatu paket ke versi tertentu.

Telah membantu ditunjukkan dalam komentar itu

  • apt-cache showpkg <package-name>daftar semua versi yang tersedia. (h / t Sparhawk )
  • apt-mark hold <package-name> "memegang" paket pada versi saat ini, mencegah peningkatan otomatis. (h / t Luís de Sousa )

58
Juga, gunakan apt-cache showpkg <package-name>untuk mendaftar versi yang tersedia.
Sparhawk

16
Dan setelah itu Anda mungkin juga ingin menjalankan: apt-mark hold <package-name>untuk menghindari peningkatan otomatis.
Luís de Sousa

4
Saya menemukan bahwa aptitudemenurunkan dependensi lebih baik daripada apt-get.
krispy

5
apt-cache policy <package-name>hanya menunjukkan versi yang diinstal dan tersedia
Michael Lawton

18
Dan bagaimana jika showpkgtidak menunjukkan versi yang Anda minati?
demongolem

104

MENGGUNAKAN

apt-get install «pkg»=«version»

ATAU

sudo aptitude install «pkg»=«version»

Di mana «pkg» adalah nama paket, dan «versi» adalah nomor versi.


3
ketika saya mengetik penawaran apt-get install pkg=versionapt-get menghapus hampir setengah dari semua paket yang diinstal yang tentu saja tidak apa yang ingin saya lakukan
Dfr

Seperti yang ditunjukkan dalam jawaban (yang identik) dengan lebih banyak suara, ini tampaknya menjadi salah satu kasus utama di mana aptitudemelakukan pekerjaan yang jauh lebih baik daripada apt-get. Dalam kasus saya apt-getdengan tegas menolak permintaan downgrade, sedangkan aptitudemenunjukkan bahwa ada pkg lain yang bergantung pada versi yang lebih baru (dan karenanya perlu diturunkan pada waktu yang sama).
sxc731

28

Jika Anda telah memutakhirkan perangkat lunak menggunakan ppa, Anda dapat menurunkannya dengan menggunakan ppa-purge. Pertama, Anda harus menginstal ppa-purgemenggunakan kode ini:

sudo apt-get install ppa-purge

Kemudian Anda dapat menghapus ppa menggunakan perintah

sudo ppa-purge ppa: nama pengguna / ppa

ini akan secara otomatis menurunkan versi perangkat lunak ke versi aslinya yang dikirimkan bersama Ubuntu.


1
Solusi ini hanya tidak cocok jika paket memiliki dependensi yang juga harus diturunkan. Terima kasih!
dan

1
Ya ini adalah solusi yang paling baik bagi saya untuk menurunkan desktop KDE / Plasma dari kubuntu-ppa / backports - satu hal yang saya perhatikan adalah file .list PPA tidak boleh memiliki deb komentar, sehingga ppa-purge dapat mereferensikan semua file yang perlu dihapus untuk pembersihan. Butuh waktu sebentar untuk mencari tahu mengapa itu tidak berhasil pada awalnya. Semoga itu bisa membantu orang lain!
AveryFreeman

10

Untuk menurunkan versi Anda harus melakukan perintah seperti

 sudo apt-get install pkg_name=version

di terminal Anda.

Di tempat versionmeletakkan versi sebelumnya Anda ingin downgrade ke.


Itu tidak berfungsi setidaknya untuk linux-generic yang tergantung pada paket yang harus diturunkan juga. Saya mendapatkan paste.ubuntu.com/p/NWSmf2ZwTy
mymedia

9

Menurut pendapat saya, Anda harus terlebih dahulu menghapus atau membersihkan paket, seperti:

sudo apt-get remove <package>

atau

sudo apt-get purge <package>

Kemudian, Anda dapat mengunduh versi yang ingin Anda instal dan menyimpannya di folder, misalnya abc.debdi Unduhan. Buka terminal, pindah ke folder menggunakan cdperintah dan instal versi sebelumnya menggunakan dpkg:

sudo dpkg -i abc.deb

Atau yang lain, ada utilitas kecil yang disebut ppa-purgejika Anda bermaksud menurunkan versi paket yang diperbarui melalui PPA.

Lihat utas ini: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
menghapus suatu paket dapat menghapus banyak yang tergantung, menghasilkan sistem yang tidak dapat digunakan. ppapurge terdengar menarik.
ketik

12
Bisakah Anda menjelaskan mengapa Anda yakin kami harus menghapus dulu paket (sebagai langkah terpisah) sebelum menginstal versi yang lebih lama?
Eliah Kagan


1
@temoto tautan itu adalah untuk menurunkan versi rilis unstable-> testing-> stableuntuk tidak menurunkan versi masing-masing paket.
Braiam

0

Pertanyaan ini sudah lama tetapi google membawa saya ke sini dan saya tidak menemukan soulution sederhana yang tidak memerlukan versi manual lewat ketika menurunkan banyak paket ke rilis yang lebih lama.

Jadi mungkin seseorang yang juga membutuhkan itu akan menemukan solusi yang berguna juga.

Ada alat yang disebut apt-show-versionsyang menunjukkan versi yang diinstal.

Anda dapat dengan mudah menurunkan semua paket yang dibutuhkan dengan menyelaraskan regex tetapi ini dia:

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

Alih-alih jessieAnda dapat menggunakan buster/ xenial/ etc tergantung pada kebutuhan Anda.


Atau secara otomatis downgrade ke up-to-date diinstal rilis: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). Saya lebih suka menggunakan -Funtuk di grepsini.
jarno

Anda harus menjalankannya sudo apt-show-versions -iterlebih dahulu, jika cache paket sudah usang.
jarno
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.