Il formato RPM viene usato da molte popolari distribuzioni Linux, incluse Red Hat, SuSE, e Mandrake. Se una di queste (o una tra le altre distribuzioni Linux basate su RPM) distribuzioni è il vostro ambiente abituale, creare package RPM per altri utenti della propria distribuzione è semplice. In base alla complessità della propria distribuzione di moduli e le differenza tra le distribuzioni Linux, si potrebbe essere in grado di creare degli RPM che lavorano su differenti distribuzioni basate su RPM.
Il classico metodo per creare un RPM della propria distribuzione di
moduli è di eseguire il comando bdist _rpm
:
python setup.py bdist_rpm
oppure il comando bdist
con l'opzione
--format:
python setup.py bdist --formats=rpm
Il primo permette di specificare opzioni RPM specifiche: il secondo
consente di specificare con facilità diversi formati in una singola
esecuzione. Se si ha bisogno di entrambi, si possono esplicitamente
specificare comandi multipli bdist_*
e le loro opzioni:
python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>" \ bdist_wininst --target_version="2.0"
La creazione di pacchetti RPM è guidata dal file .spec, tanto
quanto le distutils vengono controllate dallo script di setup. Per
rendere la vita facile, il comando bdist_rpm
crea
normalmente un file .spec basato sulle informazioni fornite
nello script di setup, da riga di comando ed in ogni file di
configurazione delle Distutils. Diverse opzioni e sezioni nel file
.spec sono derivate dalle opzioni presenti nello script di
setup:
Opzioni del file .spec RPM o sezione | Opzioni Distutils per lo script di setup |
---|---|
Nome | nome |
Sommario (nel preambolo) | description |
Versione | version |
Produttore | author e author_email o
& maintainer e maintainer_email |
Copyright | licence |
Url | url |
%descrizione (sezione) | long_description |
Inoltre, ci sono molte opzioni nei file .spec che non
hanno una corrispondente opzione nello script di setup. Molte di
queste vengono gestite attraverso le opzioni del comando
bdist_rpm
come segue:
Opzioni del file .spec RPM o sezione | bdist_rpm opzione |
default value |
---|---|---|
Release | release | ``1'' |
Group | group | ``Development/Libraries'' |
Produttore | vendor | (vedete dopo) |
Packager | packager | (none) |
Fornisce | provides | (none) |
Richieste | requires | (none) |
Confligge | conflicts | (none) |
Obsolete | obsoletes | (none) |
Distribuzione | distribution_name | (none) |
Opzioni richieste dalla compilazione | build_requires | (none) |
Icone | icon | (none) |
Ovviamente, fornire anche poche di queste opzioni da riga di comando sarebbe noioso e non esente da errori, così è preferibile inserirle nel file di configurazione di setup, setup.cfg--vedete la sezione 3. Se si distribuiscono o si creano package con molte distribuzioni di moduli Python, si possono inserire le opzioni comuni da applicare nel proprio personale file di configurazione di Distutils ((~/.pydistutils.cfg).
Ci sono tre passi per costruire un package RPM binario e vengono gestiti automaticamente da Distutils:
Normalmente, gli RPM raggruppano gli ultimi due passaggi, quando si usano le Distutils, tutti e tre i passaggi vengono tipicamente raggruppati assieme.
Invece, se lo si desidera, si possono separare questi tre passaggi.
Si può usare l'opzione --spec-only per eseguire
bdist_rpm
solo per creare il file .spec ed uscire; in
questo caso il file .spec verrà scritto nella ``directory di
distribuzione''--solitamente dist/, ma personalizzabile con
l'opzione --dist-dir. (Normalmente il file
.spec finisce in fondo all'``albero di compilazione'' in una
directory temporanea creata da bdist_rpm
.)
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.