Bagaimana saya bisa menghapus semua pembaruan yang diinstal setelah tanggal tertentu?

12

Saya telah mengizinkan manajer pembaruan untuk menginstal pembaruan 200 Mib, dan saya pikir pembaruan ini menjalankan driver grafis saya menjadi masalah. Jadi, saya perlu cara untuk menghapus pembaruan yang telah diinstal sejak 30 Mei 12 misalnya (atau tanggal lainnya). Jika saya harus menghapusnya secara manual (dalam kasus menghapusnya satu per satu), Anda diminta untuk memberi saya petunjuk tentang cara melakukannya.

kreatif
sumber

Jawaban:

8

Ada alternatif, pendekatan baris perintah untuk mendapatkan riwayat instalasi.

Manajer paket apttampaknya mencatat semuanya /var/log/apt/history.logdan /var/log/apt/term.log, termasuk memisahkan semuanya dengan datestamps. Keduanya mengandung informasi yang mirip dan dapat digunakan tetapi term.logkeduanya lebih bertele-tele dan tidak secara eksplisit menunjukkan apa yang memulai operasi.

Log riwayat

/var/log/apt/history.logmenyimpan ringkasan singkat dari setiap proses apt. Berikut cuplikan milik saya untuk instalasi manual:

Start-Date: 2014-08-22  17:17:52
Commandline: apt-get install nautilus-dropbox
Install: nautilus-dropbox:amd64 (1.6.1-1), python-gpgme:amd64 (0.3-0ubuntu3, automatic)
End-Date: 2014-08-22  17:19:13

The Commandline:lapangan menunjukkan apa yang memicu pelarian, dan dalam kasus instalasi yang dibuat oleh manajer update itu harus terlihat seperti:

Commandline: aptdaemon role='role-commit-packages' sender=':1.131'

... dan ada daftar paket Anda, diurutkan berdasarkan tanggal, metode, dan tindakan (instal / tingkatkan / hapus). Perhatikan bahwa jika Anda ingin meneruskan paket-paket ini kembali ke apt-get remove ...:

  • Seperti yang disebutkan , ini sepenuhnya menghapus paket daripada mengembalikannya. Informasi dalam log tentu saja dapat digunakan untuk melihat paket yang ditingkatkan, meskipun mengembalikannya adalah masalah lain.
  • Anda harus menghapus tanda kurung, kontennya dan pemisah koma dari daftar melalui metode manipulasi teks pilihan Anda (misalnya sed, vimdll.). Jadi jika saya ingin menghapus paket-paket di snippet di atas, saya dapat menggunakan baris secara relatif langsung:

    sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
    

Log terminal

Umumnya /var/log/apt/term.logterstruktur kurang nyaman tetapi, demi kelengkapan, Anda bisa mendapatkan informasi yang sama. Output terminal dibatasi oleh stempel waktu lagi, dan instalasi paket dapat diperoleh dari garis-garis bentuk berikut:

Selecting previously unselected package nautilus-dropbox.

Berikut ini adalah salah satu cara mencetak daftar paket yang diinstal ke terminal untuk seluruh log:

$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log

Ini dapat disesuaikan atau diperluas untuk mendapatkan instalasi dalam rentang tanggal.

Kepala Listrik
sumber
1
Jika ini dapat membuat hidup seseorang lebih mudah, inilah sed potongan saya digunakan untuk menghapus parens dan koma dari /var/log/apt/history.log terdaftar paket sehingga saya bisa memberi makan mereka untuk apt-get remove: sed 's/ ([^)]*)//g' | sed 's/,//g').
Apteryx
4

Catatan: Tidak seperti Windows, menghapus pembaruan di Ubuntu biasanya akan menghapus instalasi paket / program tersebut dan tidak akan dengan mudah mengembalikan (atau menurunkan versi) ke versi sebelumnya.

Anda dapat membuka Pusat Perangkat Lunak Ubuntu, dan mengklik riwayat

masukkan deskripsi gambar di sini

Setelah Anda melakukannya, klik pada pembaruan, dan itu akan menunjukkan kepada Anda semua pembaruan yang diinstal pada sistem Anda. Setelah Anda mengetahui pembaruan yang perlu Anda hapus, Anda perlu melakukannya secara manual.

masukkan deskripsi gambar di sini

Untuk menghapus, Anda dapat menggunakan Synaptic Package Manager. Jika Anda belum menginstalnya, Anda dapat menginstalnya dari

Mitch
sumber
terima kasih. Apakah itu melibatkan perintah pada terminal untuk melakukannya?
materi iklan