Paquetes .deb, creación utilizando consola

Hola a todos, como bien dice el título de este artículos vamos a ver como crear nuestro propio paquete .deb. En mi caso me he basado en las maquinas que he tenido que migrar con la salida de XP y aprovechando algo que se compartió por acá para disminuir el impacto con los usuarios de mi joven club, aquí les va…

    Pasos a seguir:

1. Creamos un directorio, podemos usar cualquier nombre, pero luego mantener esa referencia. En el ejemplo yo uso crea.

mkdir crea

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

mkdir -p ./crea/usr/bin

3. Ahora copiamos el script a ese directorio (o los ficheros que quiera añadir). Si quisiera copiar a otro directorio tendríamos que reconstruir a partir de crea esos directorios nuevos.

cp ./crea.sh ./crea/usr/bin

4. En mi caso particular agrego tambien /crea/etc/opt para su futuro uso:

mkdir -p ./crea/etc/opt/

De esta forma debe recrear según su objetivo final

5. Ahora creamos un subdirectorio llamado DEBIAN, que contendrá el fichero de paquete de control. Este es un fichero con un determinado formato y que proporciona información del contenido del paquete .deb.

mkdir ./crea/DEBIAN

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

nano ./crea/DEBIAN/control

7. 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 aquí una descripcion larga (Ojo, no elimines el espacio inicial al comienzo de esta linea)
    (y por ultimo elimina esta linea y deja una linea vacía)

    Aquí un ejemplo:

    Package: sol
    Version: 1.0
    Section: utils
    Maintainer: Perico Perez
    Homepage: www.gutl.jovenclub.cu
    Priority: optional
    Architecture: all
    Description: Herramienta para trabajo en sistema

8. Ahora ejecutamos como superusuario:

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

9. Por ultimo damos permisos al .deb creado anteriormente:

chmod 777 /ruta/donde/se/encuentra el/paquete.deb

Listo, esta es una forma de crear .deb, aunque no es la única, existen aplicaciones que nos facilitan el trabajo, en proximos artículos les comento al respecto. En los días que dedique a investigar sobre el tema se me ocurrieron algunas ideas para mi deb, por ahora me he creado una aplicación para instalar XpGnome con solo algunos clic y sin necesidad de consola, algo para modificar mi sources.list y para el trabajo con .ISOS.

Aquí les dejo una imagen:

Pant

Espero como siempre les sea útil.

Fuente: http://ubuntulife.wordpress.com

¿Te resultó interesante? Compártelo ...



yadielrv

Publicado por yadielrv

Forma parte de GUTL desde el 16 agosto, 2013. La diferencia entre estupidez y genialidad es que la genialidad tiene sus límites. Albert Einstein.

Este artículo tiene 31 comentarios

  1. Según he leído no es muy aconsejable establecer los permisos de las aplicaciones a 777, aunque yo lo hago todo el tiempo por costumbre; pero hay que tener cuidado, en el caso de los paquetes .deb los permisos asignados son 0644.

    Saludos.

    • hola, cuando trato de generar el archivo me dice:
      dpkg-deb: error: control directory has bad permissions 700 (must be >=0755 and <=0775)

      tendre que cambiar primero los permisos al directorio DEBIAN ?

  2. Gracias por el escrito, necesito aprender bastante del uso de paquetes .deb
    Pregunta: Sabes sobre la manipulacion de paquetes .rpm
    SALUDOS

      • brother, no es por quitarte la inspiración ni nada de eso pero, no has probado hacer primero un LFS (Linux from scratch), digo ya esa idea es bastante peliaguda así que ni hablar de hacerlo todo de 0. Si logras un LFS puedes empaquetarlo como te dé la gana y sigue siendo compatible con todo, y para colmo le puedes poner un nombre bonito (kairOS??) 🙂

        • el problema es q es libre pero no es basado en linux…todo va mas alla d cuanto puedan imaginar…despues q coordine con mi companhero d proyecto publico aqui una entrada…porque no es mio solo, y ademas, va mas alla de cuanto puedan imaginar, pero necesito ayuda d programadores d todos lados…por eso necesito a nedhard y otros d la UH, despues vere si encuentro personal en la CUJAE…no hay d q preocuparse porque a pesar d q yo y mi socio estudiemos en la UCI la uci no tiene nada q ver en esta idea

          • UFF Solaris!!! que tiempos aquellos, cuando los equipos de procesamiento corrian una especie de UNIX sobre estos servidores, recuerdo que era bastante estable pero muy enfocado a estos servidores de procesamiento que ahora cualquier i7 les da tubo! Creo que deberías leerte un poco el kernel hurd o el de BSD para que veas que son mejores pues han sido actualizados para funcionar con equipos modernos, además en el caso de hurd está pensado para ser el mejor de todos los kernels, lástima que no se le haya echado un peso arriba, pero bueno los entusiastas dicen que trabajar en él es la panacea.

          • pienso usar illumOS para derivarme de el…hurd no, es libre en EXCESO , y defiendo el software libre, pero eso no quiere decir software GRATIS…me derivare de illumOS

            no obstnte en cuanto al kernel, estoy dedicandome a estudia en mis tiempos libres sobre kernels hibridos y exokernels…(stan tufaos)

          • Tu idea esta bastante buena cuenta con nosotros, los informáticos del Oncológico, tambien hemos hecho nuestras cositas y un poquito mas de ayuda no te vendrianada mal. . . . . . saludos

  3. Saludos,

    se que este tema es muy importante, pero gracias a nuestro buen amigo Delio Orozco conoci a Debreate, un excelente GUI para realizar exactamente esto mismo, y creanme que funciona a las 1000 maravillas… para los desarrolladores que se inician en esto de empaquetar sus programas etc… es mi recomendacion.

    LordFord.

      • Llamaret no había tenido la posibilidad de probar IndomiTUX, lo hice ayer y me a gustado, fácil de instalar, no consume, excelente la verdad, voy a instalarlo en algunas maquinas por acá para ver que opinan los usuarios. Saludos

        • Vaya, que sorpresa, ya ni me acordaba de IndomiTUX. Te recuerdo que esa version que anda suelta por ahi es basada en Debian 6. La version 2.x basada en Wheezy la cancele. Capaz y me animo luego y la continuo, pero por el momento no tengo motivos ni nada que me incentiva a retomar el proyecto 🙁

          Gracias por usarla y dejarlo saber. La version que cancele llevaba un toque visual mejor que esa que estas probando, pero bueno, espero te sirve y a los usuarios les resulte menos traumatico el paso de Win a Linx

          • La verdad funciona perfectamente, por lo menos hasta ahora, estoy pensando en enviar algunas capturas de escritorio. Si te embullas con la otra ya veré como la descargo, con esta estuve 3 noches para lograrlo. Tengo algún problema para instalar vlc

          • Haciendo un poco de memoria, me parece que para instalar VLC vas a tener que hacerlo con el que esta en los repos Backports de Debian 6, porque use varios paquetes y dependencias de esos repos y estoy casi seguro que el VLC de los repos normales no se va a dejar instalar. tienes acceso a los backports?????

      • Yo lo usaba, pero no me trabaja en ubuntu 14.04, me da este error:
        antonio@co6rj-desktop:~$ debreate
        Traceback (most recent call last):
        File «/usr/bin/debreate», line 235, in
        TestConfig()
        File «/usr/bin/debreate», line 232, in TestConfig
        Run(pos, size, maximize, center, dias, cwd)
        File «/usr/bin/debreate», line 81, in Run
        frame = debreate.MainWindow(None, -1, «», pos, size)
        File «/usr/share/debreate/debreate.py», line 218, in __init__
        self.page_build = panbuild.Panel(self.Wizard, ID_BUILD)
        File «/usr/share/debreate/panbuild.py», line 36, in __init__
        self.md5 = _md5.MD5()
        AttributeError: ‘module’ object has no attribute ‘MD5’
        antonio@co6rj-desktop:~$
        Si me puedes ayudar te lo agradecería.

      • Yo lo usaba, pero no me trabaja en ubuntu 14.04, me da este error:
        antonio@co6rj-desktop:~$ debreate
        Traceback (most recent call last):
        File “/usr/bin/debreate”, line 235, in
        TestConfig()
        File “/usr/bin/debreate”, line 232, in TestConfig
        Run(pos, size, maximize, center, dias, cwd)
        File “/usr/bin/debreate”, line 81, in Run
        frame = debreate.MainWindow(None, -1, “”, pos, size)
        File “/usr/share/debreate/debreate.py”, line 218, in __init__
        self.page_build = panbuild.Panel(self.Wizard, ID_BUILD)
        File “/usr/share/debreate/panbuild.py”, line 36, in __init__
        self.md5 = _md5.MD5()
        AttributeError: ‘module’ object has no attribute ‘MD5′
        antonio@co6rj-desktop:~$
        Si me puedes ayudar te lo agradecería.

Los comentarios están cerrados.