2011-08-19 9 views
10

Estoy utilizando las herramientas de configuración de Python para crear un paquete. Me gustaría nombrar las rpm generadas a partir de la opción bdist_rpm para que sean diferentes al nombre del paquete Python debido a algunas restricciones de nombres.Configuración del nombre del paquete RPM en bdist_rpm

¿Se puede hacer en el setup.cfg en la sección [bdist_rpm]?

Respuesta

2

Bueno, de hecho es un poco no estándar y por lo tanto no es compatible directamente. Sin embargo, puede hacer python setup.py bdist_rpm --spec-only y esto va a generar un archivo de especificaciones dentro de dist/project.spec llamada, comenzando de esta manera:

%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 

Para construir con éxito rpm desde aquí se necesita:

  1. cambiar el nombre de la especificación Archivo para [newname] .spec
  2. cambiar cada ocurrencia de% {name} con [newname]
  3. rpmbuild -ba [newname.spec] (después de la colocación de archivos en directorios donde se rpmbuild encontrarlos)

Estoy seguro de que podría automatizar esto de alguna manera, si realmente quería a

+1

tu respuesta es un poco incompleta. "después de colocar los archivos en directorios donde rpmbuild los encontrará" no explica cómo y dónde ejecutar el comando rpmbuild para finalizar el proceso. –

+0

Sería útil tener en cuenta que cambia 'Nombre:' en lugar de '% definir nombre' porque la definición también se puede usar en el nombre del paquete fuente, y el paquete fuente (probablemente) tendrá el" regular "nombre en el nombre del archivo, no el valor anulado (como se demuestra en el ejemplo incluido). Por eso, en realidad, no cambia cada ocurrencia, solo cambia la instancia de un 'Nombre:'. – dannysauer

2

La herramienta fpm hace fácil generar el paquete RPM y cambiar el nombre o el otro parámetro. Por defecto, FPM hace que el RPM con "Python- nombre de prefijo, pero el nombre del paquete se puede configurar con -n parámetro Un ejemplo:.

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

Python 2.7+

According to the docs, python setup.py bdist_rpm --name="new-package-name" debería funcionar.

Este no parece ser el caso de Python-2.6, sin embargo, ya que obtendrá un error: option --name not recognized error al intentar ejecutar el comando.

Python 2.6

he encontrado que la edición de las obras: setup.py

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

Después basta con ejecutar python setup.py bdist_rpm y las rpm tendrá el nuevo nombre.

Cuestiones relacionadas