创建一个依赖于旧版本 python-cherrypy3 包的 Debian 包

创建一个依赖于旧版本 python-cherrypy3 包的 Debian 包

我的个人存储库中有一个依赖于 python-cherrypy3 的 debian 软件包程序。但是,Ubuntu 16.04 附带的 python-cherrypy3 版本 3.5.0 有一个严重的未修复错误,导致我的程序无法创建 HTTPS Web 服务器。我已将 3.2.2 版本放入python-cherrypy3我的个人存储库中。然后放入一个

Depends: python-cherrypy3 (<< 3.2.5)

debian/control我的软件包文件中。这个错误从 cherrypy 3.2.5 版本开始,因此低于此版本的任何版本都是可以接受的。但是 Ubuntu 16.04apt-get无法解决依赖关系,仍然倾向于较新的版本 3.5。

The following packages have unmet dependencies:
 my-package : Depends: python-cherrypy3 (< 3.2.5)
E: Unable to correct problems, you have held broken packages.

如果我这样做apt-get install python-cherrypy3=3.2.2并从我的存储库安装旧版本的 cherrypy,那么我的软件包安装就可以正常工作。我能以某种方式自动完成此操作吗,这样当有人发出 apt 时,apt-get install my-package就会自动从我的存储库安装 3.2.2 版本?

答案1

仅使用软件包的依赖项无法实现这一点。如果没有特殊配置,则apt-get始终优先选择可用的最高版本,因此,即使您的软件包依赖于python-cherrypy3 (<< 3.2.5),它也会选择可用的最高版本python-cherrypy3。并且由于Ubuntu 15.10 及以上版本只有 3.5.0+,这就是您将得到的。

python-cherrypy3你可以做的是提供你个人仓库中打包的 3.2.5 版本,它使用纪元数,这样它就比较新的包更受青睐。然后依赖于它。

相关内容