[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: Creando un documento sobre crear paquete Debian



-----Mensaje original-----
De: Francisco José Avila Bermejo <monkiki@teleline.es>
Fecha: jueves 19 de agosto de 1999 16:02
Asunto: Creando un documento sobre crear paquete Debian



>Pues ya que he hecho un paquete Debian, pues me gustaría documentar lo
que
>he hecho, de forma que otra persona pueda hacer un paquete Debian sin
>comerse la cabeza como yo me la he comido: intentando encontrar la forma
>de hacerlo más fácil y en menos pasos. Para ello quiero hacer un HOWTO
>españolizado. Lo que llevo hecho va en este mismo mensaje. Hay algunas
>cosas que no sé hacer y algunos fichero que no sé para qué valen. Espero
>que la peña de la lista colabore un poco.

Tengo por aquí un documento que escribí hace un tiempo y que envíe a
es.comp.os.linux.


Ricardo Villalba
rvm@linuxfan.com
ricardovm@arrakis.es
http://members.xoom.com/rvmsoft
http://rvmsoft.findhere.com


Mi intención era coger las fuentes originales de un pequeño programa de los 
que van en la debian y crear un paquete .deb de él. Pero me he encontrado 
en el disco duro el programa Infocoste de Santiago Romero que puede valer
perfectamente para este cometido ya que es un programa muy pequeño con 
licencia GPL y desde luego no existe en formato .deb.

Son las 23:54 (acaba de terminar Expediente X).

- En primer lugar copio en ~/fuentes/deb/ el fichero infocoste-1.0.tgz. Como
parece que las fuentes en debian usan la extensión .tar.gz pues lo renombro
a infocoste-1.0.tar.gz.

- Creo el directorio infocoste-1.0 y extraigo en él el contenido del archivo.

- Exporto en la variable EMAIL mi dirección de correo electrónico.

- Ejecuto deb-make. Si el paquete hubiese sido nativo habría tenido que 
añadir el parámetro native.

- El programa me pregunta el tipo de paquete. Entre las opciones que me
muestra eligo "Single Binary".

- El programa me dice que modifique los ficheros del directorio debian
recien creado y que me asegure de que el programa se instala en $DESTDIR y
no en /. (Veo además que en el directorio padre se ha creado otro
directorio llamado infocoste-1.0.orig donde se han extraido las fuentes
originales).

- El programa infocoste no lleva Makefile así que lo tendré que crear yo.

(Son las 00:17)
- Vale, los dos scripts (conecta y desconecta) y el programa en sí 
(infocoste) se instalarán en /usr/bin. El README y el connect.log 
(un fichero con conexiones de ejemplo) se instalarán en /usr/doc/infocoste.
Aquí hay que asegurarse de que se instalará en $DESTDIR. Pongo la
sección "install" del Makefile para que se vea claro:
install:
    cp conecta $(DESTDIR)/usr/bin/
    cp desconecta $(DESTDIR)/usr/bin/
    cp infocoste $(DESTDIR)/usr/bin/
    -mkdir $(DESTDIR)/usr/doc/infocoste/
    cp README $(DESTDIR)/usr/doc/infocoste/
    cp connect.log $(DESTDIR)/usr/doc/infocoste/

- Tecleo 'make' para ver si el programa se compila correctamente. Oops da
unos cuantos warnings, espero que sea normal.

- Bueno, ahora me meto en el directorio debian, edito el fichero copyright
rellenando lo que falta (sitio donde lo bajé y tipo de copyright).

- Edito el fichero README.debian y pongo los cambios que he hecho 
(simplemente "Adaptación del paquete al formato .deb.")

- En el directorio debian hay unos cuantos ficheros *.ex que pueden servir
de ejemplo para por ejemplo crear manuales, páginas info, añadir algo
al crontab, etc. Como no es el caso no toco nada.

- En caso de que el programa tuviese algún fichero de configuración habría
que crear un fichero llamado conffiles con la lista de ficheros de 
configuración. En este programa no hay, pero para que veais como es os
pongo un ejemplo de como sería:
/etc/timofometrorc
/etc/ppp/ip-up.d/0timofometro
/etc/ppp/ip-down.d/0timofometro
/var/log/timofometro.log
/usr/bin/timoinforme.sh

- Ahora edito el fichero control. En el apartado "Section" pongo la sección
donde debe ir el paquete, pongo "net".
Modifico también el apartado "Description". En la primera línea pongo una
breve descripción, y en las líneas siguientes una descripción más larga 
pero cada línea debe empezar por un espacio o tab.

- En el fichero dirs hay que poner los directorios en los que se instalarán
los distintos ficheros:
usr/bin
usr/doc/infocoste

- Ahora toca editar el fichero "rules". Aquí están las reglas para crear
el paquete deb. La verdad es que el programa deb-make ha hecho un gran
trabajo y no tengo que modificar nada. 

- Me salgo del directorio debian y regreso a ~/fuentes/debs/infocoste-1.0.

- Ahora ya por fin voy a crear el paquete .deb. Para ello ejecuto la
orden "dpkg-buildpackage -rfakeroot". El parámetro -rfakeroot es para poder
hacerlo sin tener que ser root (para ello hay que instalar el paquete
fakeroot). Si no quieres firmar el paquete por no tener el pgp hay que 
poner además estos dos parámetros: -us -uc.

- Durante la creación del paquete se ha quejado de que los ejecutables
no tienen páginas de manual.

- Pues ya está. En el directorio padre ahora tengo estos ficheros:
infocoste_1.0-1_i386.changes  infocoste-1.0.tar.gz          
infocoste_1.0-1_i386.deb      infocoste_1.0-1.diff.gz       
infocoste_1.0.orig.tar.gz     infocoste_1.0-1.dsc
además del directorio infocoste-1.0

Son las 00:53. ¡Qué casualidad he tardado casi justo una hora! Tened en
cuenta que he estado escribiendo esto a la vez que creaba el paquete.

Aquí teneis la salida del comando dpkg --info infocoste_1.0-1_i386.deb:
 new debian package, version 2.0.
 size 10764 bytes: control archive= 765 bytes.
     569 bytes,    13 lines      control
     484 bytes,     8 lines      md5sums
 Package: infocoste
 Version: 1.0-1
 Architecture: i386
 Depends: libc6
 Installed-Size: 25
 Maintainer: Ricardo Villalba <ricardovm@arrakis.es>
 Description: Programa facturador de llamadas telefonicas.
        Infocoste es un sencillo programa (y 2 scripts) que es capaz de:
        - Almacenar la fecha de inicio de conexion en un fichero especial
          de logs llamada connect.log en el directorio actual.
        - Almacenar la fecha de fin de conexion en el mismo fichero.
        - Posteriormente, procesar dicho fichero dandonos la informacion
          de gasto de bonos de Internet entre 2 fechas dadas.



Reply to: