mac*_*mac 71 python debian packaging distutils debhelper
有很多关于如何做到这一点的信息,但由于"有一种方法可以给猫皮肤",所以涵盖一些过程的所有教程/手册似乎都做出了与其他不同的某些假设.教程,我仍然无法掌握它.
到目前为止,这是我认为我理解的.
CDBS
或debhelper
.Debhelper是初学者的推荐方式.DEBIAN
命令.dh_make
现在我的问题:
setup.py
安装独立程序的脚本? 编辑:通过独立程序我的意思是一个程序供桌面用户使用(而不是我理解的模块,就像导入后其他软件使用的功能集合).在我的具体情况下,我实际上需要两个这样的"程序":主软件和一个单独的实用程序(实际上是第二个"程序",应该与另一个程序包在同一个程序包中).顺便说一句:这些是迄今为止我能找到的最好的信息来源.如果你有什么比这更好的,请分享!:)
Ros*_*son 26
看起来stdeb会做你想要的.
另外,对于安装脚本,我强烈建议使用分发的console_scripts入口点支持.
met*_*mit 10
Barry Warsaw撰写的这篇文章帮助我完成了这个过程.不过,我仍然需要进行大量的搜索,并且我在过去的某个时间阅读了大部分Ubuntu包装指南.
拥有一个好的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
Run Code Online (Sandbox Code Playgroud)
放置的脚本/usr/bin/
直接从终端调用,请注意我没有在脚本中添加扩展名.另外你可以注意到deb软件包的结构一旦安装就会成为程序的结构.因此,如果您遵循此逻辑,如果您的程序只有一个文件,您可以直接将其放在下面ProgramName-Version/usr/bin/your_script
,但是如果您有多个文件,则应将它们放在下面ProgramName-Version/usr/share/ProgramName/all your files
并且只放置一个文件,/usr/bin/
这将调用您的脚本/usr/share/ProgramName/
将所有文件夹权限更改为root:
chown root:root -R /path/to/ProgramName-Version
Run Code Online (Sandbox Code Playgroud)更改脚本的权限:
chmod 0755 /path/to/the/script
Run Code Online (Sandbox Code Playgroud)最后,你可以运行: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://example.com
Description: Here you can put a one line description. This is the short Description.
Here you put the long description, indented by one space.
Run Code Online (Sandbox Code Playgroud)
有几个库可以抽象出所有必要的步骤,让您可以使用单个命令将 Python 包转换为 Debian 包。
假设你的 python 包已经有setup.py
, 在所在目录中setup.py
,你可以使用:
stdeb(在这个答案中已经提到,安装pip install stdeb
)。要创建 Debian 软件包,请运行:
python setup.py --command-packages=stdeb.command bdist_deb
Run Code Online (Sandbox Code Playgroud)
输出.deb
文件将位于bdist_deb
目录中。
fpm(使用 安装gem install --no-ri --no-rdoc fpm
)。要创建 Debian 软件包,请运行:
fpm -s python -t deb setup.py
Run Code Online (Sandbox Code Playgroud)py2deb(使用 安装pip install py2deb
)。要创建 Debian 软件包,请运行:
py2deb -r . .
Run Code Online (Sandbox Code Playgroud)这些库中的每一个都有自己的警告,因此您可能想尝试最适合您的。