Saya menginstal dan menguji banyak aplikasi di VM Linux saya. Setelah selesai dengan pengujian, saya akan menghapus paket terinstal yang tidak lagi digunakan. Karena saya sering menginstal banyak aplikasi, saya merasa agak memakan waktu untuk menghapus paket secara manual satu per satu. Saya juga terkadang lupa untuk meng-uninstall paket-paket yang tidak perlu. Jika Anda seperti saya, berikut adalah solusi sederhana untuk menemukan dan menghapus semua paket yang diinstal pada tanggal dan waktu tertentu di Linux.
Seperti yang mungkin sudah Anda ketahui, kami dapat menemukan daftar paket yang diinstal yang diurutkan berdasarkan tanggal instalasi di berbagai Linux distribusi menggunakan salah satu dari perintah berikut.
On Arch Linux, EndeavourOS dan Manjaro Linux:
$ expac --timefmt='%Y-%m-%d %T' '%lt%n'|sort -n
On Fedora , RHEL, CentOS, AlmaLinux dan Rocky Linux:
$ sudo rpm -qa --last
On Debian, Ubuntu, Linux Mint, dan Pop OS:
$ grep " install " /var/log/dpkg.log
Perintah di atas akan menampilkan semua paket dipasang pada semua tanggal. Namun, kami tertarik untuk menemukan dan menghapus paket yang diinstal pada tanggal dan waktu tertentu saja.
Kita dapat menggunakan parameter %yyyy-%mm-%dd dengan perintah grep untuk mendaftar semua paket yang diinstal pada tanggal dan waktu tertentu.
Misalnya, perintah berikut menampilkan semua paket yang diinstal pada 14 September 2021 di sistem bullseye Debian 11 saya.
$ grep "2021-09-14.*.install" /var/log/dpkg.log
Sample output:
2021-09-14 06:51 :51 instal tmpreaper:amd64 1.6.14+nmu2 2021-09-14 11:14:14 instal hello:amd64 2.10-2 2021-09-14 11:17:13 instal hello:amd64 2.10-2 2021-09-14 11:17:13 instal tmreaper:amd64 1.6.14+nmu2 2021-09-14 11:22:29 instal hello:amd64 2.10-2 2021-09-14 11:22:29 instal tmpreaper:amd64 1.6.14+nmu2 2021-09-14 11:41:16 instal nano:amd64 5.4-2 5.4-2 2021-09-14 11:41:17 instal tmpreaper:amd64 1.6.14+nmu2 2021-09-14 11:41:17 instal vim-runtime:all 2:8.2.2434-3 2:8.2.2434-3 2021-09-14 11:41:18 instal vim:amd64 2:8.2.2434-3 2:8.2.2434-3nbs pSeperti yang Anda lihat pada output di atas, saya telah menginstal paket tmpreaper, vim dan nano.
Jika rotasi log diaktifkan, isi file /var/log/dpkg.log akan dihapus. Dalam hal ini, Anda dapat melihat file log penginstalan sebelumnya menggunakan perintah:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1
Jika Anda hanya ingin mencantumkan nama paket, tidak termasuk instal tanggal/waktu dan detail arsitektur dari output, jalankan:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ cetak $4 }' | cut -d: -f1
Sekarang Anda hanya akan melihat nama paket yang terinstal pada tanggal yang ditentukan:
tmpreaper hello hello tmpreaper hello tmpreaper nano tmpreaper vim-runtime vim
Sekarang kita telah mendapatkan nama semua paket yang diinstal pada tanggal yang ditentukan.
Untuk menghapus semua paket yang diinstal pada tanggal tertentu, cukup tambahkan argumen perintah apt masing-masing dengan xargs di akhir perintah sebelumnya.
Harap dicatat bahwa perintah berikut tidak akan meminta konfirmasi pengguna sebelum menghapus paket. Jadi, selalu praktik yang baik untuk melakukan proses kering untuk memverifikasi paket mana yang akan dihapus sebelum menjalankan perintah yang sebenarnya.
Untuk mensimulasikan (menjalankan kering) proses penghapusan paket, cukup tambahkan -s atau --simulate seperti di bawah ini.
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ cetak $4 }' | potong -d: -f1 | xargs sudo apt purge -y -s
Perintah di atas hanya akan mensimulasikan proses penghapusan paket, tetapi tidak akan menghapus paket.
Setelah Anda mengetahui paket mana yang akan dihapus, jalankan kembali perintah di atas tanpa -s atau --simulate pilihan:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ cetak $4 }' | potong -d: -f1 | xargs sudo apt purge -y
Jika rotasi log diaktifkan, jalankan perintah ini sebagai gantinya:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1 | awk '{ cetak $4 }' | potong -d: -f1 | xargs sudo apt purge -y
Kali ini paket yang diinstal pada tanggal yang ditentukan akan dihapus dari sistem Anda.
Baca terkait:
Cara Menemukan Dan Menghapus Paket yang Tidak Digunakan Di LinuxCara Menghapus Paket Terinstal Dari Repositori Tertentu Di CentOS, FedoraCara Mudah Menginstal Dan Hapus Grup Paket Di Arch LinuxCara Mudah Untuk Menghapus Program yang Diinstal Dari Sumber Di Linux