【问题标题】:How to build and deploy package with different versions of one dependency?如何使用一个依赖项的不同版本构建和部署包?
【发布时间】:2012-11-04 01:03:25
【问题描述】:

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

【问题讨论】:

    标签: c++ gcc ubuntu makefile deb


    【解决方案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-memchched5myapplication-memchched6

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多