如何制作包含多个python包的debian包
我想创建一个debian软件包,安装后,它将使用pip安装几个python软件包。我可以想出两种方法:如何制作包含多个python包的debian包,python,debian,Python,Debian,我想创建一个debian软件包,安装后,它将使用pip安装几个python软件包。我可以想出两种方法: 将python包安装到一个目录中,然后从该目录生成一个debian包。但这会混淆构建主机(例如其pip元数据),尤其是在主机已经安装了其中一些包的情况下 制作一个包含所有python包的debian包,在debian安装和卸载期间,运行一些脚本来安装/卸载python包。但这还需要另外两个脚本来维护,并在安装的机器中放置所有python包 任何其他解决方案以及解决此问题的最佳方法是什么?在我看
任何其他解决方案以及解决此问题的最佳方法是什么?在我看来,如果要创建debian软件包,应该避免引用外部分发系统。 有一些关于在debian下创建python包的指导原则 编辑:对不起,我现在看到关于Python打包的DebianWiki页面可能已经过时了。你可以读到:
- 最终,python页面将介绍
python-
的元包,这很容易,我想您已经知道了。(如果没有,请使用谷歌equivs
package)。我假设您希望安装最新版本的python软件包,或者debian存储库中缺少一些软件包,因此不会使用debian存储库
pip是一个很好的工具,但是如果你安装了一个python包,那么你可以打破依赖关系,这个python包可能是apt在你的元包之后安装的另一个包所需要的。apt是你的朋友。你应该小心。为了克服这个问题,我的建议是在元包的控制文件的提供的中添加适当的包名,冲突和替换字段,无论您是通过pip动态安装python包还是将它们捆绑到主包中。我很快搜索了“将多个debian包捆绑到一个包中”,但没有找到解决方案
如果您想将python包与系统范围的python包完全分离,这是我所知道的最佳选择。
如果您想使用pip构建符合debian标准的软件包,您可以很容易地做到这一点
此外,据我记忆所及,我在Kali Linux(基于Debian)中看到一些软件包在安装期间或启动期间动态安装python软件包,但是Debian策略可能不允许这种灵活性,不破坏依赖关系(如果您想要构建正式软件包)。我希望这个答案能指引您正确的方向。依赖项是使用Debian控制文件处理的。通过安装维护指南可以找到很多信息,即apt get install maint guide
。如果你这样做的话,软件包系统会处理好一切。我们不能依赖于此,因为互联网不保证,我们希望控制我们安装的确切文件。你不需要互联网来使用软件包。但是如果它们丢失了,例如python matplotlib,您需要提供这方面所需的软件包。我想我以前已经研究过了,我找不到一种方法来指定当pip需要依赖项时它将搜索的本地目录。谢谢!但它似乎只适用于一个debian包中的一个python包?我不知道需要做多少工作来增强它…谢谢!我真正想做的是提供一个debian包来安装我们想要的所有python模块,而不依赖于Internet。我们应该做的最好的事情可能是创建一个VM映像,但我们现在不能…所以,我想到的最后一个想法是使用本地pip服务器,这样在安装预下载的软件包时就不需要互联网了