Menjadi adopter awal dan menggunakan build 11,04 setiap hari saya kadang-kadang menghadapi situasi ketika beberapa paket memerlukan versi lebih awal dari paket lain daripada yang saya instal. Biasanya versi yang lebih baru (tetapi ditolak) paket yang dibutuhkan menyediakan semua fungsionalitas versi yang lebih lama.
Jika saya gunakan dpkg -i --force-depends-version
untuk menginstal paket tergantung semuanya berfungsi dengan baik, saya belum pernah melihat masalah.
Alih-alih secara manual mengunduh dan menginstal setiap paket, dapatkah saya membuat sistem berpura-pura ada versi paket tertentu yang diinstal ketika ada yang lebih baru? Atau adakah yang --force-depends-version
setara dengan kunci untuk apt-get
?
Meskipun jawaban sudah diterima, inlining yang diterima lebih baik menyampaikan proses:
Ada paket Debian yang disebut
equivs
yang dapat membuat paket dummy. Instal dengan menjalankansudo apt-get install -y equivs
Setelah terinstal, Anda menghasilkan file "kontrol" template menggunakan perintah berikut:
equivs-control postfix
(gantipostfix
dengan nama paket Anda). Dalam kasus saya, saya mungkin menggunakan nama paket alternatif, misalnyapostfix-custom
atau apa pun, tetapi memiliki paket kustom saya memenuhi atauProvides
ketergantungan instalasipostfix
(lagi-lagi menggantipostfix
untuk paket apa pun yang Anda inginkan.Setelah file kontrol template dihasilkan, saya biasanya akan menghapus banyak pernyataan yang dikomentari (pernyataan yang dimulai dengan
#
). Salah satu yang ingin saya pertahankan secara khusus adalahProvides:
pernyataan di mana saya dapat mengatakan bahwa paket saya menyediakan kemampuan yang ditawarkan oleh paket lain yang saya coba palsu, misalnyaProvides: postfix
memberi tahu mekanisme resolusi ketergantungan Debian / Ubuntu bahwa paket saya — dengan nama apa pun— memberikan kemampuan yang sama dari paket target, lagipostfix
atau apa pun. Ini memungkinkan saya untuk memberi nama paket saya secara terpisah dari paket target untuk menghindari kebingungan. Pabrik Erlang melakukan ini dengan barang-barang mereka, misalnyaesl-erlang
menyediakanerlang
.Akhirnya, setelah file kontrol template dibuat, Anda gunakan
equivs-build
untuk menghasilkan paket palsu, misalnyaequivs-build /path/to/generated/control/file
.Butuh beberapa detik untuk membangun paket dan kemudian Anda dapat menjalankannya
sudo dpkg -i my_package_name*.deb
Untuk pengguna tingkat lanjut, jika file kontrol template Anda memiliki
Requires:
garis ketergantungan, Anda mungkin ingin menggunakan alat sepertigdebi
untuk menginstal paket Anda serta berbagai paket yang dinyatakannya sebagai dependensi.sumber