我需要编写或找到一个脚本来创建一个 Debian 包,使用包 python-support
,来自 Python 包。 Python 包将是没有 C 扩展的纯 Python。
用于测试的 Python 包将只是一个包含空 __init__.py
文件和单个 Python 模块 package_test.py
的目录。
打包脚本必须使用 python-support
为目标平台上可能的多个 Python 安装提供正确的字节码,即 v2.5 和 v2.6 Ubuntu 9.04 (活泼的鹿角羚)。
我在谷歌搜索时发现的大多数建议只是不使用 python-support
或 python-central
的讨厌的 hack 示例。
我花了好几个小时研究这个,我能想到的最好的办法就是破解现有开源项目的脚本,但我不知道我正在做的事情需要哪些位。
这里有没有人以合理的非 hacky 方式从 Python 包制作 Debian 包?
我开始认为从不了解 Debian 打包和 python-support
到获得工作脚本需要一个多星期的时间。别人花了多长时间?
最佳答案
构建 .deb 包的正确方法是使用 dpkg-buildpackage
,但有时它有点复杂。相反,您可以使用 dpkg -b <folder>
,它将创建您的 Debian 软件包。
这些是使用 dpkg -b <folder>
创建 Debian 软件包的基础知识。使用任何二进制文件或任何无需手动编译即可自动运行的脚本(Python、Bash、Perl 和 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/
调用您的脚本.将所有文件夹权限改为root:
chown root:root -R /path/to/ProgramName-Version
更改脚本的权限:
chmod 0755 /path/to/the/script
最后,你可以运行:
dpkg -b /path/to/the/ProgramName-Version
并且您的 .deb 包将被创建! (您还可以添加 post/pre install 脚本和您想要的所有内容。它的工作方式与普通的 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.
关于 Debian 软件包的完整文章可以阅读 here .
关于python - 如何对 Python 包进行 Debian 打包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1382569/