El formato RPM es estándar en muchas distribuciones de Linux populares, incluyendo Red Hat, SuSE y Mandrake. Si tu entorno habitual se basa en RPM, es trivial crear paquetes RPM para otros usuarios de la misma distribución. Dependiendo de la complejidad de la distribución de módulos y de las diferencias entre distribuciones de Linux, puede que seas capaz de crear RPMs para otras distribuciones basadas en RPM.
El modo usual de crear un RPM de tu distribución de módulos es ejecutar
bdist_rpm
:
python setup.py bdist_rpm
bdist
con la opción --format:
python setup.py bdist --formats=rpm
bdist_*
y sus opciones:
python setup.py bdist_rpm --packager="Juana Pérez <jperez@python.net>" \ bdist_wininst --target_version="2.0"
La creación de paquetes RPM va dirigida por un fichero .spec,
del mismo modo en que el guion de configuración dirige las Distutils.
Para facilitar la vida en la medida de lo posible, la orden
bdist_rpm
crea normalmente un fichero .spec
basado en la información proporcionada en el guion de configuración, la línea
de órdenes o cualquier fichero de configuración de Distutils. Del guion de configuración
se derivan varias opciones y secciones del fichero .spec:
opción o sección del fichero .spec de RPM | Opción del guion de configuración de Distutils |
---|---|
Name | name |
Resumen (en el preámbulo) | descripción |
Versión | versión |
Vendor | author y author_email o
& maintainer y maintainer_email |
Copyright | licence |
Url | url |
%description (section) | long_description |
Además hay tres opciones más en los ficheros .spec sin correspondencia en
las opciones del guion de configuración. La mayoría de ellas se gestionan mediante
opciones de la orden bdist_rpm
:
opción o sección del fichero .spec de RPM | opción bdist_rpm |
valor predeterminado |
---|---|---|
Release | release | ``1'' |
Group | group | ``Development/Libraries'' |
Vendor | vendor | (see above) |
Packager | packager | (none) |
Provides | provides | (none) |
Requires | requires | (none) |
Conflicts | conflicts | (none) |
Obsoletes | obsoletes | (none) |
Distribution | distribution_name | (none) |
BuildRequires | build_requires | (none) |
Icon | icon | (none) |
Hay tres pasos para generar un paquete binario RPM y todos ellos los gestiona Distutils automáticamente:
Si lo deseas, puedes separar estos tres pasos. Puedes usar la opción
--spec-only para hacer que bdist_rpm
sólo
cree el fichero .spec y termine. En este caso, el fichero .spec
quedará en el ``directorio de distribución'', normalmente
dist/, pero se puede personalizar mediante la opción --dist-dir.
Normalmente, bdist_rpm
deja el fichero .spec
en un directorio temporal bastante profundo
** this isn't implemented yet--is it needed?! ** También se puede especificar un fichero .spec a medida con la opción --spec-file. Utilizada junto con --spec-only, permite personalizar el fichero .spec manualmente:
> python setup.py bdist_rpm --spec-only # ...edit dist/FooBar-1.0.spec > python setup.py bdist_rpm --spec-file=dist/FooBar-1.0.spec
bdist_rpm
estándar con una que escriba exactamente lo
deseado en el fichero .spec Consulta la sección