Saya berada dalam situasi di mana daftar paket yatim yang akan dihapus dengan apt-get autoremove
menyertakan paket yang ingin saya simpan. Rupanya saya tidak sengaja menghapus paket yang tergantung padanya. Bagaimana saya sekarang dapat menandai paket sebagai yang diinginkan secara eksplisit, sehingga apt-get autoremove
tidak akan menghapusnya?
apt
package-management
bluenote10
sumber
sumber
Jawaban:
Menggunakan
apt-mark
Begitu
Sekarang
autoremove
tidak akan menghapusnya.Untuk membatalkan
Sekarang
autoremove
akan menghapus paket jika bukan ketergantungan dari paket lain.sumber
Beberapa upaya Google lagi memunculkan solusi :
Mungkin saja untuk menginstal secara eksplisit:
atau menandai sebagai diinstal secara manual melalui
apt
tidak akan menginstal ulang, hasilnya hanya akan terlihat seperti:sumber
Ini sudah dijawab dengan baik, tetapi saya menemukan situasi di mana saya tidak ingin "menandai" banyak paket (dan kemudian menghapusnya setelahnya
autoremove
).Ketika daftar paket yang ingin Anda autoremove mudah ditentukan, maka Anda dapat mem-pipe /
sed
/xargs
keluar.Saya tidak memiliki contoh kompleks dari banyak paket, tetapi jika saya memiliki skenario berikut:
dan saya hanya ingin menghapus
linux*
paket, saya bisa melakukan ini:Jadi dari sini, mudah untuk mengirimkannya melalui
xargs
argumen command-line ke sederhanaapt-get remove -y
:Biasanya ketika menggunakan
xargs
, saya akan menjaga spasi di argumen (misalnya,find ... -print0 | xargs -0 ...
), tetapi karena nama paket tidak memiliki spasi di dalamnya, saya merasa nyaman menggunakan argumen yang dibatasi baris baru.(Saya akan berpikir itu situasi lain, akan lebih tepat untuk "menandai" penangguhan, membuka kemasannya. Itu juga dapat dilakukan dengan regex dan
xargs
, tetapi mungkin terlalu merekayasa situasinya.)sumber