有很多关于如何做到这一点的信息,但由于“有一种方法可以给猫皮肤”,所以涵盖一些过程的所有教程/手册似乎都做出了与其他不同的某些假设。教程,我仍然无法掌握它。
到目前为止,这是我认为我理解的。
CDBS
或debhelper
。 Debhelper是初学者的推荐方式。DEBIAN
目录,其中包含许多文件,说明文件需要复制的位置,它们受到的版权和许可方案,它们具有哪些依赖关系等等......dh_make
脚本,那么步骤#4可以在很大程度上自动化setup.py
command。现在我的问题:
setup.py
脚本?编辑:通过独立程序我的意思是一个程序供桌面用户使用(而不是我理解的模块,就像导入后其他软件使用的功能集合)。在我的具体情况下,我实际上需要两个这样的“程序”:主软件和一个单独的实用程序(实际上是第二个“程序”,应该与另一个程序包在同一个程序包中)。
DEB包的这种脚本有什么特点?官方文档似乎只涉及RPM和Windows的东西......顺便说一句:这些是迄今为止我能找到的最好的信息来源。如果你有什么比这更好的,请分享! :)
看起来stdeb会做你想要的。
另外,对于安装脚本,我强烈建议使用distribute's console_scripts入口点支持。
This article by Barry Warsaw帮助我完成了整个过程。不过,我仍然需要做很多搜索,而且我在过去的某个时间读过大部分的Ubuntu packaging guide。
拥有一个好的setup.py
是一个非常好的建议。我发现这两个指南相当不错:
构建deb包的正确方法是使用dpkg-buildpackage
但有时它有点复杂。相反,你可以使用dpkg -b <folder>
,它将创建你的Debian包。
这些是使用dpkg -b <folder>
创建Debian软件包的基础知识,包含任何二进制文件或任何类型的脚本,无需手动编译即可自动运行(Python,Bash,Pearl,Ruby):
ProgramName-Version/
ProgramName-Version/DEBIAN
ProgramName-Version/DEBIAN/control
ProgramName-Version/usr/
ProgramName-Version/usr/bin/
ProgramName-Version/usr/bin/your_script
放置在/usr/bin/
的脚本直接从终端调用,请注意我没有在脚本中添加扩展名。另外你可以注意到deb软件包的结构一旦安装就会成为程序的结构。因此,如果你的程序只有一个文件就可以遵循这个逻辑,你可以直接把它放在ProgramName-Version/usr/bin/your_script
下,但是如果你有多个文件,你应该将它们放在ProgramName-Version/usr/share/ProgramName/all your files
下,并且只在/usr/bin/
下放置一个文件,它将从/usr/share/ProgramName/
调用你的脚本
chown root:root -R /path/to/ProgramName-Version
chmod 0755 /path/to/the/script
dpkg -b /path/to/the/ProgramName-Version
,你的deb包将被创建! (你也可以添加post / pre inst脚本和你想要的一切,就像普通的Debian软件包一样)以下是control
文件的示例。您只需将其复制粘贴到名为“control”的空文件中,并将其放在DEBIAN文件夹中
Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description. This is the short Description.
Here you put the long description, indented by 1 space.
有几个库可以抽象出所有必要的步骤,让你用一个命令将你的python包转换成debian包。
假设你的python包已经有setup.py
,在setup.py
所在的目录中,你可以使用:
pip install stdeb
一起安装)。要创建debian包,请运行:
python setup.py --command-packages=stdeb.command bdist_deb
输出.deb
文件将位于bdist_deb
目录中。gem install --no-ri --no-rdoc fpm
一起安装)。要创建debian包,请运行:
fpm -s python -t deb setup.py
pip install py2deb
一起安装)。要创建debian包,请运行:
py2deb -r . .
这些库中的每一个都有自己的注意事项,因此您可能希望尝试最适合您的库。