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.zipen 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