我正在构建一个依赖于libmysqlcppconn7v5. 我在具有libmysqlcppconn7v51.1.9 的 Ubuntu 上构建它,但它旨在安装在具有libmysqlcppconn7v51.1.7 的 Debian 上。
debian/control包含以下行:
Depends: ${shlibs:Depends}, ${misc:Depends}, libmysqlcppconn7v5 (>= 1.1.7)
Run Code Online (Sandbox Code Playgroud)
构建包后,它仍然具有依赖关系libmysqlcppconn7v5 (>= 1.1.9)
如何强制它依赖于比我在构建包时安装的版本更低的包版本?
如果shlibs:Depends最终指定 1.1.9 或更高版本libmysqlcppconn7v5,则(理论上)意味着您构建的二进制文件使用仅在 1.1.9 或更高版本中可用的符号。因此,libmysqlcppconn7v5即使您覆盖了依赖项,您的软件包也不一定能在 1.1.7 版本的 Debian 上运行。(我\xe2\x80\x99m 在某种程度上限定了这一点,因为该包不\xe2\x80\x99t 提供符号或shlibs 文件,因此启发式\xe2\x80\x99t 有效。)
作为一般规则,如果您想在 Debian 上安装软件包,则需要在 Debian 上构建软件包。这在 Ubuntu 上并不是那么难做到的。看看debootstrap,sbuild和pbuilder。pbuilder特别是可以轻松设置为构建多个发行版。
如果您确实想覆盖shlibs:Depends,您可以在运行.substvars后编辑构建过程中生成的\xe2\x80\x99s 文件:dpkg-shlibdeps
override_dh_shlibdeps:\n dh_shlibdeps\n sed -i s/1.1.9/1.1.7/g debian/yourpackage.substvars\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1556 次 |
| 最近记录: |