Saya memelihara kawanan server EC2 dengan memungkinkan. Server secara teratur diperbarui dan ditingkatkan menggunakan modul apt .
Ketika saya mencoba memutakhirkan server secara manual, saya menerima pesan berikut:
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
linux-headers-3.13.0-29 linux-headers-3.13.0-29-generic
linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic
linux-image-3.13.0-29-generic linux-image-3.13.0-32-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Apakah ada cara untuk menjalankan sudo apt-get autoremove
dengan kemungkinan?
command
modul untuk melakukan perintah raw shell.Jawaban:
Dukungan untuk
apt-get
opsi--auto-remove
sekarang dimasukkan ke dalamapt
(opsiautoremove
) Ansible pada versi 2.1. Dokumentasi resmi ada di http://docs.ansible.com/ansible/apt_module.htmlPenggabungan terjadi di sini .
Catatan yang
autoclean
juga tersedia pada 2.4sumber
Metode sederhana ini hanya membutuhkan satu tugas
sumber
Anda dapat melakukannya dengan
command
(belum diuji):Namun, saya pikir itu bisa berisiko untuk berjalan
autoremove
secara otomatis. Karena kesalahan administrasi sistem yang pernah Anda buat di masa lalu (ini mungkin dalam kode yang dimungkinkan), mungkin paket yang diperlukan pada titik tertentu dapat dideteksi secara salah sebagai autoremovable, dan ini dapat menghentikan server agar tidak berfungsi. Di sisi lain, itu bukan masalah besar untuk meninggalkan paket yang tidak digunakan pada sistem, dan itu tidak terlalu umum kecuali jika Anda membuat perubahan besar dalam pengaturan server.Karena itu, saya akan tinggal jauh dari paket autoremoving tanpa konfirmasi dari manusia.
sumber
apt-mark manual <pkg>
Ini adalah variasi pada solusi yang disediakan Antonis Christofides. Ini diuji dan bekerja untuk saya. Saya menghindari menggunakan Abses_errors dalam perintah cek. Kalau tidak, biasanya mengambil pendekatan yang sama.
sumber
--dry-run
pertama?apt-get -y autoremove
tidak mengembalikan status tidak nol. Jadi sepertinya Anda bisa tanpa syarat menjalankan--dry-run
dan memeriksachanged_when
terhadap panggilan autoremove yang sebenarnya saya pikir.Variasi yang menyoroti perubahan paket (tugas pertama akan berwarna hijau atau kuning yang sesuai):
sumber
apt-get --dry-run autoremove | grep "to remove"
pengembalian pada Ubuntu 14,04,0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
tetapi pada Ubuntu 15,04 itu mengembalikan0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
yang sed Anda tidak cocok.install
denganinstall(ed)?
atau sesuatu seperti itu.Saya suka metode yang disederhanakan ini , dan saya menambahkan beberapa cek dan cetak pesan untuk saya.
Terima kasih untuk cortopy dan Dave James Miller .
sumber