Saya sedang membangun paket Debian yang bergantung pada libmysqlcppconn7v5
. Saya sedang membangunnya di Ubuntu yang memiliki libmysqlcppconn7v5
1.1.9, namun dimaksudkan untuk diinstal pada Debian yang memiliki libmysqlcppconn7v5
1.1.7.
debian/control
berisi baris berikut:
Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)
Ketika paket dibangun masih memiliki ketergantungan libmysqlcppconn7v5 (>= 1.1.9)
Bagaimana saya bisa memaksanya untuk memiliki ketergantungan pada versi paket yang lebih rendah daripada yang saya instal saat membangun paket?
Jawaban yang Diterima:
Jika shlibs:Depends
akhirnya menentukan versi 1.1.9 atau yang lebih baru dari libmysqlcppconn7v5
, itu (secara teoritis) berarti bahwa biner yang Anda buat menggunakan simbol yang hanya tersedia di versi 1.1.9 atau yang lebih baru. Jadi paket Anda belum tentu berfungsi di Debian dengan libmysqlcppconn7v5
1.1.7, bahkan jika Anda mengganti dependensi. (Saya sedikit memenuhi syarat ini karena paket tidak menyediakan file simbol atau shlib, jadi heuristiknya tidak valid.)
Sebagai aturan umum, Anda perlu membangun paket Anda di Debian jika Anda ingin menginstalnya di Debian. Ini tidak terlalu sulit untuk dilakukan di Ubuntu; lihat debootstrap
, sbuild
dan pbuilder
. pbuilder
khususnya dapat dengan mudah diatur untuk membangun beberapa distribusi.
Jika Anda sangat ingin mengganti shlibs:Depends
, Anda dapat mengedit .substvars
file yang dihasilkan selama pembuatan, setelah dpkg-shlibdeps
telah berjalan:
override_dh_shlibdeps:
dh_shlibdeps
sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars