Ho già combattuto con Python per Ubuntu/Debian, e sono d'accordo, i documenti sono un pasticcio/inesistente/fuorviante: hanno davvero bisogno di una guida rapida per la situazione più semplice possibile.
Bene, eccolo!
Installare gli strumenti. Questo potrebbe essere eccessivo, però:
sudo apt-get install build-essential python-all dh-make devscripts fakeroot
Inizia con il codice estratto in una directory di nome $packagename-$version
, come library_name-0.6.0/
, e cd
a quella directory. Eseguire qualcosa come dh_make -i -c gpl3 -e [email protected]
(vedere dh_make --help
per altre opzioni). Se tutto va bene, non avrai errori e creerai un carico di file in ./debian
. È possibile ignorare o eliminare ./debian/*.{ex,EX}
; quelli sono solo esempi.
probabilmente si dovrebbe esaminare tutti questi file a un certo punto, ma per lo meno, si necessità di modificare./debian/control
e ./debian/rules
. Dovresti compilare tutti i campi che hanno il controllo, ovvero Description
e Homepage
.Modificare la riga Package
-python-$libname
Cambia la tua linea di Depends
in control
a questo:
Depends: ${misc:Depends}, ${python:Depends}
Esso assicura che il nostro pacchetto binario python-$libname
dipende dalle versioni di Python di cui ha bisogno. (${python:Depends} is a "substvar"; they're created when we build; you can inspect their values after your first build in
./Debian/$ packagename.substvars`.)
Modificare la linea in rules
da dh [email protected]
a dh [email protected] --with python2
, preservando la linguetta nella parte anteriore (è un Makefile). Questo fa sì che debhelper usi il suo addon python2; il default è ancora usare pysupport (che è deprecato, ricordi?).
Poi, eseguire il seguente comando nella directory principale fonte:
debuild -us -uc
Questo costruisce il pacchetto senza firmarlo (qualcosa che si dovrebbe imparare a fare più tardi!). Dovresti vedere alcune linee di setuptools familiari (due volte: una volta per 2.6, una volta per 2.7), pile di add-on di dh_ e altri cruft di costruzione. Alla fine è l'output di lintian, che può rilevare alcuni problemi di packaging comuni; dovresti sistemarli. Molte delle cose di cui lintian e gli amici si lamentano sono solo l'aderenza alle regole della confezione, e se la tua lib è solo interna, sentiti libera di giocare liberamente.
A proposito, This page talks about the deprecation of python-support
and python-central
È il pacchetto compatibile sia con 2.xe 3.x? Cioè, stai prendendo di mira entrambi? – nfirvine
@nfirvine: 2.6 + 2.7 –