我有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
伪造东西。不知道如何处理这个,但似乎应该很简单。
答案 0 :(得分:0)
答案:我现在生成一个rpmbuild .spec并且可以做我需要的东西,而不是动态生成setup.py和使用distutils(这似乎有一些限制)。
干杯。
答案 1 :(得分:0)
查看此答案:https://stackoverflow.com/a/6220687/725021
您应该尝试install-lib
中[install]
部分的setup.cfg
参数。