在bdist_rpm中设置RPM包名称

时间:2011-08-19 15:30:55

标签: python linux centos rpm

我使用Python setuptools来构建包。由于一些命名限制,我想将bdist_rpm选项构建的rpm命名为与Python包名称不同。

是否可以在setup.cfg部分的[bdist_rpm]中完成?

3 个答案:

答案 0 :(得分:3)

fpm工具可以轻松生成RPM包并更改名称或其他参数。默认情况下, fpm 使用“ python - 前缀名称生成RPM,但可以使用 -n 参数设置包名称。例如:

fpm -s python -t rpm -n my_package_name <python-source-library>/setup.py

答案 1 :(得分:2)

这确实是一个稍微不标准的,所以不直接支持。但是,您可以执行python setup.py bdist_rpm --spec-only,这将在dist / named project.spec中生成一个spec文件,从这开始:

%define name [name of your pkg as defined in setup.py]
%define version [version of your pkg]
%define unmangled_version [version of your pkg]
%define release 1

Summary: PyQt4 application to download trailers from www.apple.com/trailers
Name: %{name} # THIS IS WHAT YOU WANT TO CHANGE
Version: %{version}
Release: %{release}
Source0: %{name}-%{unmangled_version}.tar.gz

要从此处成功构建rpm,您需要:

  1. 将spec文件重命名为[newname] .spec
  2. 使用[newname]
  3. 更改%{name}的每次出现
  4. rpmbuild -ba [newname.spec](将文件放入dpmbuild将找到它们的目录后)
  5. 如果你真的想

    ,我相信你可以通过某种方式实现自动化

答案 2 :(得分:1)

Python 2.7 +

According to the docspython setup.py bdist_rpm --name="new-package-name"应该有效。

但是,对于python-2.6来说似乎并非如此,因为在尝试运行命令时会出现error: option --name not recognized错误。

Python 2.6

我发现编辑setup.py有效:

(...)
setup(
    name = 'new-package-name',
    description = "Python package that does the thing",
(...)

之后只需运行python setup.py bdist_rpm,rpm就会有新名称。