Empaquetado
La aproximación de la prestidigitación.
Empaquetando migasfree
Nadie es como otro. Ni mejor ni peor. Es otro. Y si dos están de acuerdo, es por un malentendido.
—Jean-Paul Sartre
El proceso consiste, básicamente, en bajarte el fuente del proyecto y
ejecutar el comando bin/create-package
Nota
Si quieres la versión de desarrollo puedes bajar
master.zip
en vez delatest.zip
Creación del paquete migasfree-client (.deb)
Abre una terminal como root y baja el código fuente del cliente migasfree:
wget https://github.com/migasfree/migasfree-client/archive/latest.zip
Necesitaremos tener instalado unzip
para descomprimir el fichero zip:
apt-get install unzip
Descomprimimos el fichero latest.zip
:
unzip latest.zip rm latest.zip
Ahora tendrás una carpeta llamada migasfree-client-latest
.
Creamos a continuación el paquete migasfree-client
. Para ello
necesitamos tener instalado el paquete python-stdeb
:
apt-get install python-stdeb
Nos situamos en la carpeta bin del proyecto y ejecutamos el script
create-package
:
cd migasfree-client-latest/bin ./create-package cd ../..
Ahora en la carpeta deb_dist
tenemos el paquete deb que instalamos:
dpkg -i migasfree-client-latest/deb_dist/migasfree-client_*_all.deb
Por problemas de dependencias, seguramente se dejará sin configurar el cliente de migasfree. Para instalar las dependencias que faltan, haremos:
apt-get -f install
Otras Distribuciones a las implementadas
Si al ejecutar ./create-package
te aparece:
Error
Computer distro is not available. Aborting package creation.
entonces, consigue el nombre de tu Distribución:
_DISTRO=$(python -c "import platform; print platform.linux_distribution()[0].strip()")
y crea un nuevo fichero cuyo nombre sea $_DISTRO
en el
directorio setup.cfg.d
para paquetería rpm:
touch ../setup.cfg.d/$_DISTRO #
o en el directorio stdeb.cfg.d
para paquetería deb:
touch ../stdeb.cfg.d/$_DISTRO
Finalmente, copia dentro de este fichero el contenido de otro fichero de una Distribución similar y modifica las dependencias necesarias.
Una vez realizado este proceso vuelve a ejecutar ./create-package
Empaquetando proyectos python
La diferencia entre el pasado, el presente y el futuro es sólo una ilusión persistente.
—Albert Einstein
Es posible que necesites crear un paquete desde un proyecto escrito en python, bien porque tu Distribución no te lo proporciona o bien porque la versión que necesitas no esté disponible.
En este capítulo vas a empaquetar django
como ejemplo y el método que
usarás es válido para la mayoría de proyectos escritos en python
.
Creación del paquete django
en distros basadas en paquetería apt
Descarga el código del proyecto django cuya versión necesites y descomprímelo:
wget https://www.djangoproject.com/download/1.6.2/tarball/ -O Django-1.6.2.tar.gz tar xzvf Django-1.6.2.tar.gz cd Django-1.6.2
Asegúrate que tienes instalado el paquete python-stdeb:
apt-get install python-stdeb
Ahora crea el paquete:
python setup.py --command-packages=stdeb.command bdist_deb
En la carpeta deb_dist
tendrás el paquete deb.
Más información en https://wiki.debian.org/Python/Packaging
Creación del paquete django
en distros basadas en paquetería rpm
Descarga el código del proyecto django cuya versión necesites y descomprímelo:
wget https://www.djangoproject.com/download/1.6.2/tarball/ -O Django-1.6.2.tar.gz tar xzvf Django-1.6.2.tar.gz cd Django-1.6.2
Ahora crea el paquete:
python setup.py bdist_rpm
En la carpeta dist
tendrás el paquete rpm.
Para más información puedes consultar http://docs.python.org/2.0/dist/creating-rpms.html