Crear un paquete .deb manualmente

Lo anterior está muy bien, pero… y si quiero crear un .deb personalizado para por ejemplo copiar mis scripts bash en alguna ruta, o copiar alguna imágen en alguna otra ruta (por ejemplo: un .deb que me instale fondos de pantalla nuevos en /usr/share/backgrounds). ¿Como lo hariamos?.

Veamos un ejemplo muy simple, pero que sentara las bases para que cualquiera pueda “fabricarse” su .deb a medida.

Por ejemplo, yo tengo un script llamado “execute.sh” que quiero instalar en /usr/bin del sistema mediante un fichero .deb. Los pasos a ejecutar serian:

1. Creamos un directorio nuevo en el directorio donde tengamos los ficheros que queremos usar. Podemos usar cualquier nombre, pero luego mantener esa referencia. En el ejemplo yo uso “deb”

mkdir deb

2. Sobre ese directorio recien creado, tenemos que recrear la estructura destino que queremos utilizar. Como yo quiero copiar mi script sh en /usr/bin, entonces creo el directorio /deb/usr/bin:

mkdir -p ./deb/usr/bin

3. Ahora copiamos el script a ese directorio (o los ficheros que quiera añadir). Si quisiera copiar a otro directorio tendriamos que reconstruir a partir de “deb” esos directorios nuevos.

cp ./execute.sh ./deb/usr/bin

4. Ahora creamos un subdirectorio llamado DEBIAN, que contendra el fichero de paquete de control. Este es un fichero con un determinado formato y que proporciona informacion del contenido del paquete .deb.

mkdir ./deb/DEBIAN

5. Creamos un fichero de control con el siguiente comando:

touch ./deb/DEBIAN/control

6. Abrimos el fichero de control y copiamos el siguiente texto. Modificando las partes que sean necesarias.

Package: Aquielnombredelpaquete (cuidado, no se permiten espacios o caracteres _ )
Priority: optional
Section: misc
Maintainer: aquielnombredelcreadorysuemail
Architecture: all
Version: 1.0
Depends: package1, package2, ......... (si tiene alguna dependencia por aqui el nombre)
Description: aqui_una_descripcion_corta_del_paquete
 Y aqui una descripcion larga (Ojo, no elimines el espacio inicial al comienzo de esta linea)
(y por ultimo elimina esta linea y deja una linea vacia)

¿Lioso?, Tranquilo, aqui te dejo un ejemplo de mi fichero de control:

Package: SCRIPTS
Priority: optional
Section: misc
Maintainer: piwi
Architecture: all
Version: 1.0
Depends:
Description: Pack de scripts con utilidades varias
 Contiene scripts de utilidad general para administrar el sistema, utilidades como son ssh remoto,
telnet remoto, scp, matar procesos, etc...

7. Vale, ahora cambiamos el propietario de ese directorio:

sudo chown -R root.root ./deb

8. Y por ultimo creamos el paquete en formato .deb:

dpkg -b ./deb /ruta/donde/quieres/dejar/el/nombre_paquete.deb

Por ejemplo: dpkg -b ./deb /home/jose/SCRIPTS.deb me generaria mi paquete .deb con mi script listo para instalar.

¿Complicado?. Pues tranquilo otra vez, en el siguiente post veremos como hacer todo esto de manera grafica.
Pero queria enseñarlo primero de manera manual, para que cualquiera pudiera comprender las bases minimas de la anatomia de un fichero .deb.

Fuente | UbuntuForums

19 Responses to “Crear un paquete .deb manualmente”


  1. 1 sam agosto 5, 2010 a las 4:58 pm

    Muchísimas gracias por estos manuales.Están muy bien

  2. 2 Christopher agosto 5, 2010 a las 5:10 pm

    Excelente, había buscado demasiadas veces este tema. Va a mis favoritos.

    Es muy diferente hacer para lo que no necesitas el código fuente del programa.

    Mis respetos.

  3. 3 Heisenberg agosto 6, 2010 a las 5:40 pm

    En lugar de los pasos 7 y 8 se puede hacer en uno solo y se evita cambiar el propietario de los archivos usando fakeroot:
    fakeroot dpkg -b ./deb /ruta/nombre.deb

    Mini tutorial para editar un paquete cualquiera:
    1-Extraer archivos: dpkg -x paquete.deb directorio
    2-Extraer control: dpkg -e paquete.deb directorio/DEBIAN
    3-Modificar archivos de control o demás archivos.
    4-Reempaquetar: fakeroot dpkg -b directorio

    Espero que sea de utilidad, saludos.

  4. 4 Nacho agosto 31, 2010 a las 7:51 pm

    Hola, quisiera saber como hacer para que algunos archivos se instalen en el home del usuario y como crear lanzador a la aplicacion que estoy creando el paquete. Gracias!

  5. 5 JosueDani septiembre 1, 2010 a las 6:20 pm

    Excelete post, justo lo que necesitaba, gracias

  6. 6 Juan M. Hidalgo junio 15, 2011 a las 7:20 pm

    Sinceramente es uno de los posts más útiles que he encontrado en el último tiempo. Ideal para “debianizar” sitios webs.

  7. 7 tuxricotero agosto 27, 2011 a las 3:03 am

    Hola por las dudas no sabés cómo hacer para crear las sumas hash que se encuentran en el mismo directorio que el archivo control. Porque resulta que hice el empaquetado tal cual está acá y los tengo en mi localhost en un servidor con apache. Agregué mi dirección local a los repositorios y me reconoce el paquete que tengo pero cuando le doy apt-get install no me lo instalá por el problema de las sumas hash.
    Bueno, esa es la duda. Si podés contestarme te agradezco, igual gracias por esta info, me vino al pelo. Saludos.

  8. 8 enSIAPado septiembre 3, 2011 a las 2:32 am

    Gracias, la mejor descripción a prueba de bobos que he leído!!!

  9. 9 Manuel octubre 27, 2011 a las 7:01 pm

    muy buena la explicación

  10. 10 Malevo noviembre 5, 2011 a las 8:34 pm

    para los que empezamos y a os que palabras como “hash” nos suenan a chino, donde hay un manual de ayuda?
    los que escribís post asumìs que todo el mundo es un experto, por eso linux es un ghetto

  11. 11 anonimo octubre 9, 2012 a las 5:44 pm

    me crea el paquete con un script que quiero probar y lo instala sin errores pero al ejecutarlo aun directamente desde /usr/bin dice que no lo encuentra aun como root…😦

    en que estare fallando…😦

  12. 12 Phantom julio 26, 2013 a las 6:42 pm

    Tienes que darle permiso de ejecución a ese script, sino no se ejecuta. Puedes utilizar:
    sudo chmod +x /usr/bin/script
    Por cierto, muy buen post, me encantó.
    El problema que tienen muchos aquí es que no saben instalar el paquete una vez creado. Para instalarlo solo tienen que hacer lo siguiente:
    dpkg –i /../paquete.deb
    Quiero que quede constancia que tooodo lo que se ha hablado aquí, incluyendo la instalación del paquete .deb (con gdebi), se puede hacer visual, solo que para los que usamos Linux, se nos ha hecho una manía la consola, porque aprendemos que una vez que la conocer te das cuenta que es realmente cómoda, y que puedes hacer en ella cosas que de una manera visual, son imposibles, ejemplo de ello es wget y grep, y los pipes. Investiguen sobre eso.

  13. 13 Danny septiembre 17, 2013 a las 2:39 pm

    Muy bueno y gracias por el aporte!

  14. 14 agubena77 julio 19, 2015 a las 10:06 pm

    Muy buena entrada, pero tengo una pregunta: porque pones los directorios como si fueran ocultos, es decir así ./ o es porque es un ejecutable?


  1. 1 Crear paquete deb manualmente « Un Bioinformatiquillo Trackback en agosto 25, 2010 a las 1:31 pm
  2. 2 Guia del nuevo desarrollador de Debian « Ubuntu Life Trackback en octubre 27, 2010 a las 8:03 pm
  3. 3 Create .deb from bash script with dependencies « kike's blog Trackback en febrero 11, 2011 a las 5:03 pm
  4. 4 Crear un paquete .deb manualmente « Debian y GNU/Linux Trackback en febrero 18, 2011 a las 8:34 pm
  5. 5 Crear un paquete .deb básico a partir de un script | Hermetric Trackback en enero 13, 2014 a las 6:16 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map
agosto 2010
L M X J V S D
« Jul   Sep »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Blog Stats

  • 29,548,374 hits

A %d blogueros les gusta esto: