我用pyinstaller生成了一个构建。
我需要创建.rpm包,它将把可执行文件放入/usr/bin/
,并创建一个systemd服务来运行该可执行文件。在
我找到这个了 https://docs.python.org/3/distutils/builtdist.html和https://docs.python.org/2.0/dist/creating-rpms.html
但这并不能给我一个完整的画面。在
有可能做到吗?
我需要使用什么工具集?(基本上,how
来制作它)。
如果可能-示例代码
首先,忘掉
bdist_rpm
。它用于distutils
/setuptools
项目,因此您需要一个setup.py
脚本,该脚本在幕后调用pyinstaller
来绑定可执行文件,以某种方式重新定义install_scripts
命令,以便能够打包二进制可执行文件,并处理systemd
单元文件的打包。相反,请编写一个spec文件,它是rpm
构建和安装包的说明手册。在设置
这是要使用的示例项目。在
spam.py
这里没有魔法-调用后打印
^{pr2}$eggs
。将通过pyinstaller
绑定到名为bacon
的二进制文件。我没有调用项目spam
来避免歧义,因为pyinstaller
还创建了一个扩展名为.spec
的文件,因此运行它不会覆盖rpm规范文件。在bacon.service
调用二进制文件
bacon
的简单服务。在bacon.timer
将每隔10秒调用
bacon
。在bacon.spec
包装说明。在
%build
部分,我们将spam.py
捆绑,然后将捆绑的可执行文件dist/spam
与systemd
单元文件一起安装到/usr/bin/bacon
。在构建包
有很多教程深入解释了如何构建
rpm
包,例如Fedora Packaging Guidelines,因此只需在这里列出最小的命令序列:测试程序包
编辑:如注释中所述,使用}。引用
-U
代替{rpm
人的话:所以使用
用于测试安装。在
现在
bacon
应该可以从命令行获得:启动计时器:
检查日志:
一旦验证工作正常,停止计时器并卸载
bacon
:相关问题 更多 >
编程相关推荐