Ini telah terjadi berulang kali pada saya dalam 5 tahun terakhir: pemutakhiran merusak sistem saya. Setiap kali saya berakhir dengan situasi ini, saya harus menginstal ulang seluruh sistem, yang benar-benar menjengkelkan.
Apakah ada cara untuk mengembalikan pemutakhiran terbaru untuk dapat memiliki sistem fungsional tanpa menginstal ulang? Jika tidak, yang merupakan cara terbaik untuk menyarankan ini sebagai ide prioritas utama?
Saya membaca ide ini dijelaskan di brainstorm.ubuntu.com, tetapi rasanya sudah mati ... dan forum penuh dengan contoh pemutakhiran yang melanggar hal-hal, itu sebabnya saya merasa perlu dilakukan sesuatu tentang topik ini. Terima kasih!
Jawaban:
Dalam sinaptik, Anda setidaknya dapat mengontrol, apa saja pembaruan terkini: File-menu, histori.
(jika sinaptik dapat dimulai, dengan sistem yang rusak). Jadi dengan perintah apt -...-, untuk mengembalikan pembaruan mereka, seharusnya tidak terlalu sulit.
Saya kira ada juga sejarah-perintah untuk baris perintah.
Mungkin Anda harus menghapus seluruh paket, dan menginstal versi tertentu. Afaik, mungkin untuk menginstal versi tertentu, tetapi saya tidak pernah perlu melakukannya.
pembaruan: Mencari bagaimana melakukannya dengan apt:
Temukan paket yang diinstal dalam 3x24j terakhir:
Dengan kebijakan apt-cache, Anda melihat versi program yang tersedia:
di sini 3.6.7 dan 3.6.3. Sekarang Anda tahu versi apa yang mungkin diinstal sebelumnya (seringkali bukan pendahulu langsung):
Maka Anda perlu melakukan apt-pinning, untuk mencegah pembaruan di masa mendatang:
Buat file baru di /etc/apt/preferences.d/ (jika> = 10.4) dinamai sesuai program Anda,
sumber
1.0.2g-1ubuntu4.12
sesuai dengan apt? Itu menolak untuk menerima itu sebagai nomor versi. Saya ingin menurunkan versi1.0.2g-1ubuntu4.13
ke1.0.2g-1ubuntu4.12
find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##'
saat ini. Ini kurang merepotkan untuk menginstal ulang seluruh sistem sayaSebagian besar Anda dapat berkonsultasi
/var/log/apt/history.log
untuk perubahan yang dilakukan oleh apt / synaptic. Ini hanya sedikit forensik dan banyak cut / paste yang harus dilakukan.Kembali ke tanggal ketika sistem Anda masih berfungsi dengan baik.
Pertama-tama ambil semua paket yang terinstal sejak saat itu dan satukan dalam skrip uninstall. Setelah skrip selesai, mulai tambahkan kembali semua paket yang dihapus lagi.
Contoh kasus:
logfile:
kamu bisa melihat,
diinstal oleh Synaptic. sebagai seperti
libfglrx:amd64
dihapus oleh Synaptic.Kami menjalankan urutan terbalik, jadi pertama-tama kami menghapus paket yang baru diinstal dan kami menambahkan kembali paket yang dihapus.
Perintah yang berfungsi untuk kasus ini bisa seperti:
Mungkin itu bukan ide terbaik untuk pergi tanpa
-y
saklar - untuk memiliki kontrol lebih besar tentang proses (untuk menghindari ketergantungan yang rusak). Sebagian besar dari Anda tidak akan mematahkan jari saat melakukan beberapa verifikasi "y"Dalam kebanyakan kasus, rollback dimungkinkan dengan cara ini, tetapi jika dependensi sudah terputus - Anda mungkin mengalami masalah yang lebih besar.
sumber
Sebagian besar waktu jika sistem Anda rusak itu adalah masalah kernel .
Cukup boot kernel yang lebih lama dan instal ulang paket terbaru (terutama paket kernel) yang mungkin tidak diperbarui dengan benar. Beberapa catatan:
adalah teman Anda untuk memeriksa apa daftar paket yang baru saja diperbarui / diinstal
sebagian besar waktu dapat memperbaiki paket setengah terinstal
sumber
Sayangnya belum ada cara untuk melakukan ini. Snapshot / rollback tingkat sistem file adalah salah satu fitur btrf yang akan datang, tetapi masih memiliki cara untuk menjadi fitur yang lengkap dan cukup stabil untuk digunakan sebagai sistem file default.
sumber
Saat melakukan upgrade besar, saya mengkloning disk menggunakan Clonezilla . Membakarnya di CD, memiliki HDD cadangan (eksternal) dan ikuti instruksi pada Clonezilla LiveCD. Pilih
partition-image
mode, ini menggunakan ruang paling sedikit.Jika Anda berpikir Anda telah merusak sistem Anda (atau ingin mengembalikan perubahan apa pun), cukup boot di Clonezilla LiveCD, pilih gambar pada HDD (eksternal) Anda dan kembalikan. Karena gambar-gambar ini adalah salinan literal dari setiap bit pada disk Anda, ini mungkin memakan waktu beberapa jam tergantung pada kecepatan disk Anda dan kecepatan koneksi (koneksi antara data, biasanya HDD USB eksternal, dan komputer).
Omong-omong, ini disebut metode cadangan.
sumber
Anda dapat menginstal versi lebih lama dari paket yang diberikan (downgrade) dengan apt atau dpkg dengan mudah . Menemukan versi yang lebih lama dari paket adalah masalah karena ini sering menghilang dari kolam dan mirror sebagai pembaruan masuk.
Jika Anda menginstal paket dari CD instal atau mirror yang ketinggalan zaman atau cache, Anda juga perlu menyimpannya di versi lama agar tidak diupgrade hingga Anda mengizinkannya. Yang berarti Anda harus melihat pembaruan dan mengujinya sampai masalah Anda diperbaiki. Ini tentu saja merupakan masalah karena sementara itu (mungkin selamanya) Anda akan dibiarkan dengan paket yang belum diperbaiki, mungkin tidak aman. Itu berarti setiap pengguna dengan beberapa jenis masalah sistem akan dibiarkan dalam keadaan acak sampai mereka dapat menyelesaikannya.
Semua perangkat lunak juga tidak kompatibel ke depan, sehingga versi yang lebih lama dari sesuatu mungkin tidak berperilaku baik ketika diumpankan dengan konfigurasi yang lebih baru atau file data. Jelas ini tidak mungkin untuk diselesaikan kecuali Anda juga memutar kembali semua data pengguna ke kondisi sebelum upgrade dilakukan.
Akan lebih bagus jika ada cara untuk melakukan ini, tetapi itu secara besar-besaran bermasalah. Siapa pun yang berpikir ada solusi yang koheren harus menulis proposal dan mengundang komentar atau, lebih baik lagi, membuat bukti solusi konsep (kode, skrip, dokumen). Troll dan merengek tidak konstruktif.
Karena tidak ada solusi teknis yang bersih, sebagian besar perangkat lunak dikembangkan (dan terintegrasi) dengan mentalitas "satu-satunya jalan adalah maju". Mencoba mengelola versi yang sudah usang adalah buang waktu semua orang. Masalah yang ditemukan diperbaiki dalam versi yang lebih baru ASAP. Sebagai solusi kecil, saya ingin melihat arsip versi paket sebelumnya disimpan di suatu tempat untuk penyelesaian sementara sesekali.
Sementara itu Anda dapat melaporkan bug dan jangan berharap perangkat lunak yang berdarah tidak pernah gagal. Perbaikan, setelah ditemukan, harus di pembaruan berikutnya. Dev adalah manusia (kebanyakan), dan karena itu bisa keliru. Komputer itu fiddly dan penuh variasi dan detail gila. Sistem yang dipelihara secara defensif menggunakan komponen yang didukung dengan baik dan distribusi perangkat lunak terintegrasi yang stabil dapat menjadi sangat stabil tanpa menjadi tidak aman atau tidak dapat di-upgrade meskipun ini.
sumber