Tandai paket deb seperti yang digunakan, jadi tidak disarankan untuk autoremoval

8

Saya memiliki banyak lib bersama yang terinstal di sistem saya yang bukan dependensi dari beberapa paket konkret tetapi diperlukan untuk pustaka yang tidak dikelola dengan baik yang telah saya bangun dari sumber (seperti SDL, Allegro, SFML, ...) terbaru dan perangkat lunak lain yang dibangun dari sumber. Masalahnya adalah bahwa perpustakaan-perpustakaan tersebut dilihat oleh APT sebagai tidak terpakai, dan karena itu adalah kandidat untuk penghapusan otomatis, dan mereka dicampuradukkan dengan paket-paket tidak terpakai yang sah yang bebas untuk dihapus.

Apakah ada cara untuk menandai paket yang digunakan sehingga tidak disarankan untuk dihapus secara otomatis? Pikiran pertama saya adalah membangun metapackage saya sendiri hanya untuk menahan dependensi (seperti misalnya ubuntu-desktop), tapi saya tidak tahu bagaimana melakukannya.

Boris B.
sumber

Jawaban:

9

Meskipun apt-get installmenandai paket sebagai diinstal juga, ia melakukan hal-hal lain seperti memutakhirkan paket (jika ada pembaruan tersedia). Program yang benar untuk mengubah status yang diinstal secara otomatis adalah apt-mark.

Pemakaian

Menandai paket sebagai diinstal secara manual (sehingga tidak akan dihapus oleh apt-get autoremove):

sudo apt-mark manual package1 package2 ... packageN

Untuk menandai suatu paket sebagai terinstal secara otomatis (sehingga akan dihapus oleh apt-get autoremovejika tidak ada paket yang bergantung padanya):

sudo apt-mark auto package1 package2 ... packageN

Rincian lebih lanjut tersedia di apt-mark halaman 8 (8) .

Lekensteyn
sumber
4

Cukup gunakan apt-get install:

sudo apt-get install [your-packages]

Itu tidak akan menginstalnya. Itu hanya akan mengatur bendera untuk diinstal secara manual.

melati
sumber
2

Anda tidak perlu melakukan hal yang sangat rumit seperti membuat metapackage Anda sendiri.

Misalkan Anda ingin memastikan paket yang dipanggil footidak pernah memenuhi syarat untuk autoremoval.

Buka jendela Terminal ( Ctrl+ Alt+ T) dan jalankan:

sudo apt-get install foo

Yaitu, perintah yang sama yang menginstal paket secara manual akan menandainya sebagai yang diinstal secara manual sehingga mereka tidak akan di-autorem bahkan ketika paket-paket yang awalnya mereka instal sebagai dependensi dihapus sendiri.

Eliah Kagan
sumber
@BorisB. Jika Anda menginstal paket secara manual , maka tidak peduli bagaimana Anda melakukannya, selama itu tidak dihapus atau ditandai secara otomatis diinstal, itu tidak akan dihapus secara otomatis.
Eliah Kagan
2
Anda harus menginstalnya sebagai ketergantungan pada sesuatu yang lain. Anda mungkin melakukannya apt-get install yyydan xxxdiinstal sebagai dependensi. Kemudian Anda dihapus yyydan xxxditandai untuk autoremoval. Sekarang kamu lakukan apt-get install xxx.
Vitalie Ciubotaru
Saya 99% yakin aku tidak menginstal perpustakaan tersebut menggunakan apt-get install(karena saya tahu tidak ada cara lain untuk menginstal mereka), tetapi mereka masih ditawarkan untuk auto-penghapusan.
Boris B.
@VitalieCiubotaru Ya, pasti begitu. Terima kasih.
Boris B.