Python distutils - 更改路径RPM安装到

时间:2014-10-16 18:40:43

标签: python rpm distutils rpmbuild rpm-spec

我有Python 2.7.5并使用distutils(python setup.py bdist_rpm)来创建以下RPM ......

me@hostname:/tmp/dist$ rpm -qpil myApp-2.0.146-1.noarch.rpm
Name        : myApp
Version     : 2.0.146
Release     : 1
Architecture: noarch
Install Date: (not installed)
Group       : Development/Libraries
Size        : 290576
License     : GPL
Signature   : (none)
Source RPM  : myApp-2.0.146-1.src.rpm
Build Date  : Wed 15 Oct 2014 02:57:08 PM EDT
Build Host  : hostname.example.lan
Relocations : /usr
Vendor      : Me <me@example.lan>
URL         : https://otherhost.example.lan/myApp
Summary     : My application
Description :
My application
/tmp/myApp/CHANGELOG
/tmp/myApp/README
/tmp/myApp/some.sh
/tmp/myApp/some.py
/tmp/myApp/libs/another.py
/tmp/myApp/libs/another.sh
...

我想要实现的是在安装RPM时,文件会被放入......

/usr/local/bin/CHANGELOG
/usr/local/bin/README
/usr/local/bin/some.sh
/usr/local/bin/some.py
/usr/local/bin/libs/another.py
/usr/local/bin/libs/another.sh
...

...而不是/ tmp。

是的,我理解位置可能是错误的/低于标准/非常规/不是最佳做法/哑巴/ whatev,但这是必须的。我无法弄清楚如何做到这一点。我可以/应该在我的distutils setup()中做些什么(也许当我填充data_files的{​​{1}}参数时?这不应该是重要但我会分享以下内容传达我可以灵活地调用setup()。我的setup()由另一个Python脚本动态创建,然后由另一个脚本通过setup.py运行。

我不知道可以暂停&#34; subprocess所以我可以操纵spec文件。我不能setup.py伪造东西。不知道如何处理这个,但似乎应该很简单。

2 个答案:

答案 0 :(得分:0)

答案:我现在生成一个rpmbuild .spec并且可以做我需要的东西,而不是动态生成setup.py和使用distutils(这似乎有一些限制)。

干杯。

答案 1 :(得分:0)

查看此答案:https://stackoverflow.com/a/6220687/725021

您应该尝试install-lib[install]部分的setup.cfg参数。