我有两个 Debian 软件包,它们以前是在我们的内部存储库中制作的。它们共享相同的源代码,但使用不同的选项编译,使用相同的库创建两个单独的二进制文件。它们被安装在单独的服务器上
因此这两个包不能同时安装,因为它们尝试安装相同的库,因此 dpkg 错误“试图覆盖 /my/lib”。
问题:我需要将它们安装在同一台服务器上。
问题是:我应该添加什么修改以使它们兼容?
一些线索:
从同一个源创建第三个包,编译整个源而不是两个单独的源(但我想这是肮脏的方式)
找一个选项告诉这两个包可以互相搭配(但我不知道它是否存在)
创建一个“package-common”包,其中包含其他 2 个包所依赖的库、手册页等。(但我不知道如何以这种方式编译上游源代码)
我知道这个问题很难解释,尤其是在英语不好的情况下,但我希望你能给我一些线索:)
感谢社区!
您的第三个选项是最常见的。很多时候你会看到它被称为 -common 或 -base。它在很多地方都提供了单独的库包,以及文档包或插件。您实际上是从一个来源创建多个包。大多数 -doc 包和 -common 包以及大量的 lib* 包都是以这种方式创建的。
例如
package-base
package-option1
package-option2
Run Code Online (Sandbox Code Playgroud)
package-option1 和 package-option2 都依赖于 package-base。这是最好和最安全的方法。在 Debian / Ubuntu 软件包存储库中有很多这样的例子 - apache2、php5、dhcp3、nagios3、vim
dh_make 支持从一个源创建这些库包或多个二进制包,值得一试。
归档时间: |
|
查看次数: |
248 次 |
最近记录: |