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 menghapus 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 terinstal yang diurutkan berdasarkan tanggal penginstalan di berbagai distribusi Linux menggunakan salah satu dari perintah berikut.
Di Arch Linux, EndeavourOS dan Manjaro Linux:
$ expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n
Di Fedora, RHEL, CentOS, AlmaLinux dan Rocky Linux:
$ sudo rpm -qa --last
Di Debian, Ubuntu, Linux Mint, dan Pop OS:
$ grep " install " /var/log/dpkg.log
Perintah di atas akan mencantumkan semua paket yang diinstal pada semua tanggal. Namun, kami tertarik untuk menemukan dan menghapus paket yang diinstal pada tanggal dan waktu tertentu saja.
Kita bisa menggunakan %yyyy-%mm-%dd
parameter dengan grep perintah 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
Contoh keluaran:
2021-09-14 06:51:51 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:14:14 install hello:amd64 <none> 2.10-2 2021-09-14 11:17:13 install hello:amd64 <none> 2.10-2 2021-09-14 11:17:13 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:22:29 install hello:amd64 <none> 2.10-2 2021-09-14 11:22:29 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:41:16 install nano:amd64 5.4-2 5.4-2 2021-09-14 11:41:17 install tmpreaper:amd64 <none> 1.6.14+nmu2 2021-09-14 11:41:17 install vim-runtime:all 2:8.2.2434-3 2:8.2.2434-3 2021-09-14 11:41:18 install vim:amd64 2:8.2.2434-3 2:8.2.2434-3
Seperti yang Anda lihat pada output di atas, saya telah menginstal tmreaper , vim dan nano paket.
Jika rotasi log diaktifkan, konten /var/log/dpkg.log
berkas akan dihapus. Dalam hal ini, Anda dapat melihat file log instalasi sebelumnya menggunakan perintah:
$ grep "2021-09-14.*.install " /var/log/dpkg.log.1
Jika Anda hanya ingin membuat daftar nama paket, tidak termasuk tanggal/waktu penginstalan dan detail arsitektur dari output, jalankan:
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -d: -f1
Sekarang Anda hanya akan melihat nama paket yang diinstal pada tanggal yang ditentukan:
tmpreaper hello hello tmpreaper hello tmpreaper nano tmpreaper vim-runtime vim
Kami sekarang memiliki nama semua paket yang diinstal pada tanggal yang ditentukan.
Untuk menghapus instalasi semua paket yang diinstal pada tanggal tertentu, cukup tambahkan masing-masing apt
argumen perintah dengan xargs
di akhir perintah sebelumnya.
Harap diperhatikan bahwa perintah berikut tidak akan meminta konfirmasi pengguna apa pun sebelum menghapus paket. Jadi, selalu merupakan praktik yang baik untuk melakukan lari kering untuk memverifikasi paket mana yang akan dihapus sebelum menjalankan perintah yang sebenarnya.
Untuk mensimulasikan (dry run) proses penghapusan paket, cukup tambahkan -s
atau --simulate
seperti di bawah ini.
$ grep "2021-09-14.*.install " /var/log/dpkg.log | awk '{ print $4 }' | cut -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 '{ print $4 }' | cut -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 '{ print $4 }' | cut -d: -f1 | xargs sudo apt purge -y
Kali ini paket yang diinstal pada tanggal yang ditentukan akan dihapus dari sistem Anda.
Bacaan terkait:
- Cara Menemukan Dan Menghapus Paket yang Tidak Digunakan Di Linux
- Cara Menghapus Paket yang Diinstal Dari Repositori Tertentu Di CentOS, Fedora
- Cara Mudah Memasang Dan Menghapus Grup Paket Di Arch Linux
- Cara Mudah Menghapus Program yang Diinstal Dari Sumber Di Linux