Установка имени пакета RPM в bdist_rpm
Я использую Python setuptools для создания пакета. Я хотел бы назвать rpm, построенный из параметра bdist_rpm
, который отличается от имени пакета Python из-за некоторых ограничений на именование.
Можно ли это сделать в setup.cfg
в разделе [bdist_rpm]
?
Ответы
Ответ 1
Ну, это действительно немного нестандартное и поэтому не поддерживается напрямую. Однако вы можете сделать python setup.py bdist_rpm --spec-only
, и это приведет к созданию спецификационного файла внутри dist/named project.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, вам нужно:
- переименуйте спецификационный файл в [newname].spec
- изменить каждое появление% {name} с помощью [newname]
- rpmbuild -ba [newname.spec] (после размещения файлов в каталогах, где rpmbuild найдет их)
Я уверен, что вы можете каким-то образом автоматизировать это, если вы действительно хотели
Ответ 2
Инструмент fpm упрощает создание пакета RPM и изменение имени или другого параметра. По умолчанию fpm делает RPM с именем python-prefix, но имя пакета можно установить с параметром -n. Пример:
fpm -s python -t rpm -n my_package_name <python-source-library>/setup.py
Ответ 3
Python 2.7 +
В соответствии с документами, python 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 будет иметь новое имя.