Katakanlah ada perangkat lunak yang tidak ingin saya instal apt
, tetapi secara manual. (TeXLive, karena saya ingin menggunakan rilis 2011 dan apt
hanya memiliki versi 2009.)
Katakanlah ada perangkat lunak lain yang ingin saya instal apt
, yang bagaimanapun tergantung pada perangkat lunak pertama. (Vim LaTeXSuite, karena sulit untuk menginstal secara manual untuk penggunaan di seluruh sistem.)
Per default, apt
tidak "melihat" perangkat lunak pertama, dan mulai menginstal banyak cruft yang tidak dibutuhkan dan tidak disukai (yaitu TeXLive 2009) hanya untuk memenuhi metadata ketergantungan.
Bagaimana saya bisa:
Beritahu
apt
bahwa paket yang diberikan (misalnyatexlive
) adalah diinstal untuk semua tujuan praktis, dan bahwa hal itu tidak harus diinstal sebagai dependensi beberapa paket lainnya?Katakan
apt
untuk menginstal paket yang diberikan (mis.vim-latexsuite
) Tanpa peduli tentang ketergantungannya?
Saya sudah diayak melalui berbagai apt
manpages -terkait dan datang kosong, dan juga menemukan pertanyaan ini di situs ini tetapi merasa bahwa ada memiliki menjadi cara yang kurang hackish untuk melakukan hal ini, tidak ada?
(Dari waktu Gentoo saya, saya ingat emerge --inject
dan /etc/portage/package.provides
, dan pada dasarnya mencari yang apt
setara.)
sumber
Jawaban:
Anda harus menggunakan
equivs
paket untuk menghasilkan paket meta yang menyediakan dependensi ini, dan kemudian gunakandpkg
untuk menginstal paket ini.Memasang
equivs
dan membaca dokumentasinya seharusnya sudah cukup, tetapi panduan untuk Ubuntu ini cukup luas dan juga berlaku untuk sistem APT lainnya.Juga, jika Anda merasa bahwa suatu paket harus dapat diinstal tanpa ketergantungan yang ditentukan, Anda harus mengajukan bug terhadap paket tersebut, menjelaskan kasus di mana ketergantungan tidak diperlukan.
Dalam hal ini ,
texlive-base-bin
tampaknya hanya "Direkomendasikan" dan bukan "Ketergantungan" pada basis distribusi Debian setidaknya (mungkin sebagian karenatexlive
merupakan paket yang sangat besar), tetapi karena itu umum untuk menginstal upstream TeX Live on Debian sejak versi distribusi sering sangat tertinggal (dengan alasan bahwa paket tersebut adalah binatang buas sehingga seringkali tidak dapat dikemas tanpa pekerjaan yang substansial, yang sebagian besar dilakukan oleh satu atau beberapa orang, yang mengklaim mereka memiliki kehidupan di samping Debian),equivs
Trik ini sering digunakan dengan TeX Live (wow, kalimat itu keluar dari tangan :-)).Tambahan : Untuk instruksi yang lebih rinci bagi mereka yang ingin menginstal TeXLive di luar sistem paket, instruksi ini pada TeX.SX lebih luas dan kemungkinan besar akan terus diperbarui. Mereka juga memasukkan instruksi yang lebih eksplisit mengenai
equivs
langkah tersebut.sumber
equivs
paket.equivs
bekerja dengan baik. Saya membuat versi 9999texlive-base-bin
, menimpa paket "dummy" asli dengan nama yang sama (disediakan olehtexlive-binaries
), dan diinstalvim-latexsuite
tanpa masalah.Anda dapat menggunakan
--nodeps
flag pada dpkg, yang seharusnya menginstal paket tanpa ketergantungan sama sekali.Ada pertanyaan yang sangat mirip pada Serverfault yang layak untuk dilihat juga
sumber
Berikut ini akan menghapus ketergantungan dari file .deb, dalam hal ini menghapus ketergantungan libperl5.20 dari freeradius:
Ini memungkinkan Anda untuk menginstal paket tanpa perlu mengetahui ketergantungan yang ada.
Jika Anda menginstal versi paket tertentu secara manual maka Anda mungkin juga ingin berhenti
apt-get upgrade
memperbarui paket di masa mendatang:sumber