Que es un paquete deb?.
Ps un paquete son algunos archivos y las instrucciones que debe de seguirse, donde ponerlos,donde instalarlos, son binarios utilizados por debian GNU/Linux
NECESITAMOS:
-build-essential
-gcc & make
-devscripts
-dh-make
-autoconf
-automake
-linda
-GNUPG
-fakeroot
Bajar todo por APT-GET.
Una cosa importante y se me olvidaba es que en el makefile especifiquen que el prefix es /usr, ya que en debian no podemos empaquetar algo que se instale en /usr/local (de hecho se puede, pero no se debe).
Bien, de manera rapida les digo como hice un paquete deb. Primero supongamos que queremos empaquetar el ultimo snapshot de gaim. Los pasos serian asi:
baje el cvs de gaim, las instrucciones para ello lo encuentran en su pagina; luego hice un directorio llamado ‘dev’ en mi home, ahi meti el source en .tar.gz, lo descomprimi e hice:
CÓDIGO
./autogen.sh
dh_make -e omar@blahblahblahblah.com -f ../gaim-2.0.0cvs.tar.gz
dh_make -e omar@blahblahblahblah.com -f ../gaim-2.0.0cvs.tar.gz
en el directorio de sources de gaim, Ahi se nos va a crear un directorio llamado "debian" editamos el archivo de control poniendo las dependencias necesarias las pueden averiguar de esta forma:
CÓDIGO
objdump -p /path/al/binario|grep -i needed
Luego:
CÓDIGO
dpkg -S coso.x.so
con eso averiguan que paquete necesita.
Una vez hecho esto en su fichero de control ponen si hace conflicto con alguno (Conflict:) lo que provee con Provides: alguno que lo reemplace con Replaces:,etc.. (para ver un ejemplo de un archivo de control, hagan apt-cache show programa).
En el mismo directorio de debian esta el archivo copyright donde debemos poner el que debianizo el
paquete (osea nosotros) y el upstream author, osea el que escribio el programa, ademas de incluir la licencia.
Tambien vamos a editar el changelog con los cambios que hemos hecho.
El README.debian lo borramos si esque nuestro paquete debianizado no tiene ninguna diferencia con el original (osea q al debianizarlo hayamos cambiado algo).
El conffile.ex sirve para indicar que no sobreescriba alguna
configuracion de ese paquete viejo (por ejemplo algun archivo en /etc).
Si el user ha editado a mano y luego le sobreescribimos esto pues sera muy molesto, esto ya depende del programa.
El archivo de cron.* tambien hay que borrarlo, ese archivo indica si la tarea se debe ejecutar cada X tiempo.
El archivo dirs es donde se deberia instalar pero como el configure ya le define un path no hace falta, asi que se borra tambien.
Los archivos emacs-* sirven para que si nuestros paquetes son archivos de emacs que pueden ser compilados en tiempo de instalacion, lo definamos aqui, pero como no eraa mi caso pues remove.
El init.d.x tambien lo borramos a menos que estemos empaquetando un demonio que inicie al cargarse el sistema..asi que remove tambien xD.
Debemos de poner una pagina man en manpage.1.ex, y un archivo del menu de debian en menu.ex.
Algo importantisimo es el archivo rules, que es un Makefile este le indica al make que hacer..Lo pueden editar aunque en mi caso no fue necesario
ahora viene lo mejor
CÓDIGO
dpkg-buildpackage -rfakeroot
y ahi se nos debio de crear todo, para una proxima modificacion solo
hariamos:
CÓDIGO
debian/rules binary
y listo, ahi queda nuestro deb, lo pueden firmar con Gnupg si quieren, aunque yo no lo hice Bueno, como sea, esto les da una vaga idea de como empaquetar.
Si tienes alguna duda o no entiendes los ejemplos dados ahi, y en los mismos archivos de debian, consulta la documentacion oficial.
ah algo mas, no necesitas de ser DD para hacer un deb, pero si quieres si quieres serlo lee mas, y adopta un paquete que no tenga quien lo desarrolle
=mas recursos
CÓDIGO
www.debian.org
www.laespiral.org
www.women.alioth.debian.org/
www.laespiral.org
www.women.alioth.debian.org/
Omar < omarsan @ gmail.com >
Puedes copiar y modificar este texto, siempre mencionando el autor
saludos
Si tienen alguna duda pueden contactarme ^^ o pueden revisar la documentacion oficial para DDs (debian developers)