Saya keliru mengaktifkan repositori pembaruan Pra-rilis (disarankan) dan kemudian memutakhirkan semua paket.
Bagaimana saya bisa membatalkan ini?
Ini adalah hasil tes dari instruksi @ enzotib dan hasil tes dari instruksi saya .
Saya keliru mengaktifkan repositori pembaruan Pra-rilis (disarankan) dan kemudian memutakhirkan semua paket.
Bagaimana saya bisa membatalkan ini?
Ini adalah hasil tes dari instruksi @ enzotib dan hasil tes dari instruksi saya .
Jawaban:
Berikut cara yang lebih umum untuk kembali dari paket yang diinstal secara lokal, paket yang diusulkan dan backports ke saluran + pembaruan yang stabil. Sementara jawaban lain benar dan bekerja dengan cara yang sama, saya pikir ini adalah pendekatan yang lebih elegan.
-proposed
atau -backports
dalam file Anda /etc/apt/sources.list
dan /etc/apt/sources.list.d/*
.Tambahkan file apt-preferensi, misalnya /etc/apt/preferences.d/99-back-to-stable-updates
berisi (untuk di precise
sini - ganti dengan versi Anda):
Package: *
Pin: release a=precise
Pin-Priority: 1001
Package: *
Pin: release a=precise-updates
Pin-Priority: 1001
Package: *
Pin: release a=precise-security
Pin-Priority: 1001
Package: *
Pin: release a=precise-proposed
Pin-Priority: -10
Package: *
Pin: release a=precise-backports
Pin-Priority: -10
Menyematkan> 1000 ini akan membuat downgrade paksa pada paket dari saluran itu dan prioritas <0 pada -proposed
dan -backports
saluran juga akan menghapus paket tambahan apa pun.
Sekarang jalankan
sudo apt-get update
sudo apt-get dist-upgrade
Periksa solusi yang diusulkan untuk Anda, dan jika Anda pikir tidak apa-apa, terima saja. Jika Anda perlu memeriksa mengapa dan versi apa yang akan diturunkan, periksa ini apt-cache policy packagename
untuk melihat versi apa yang tersedia dan apa yang tepat untuk menentukan calon instalasi.
Hapus /etc/apt/preferences.d/99-back-to-stable-updates
file lagi, karena tidak diperlukan lagi.
Terima kasih mlind
di forum Ubuntu untuk inspirasi ini dalam menyematkan posnya lebih dari 5 tahun yang lalu - namun ini membantu saya dengan cukup baik hari ini.
Halaman ini menunjukkan bahwa pin Apt dapat digunakan untuk menurunkan versi dari seluruh repositori dengan memanfaatkan fakta bahwa prioritas pin yang lebih tinggi dari 1000 dapat menyebabkan penurunan versi paket .
Satu solusi, dengan demikian, untuk sementara meningkatkan 1000 prioritas prioritas semua file paket kecuali untuk yang dari natty-proposed
repositori:
apt-cache policy | awk '
/^ [0-9]+ / {
p = $1;
getline;
r = $0;
if (r !~ /a=natty-proposed/) p += 1000;
print "Package: *\nPin: " r "\nPin-priority: " p "\n"
}
' | sudo tee /etc/apt/preferences.d/downgrade-from-natty-proposed
(Catatan: Metode ini gagal meningkatkan prioritas file paket yang bidang rilisnya mengandung koma. Lihat pertanyaan ini .)
Setelah melakukan ini, apt-get --simulate upgrade
dapat digunakan untuk menguji deteksi downgrade yang berhasil. Setelah mengonfirmasi bahwa penurunan peringkat yang benar terdeteksi, sudo apt-get upgrade
seharusnya hanya yang diperlukan untuk melakukan penurunan versi.
Ketika downgrade selesai, gunakan Sumber Perangkat Lunak untuk menonaktifkan repositori pembaruan Pra-rilis (disarankan) , kemudian hapus peningkatan prioritas sementara:
sudo rm /etc/apt/preferences.d/downgrade-from-natty-proposed
Terakhir, reboot agar semua program yang berjalan adalah versi yang diturunkan.
Saya tidak dapat menemukan solusi yang lebih sederhana daripada yang berikut ini. Namun berharap seseorang masuk dengan jawaban yang lebih baik.
Script berikut yang bisa menjalankan downgrade
#!/bin/bash
# get a list of installed packages
dpkg --get-selections | awk '{ print $1 }' > all-packages
# run apt-cache policy on each of them, then elaborate with the awk script
apt-cache policy $(<all-packages) |
./get-prev-pkg-vers >old-versions
# install previous version of packages
sudo apt-get --simulate install $(< old-versions)
The awk
Script, bernama get-prev-pkg-vers
adalah sebagai berikut
#!/usr/bin/awk -f
/^[^ ]/ {
package = $1
gsub(":", "", package)
search_next = 0
}
/^ [^ ]/ {
installed = 0
version = $1
if (search_next == 1) {
print package "=" version
search_next = 0
}
}
/^ \*\*\* [^ ]/ {
installed = 1
}
/^ [^ ]/ {
branch = $3
if (installed == 1 && branch ~ /proposed/) {
search_next = 1
}
installed = 0
}
Saat menjalankan skrip, repo yang diusulkan TIDAK seharusnya dinonaktifkan.
Ingatlah untuk mengatur bit yang dapat dieksekusi pada kedua skrip.
Masalah dengan pendekatan ini adalah bahwa semua paket yang di-downgrade akan menghasilkan terinstal secara manual (juga yang diinstal secara otomatis).
Agar aman, tambahkan --simulate
opsi apt-get
di akhir skrip bash.
Mengembalikan semua paket dari natty-usulan mungkin tidak diperlukan: sebagian besar paket akan segera diperbarui ke versi yang sama melalui natty-pembaruan.
Jika Anda memiliki masalah dengan satu paket, Anda bisa mengembalikan satu paket menggunakan metode darent present (setelah menonaktifkan -proposed), atau Anda bisa menggunakan sudo aptitude install packagename/natty
. Tetapi yang lebih penting, Anda harus mengajukan bug terhadap paket. Hanya sedikit orang yang benar-benar menguji yang diusulkan, dan jika regresi (= masalah baru) terjadi mereka pasti harus dilaporkan. Kalau tidak, mereka mungkin berakhir dengan pembaruan untuk semua pengguna ubuntu. Jadi, jika Anda memiliki masalah, silakan laporkan.
Dalam sinaptik Anda dapat menonaktifkan repositori untuk diusulkan dan memperbarui sumber Anda. Maka Anda akan melihat bahwa semua paket daripada yang telah diperbarui muncul sebagai yang dipasang secara lokal (karena tidak ada dalam repo lagi).
Sekarang Anda harus "menurunkan versi" paket-paket itu. Pilih satu per satu, dan di menu atas pilih:
package > force version
(atau Kontrol + E)
Menu akan muncul dengan opsi yang tersedia. Saya akan memilih nomor versi yang lebih rendah untuk setiap paket. Jika Anda membuat kesalahan dan ada versi yang lebih baru di repo normal, itu akan diselesaikan di pembaruan nanti.
Solusi cepatnya adalah dengan menggunakan perintah purge-ppa yang menunjuk ke repositori berporp, tetapi tidak tahu apakah itu akan bekerja dengan mereka, saya hanya menggunakannya untuk membersihkan paket ppa eksternal dan menurunkan versi ke versi ubuntu resmi. Saya tidak akan merekomendasikan Anda untuk melakukan ini dalam kasus ini, mungkin seseorang tahu jika ini metode yang aman ...
Saya mengusulkan untuk menyediakan fungsi untuk menurunkan versi semua proposed
paket dengan perintah sederhana yang dikelola dengan setara ppa-purge
di https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499 karena tulisan di sini tampaknya masih mewakili keadaan sistem.
"diusulkan" - mengerti?