5

例如,我维护一个使用 libmemcached 的应用程序。我可以使用 libmemcached5 或 libmemcached6 编译它,也可以构建指向 libmemcached5、libmemcached6 甚至 libmemcached5|libmemcached6 作为依赖项的 .deb 包,但实际上我的二进制文件只使用其中一个编译。在不升级/降级用户端的任何依赖项的情况下,解决这个问题的最佳方法是什么?

4

1 回答 1

1

如果您正在使用存储库,或者如果您的应用程序的多个编译版本是可以接受的,那么您最好的办法是编译您的应用程序两次,一次使用 libmemcached5,一次使用 libmemcached6,并分别使用不同的包名称将它们打包,并使用自动安装正确的虚拟包:

 Package:   myapplication-memchched5
 Version:   1.3.17-1
 Depends:   libmemcached5
 Provides:  myapplication
 Conflicts: myapplication
 Replaces:  myapplication

 Package:   myapplication-memchched6
 Version:   1.3.17-1
 Depends:   libmemcached6
 Provides:  myapplication
 Conflicts: myapplication
 Replaces:  myapplication

现在将根据需要安装的其他内容aptitude install myapplication自动选择myapplication-memchched5或选择。myapplication-memchched6

于 2012-11-15T12:35:44.037 回答