Distutils、旧rpm和定制规格fi

2024-03-28 10:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

昨天我终于在fedora14上把我的程序打包成RPM,我想在centos4.8机器上以同样的方式构建它会很容易。原来,旧版本的rpm和distutils是各自有限的,我没有任何运气来处理它。在

基本问题是distutils with python2.7支持一个名为“--post-install”的选项,我可以在其中指定脚本。该脚本包含在我使用yum或rpm安装时运行。一切都很好。 但是,对于Python2.3,没有--post-install选项(它实际上在RPM中不可用)。不管怎样,我可以把它添加到.spec文件的“%install”部分。 所以我开始RPM构建过程

python setup.py bdist_rpm --spec-only

它创建了我的.spec。我编辑它并将我的脚本粘贴到.spec中。然后,我使用

python setup.py bdist_rpm --source-only

这就是问题开始出现的地方。 distutils创建以下子目录。/build/bdist.linux-i686/转/分。里面有一个叫做SPECS的文件夹/网络信息规范(我的程序叫netinfo)。但是,它没有使用我刚刚创建的custom.spec。 这很奇怪,因为它应该使用generated.spec。如果我尝试使用default.spec构建,那么可以预见的是,我的脚本没有包含在RPM中。如果我用我的custom.spec覆盖它,它仍然不起作用。就像它为每个命令重新创建.spec。在

bdist_rpm有多种命令,可以用

python setup.py bdist_rpm --help

我希望找到一个otpion,在那里可以指定要使用的.spec文件。然而,在Python2.3和2.7上,没有选项。在

必须有一些简单的方法让distutils使用我的自定义.spec文件。有人知道怎么指定这个吗?在

谢谢


Tags: install文件py程序脚本only选项custom