Bagaimana cara menurunkan versi paket melalui apt-get?

309

Bagaimana cara menurunkan versi paket ke versi yang lebih lama apt-get?

Alat lain juga dapat diterima tetapi apt-getlebih disukai.

Zanna
sumber

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 )
Mahesh
sumber
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.

danorton
sumber
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.

Apurba
sumber
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.

rɑːdʒɑ
sumber
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

Api abadi
sumber
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.

gudvinr
sumber
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