Creando paquetes .deb con Checkinstall

Soy uno de muchos que han tenido que compilar una versión nueva o alguna aplicación que no está en sus repositorios, el problema con esto es que al compilar en un directorio la aplicación guarda sus librerías y otros archivos en el directorio en el que la compilaste, y si actualizamos el paquete quedan como basura o si eliminamos la carpeta la aplicación ya no sirve. “Es preferible crear un paquete e instalarlo“, si, pero no todos somos buenos con make, así que les presento a checkinstall, que viene a facilitarnos la tarea.

Bien, checkinstall no es nada más que un pequeño asistente por terminal para crear paquetes .deb. Así podemos compilar y crear paquetes para, por ejemplo, mandárselos a nuestros amigos.

Para empezar, tenemos que instalar checkinstall. Así que hacemos (como root):

apt-get install checkinstall

Y en un instante lo tendremos instalado… Lo siguiente es ir a la carpeta en la que tenemos el código de la aplicación, y abrir una terminal. Ejecutamos los siguientes comandos, uno a uno:

./configure
make

Con “./configure” se configuran los paquetes para nuestra distribución y  se crea un “Makefile” (un archivo que contiene instrucciones de compilación), y con “make” se compila el código y deja los binarios, librerías, etc en la carpeta “src“. Ahora, antes de continuar, es recomendable no tener instalada la aplicación de la que se hará el paquete. Si lo está, hagan un:

sudo make uninstall

Y entonces es momento de comenzar con la parte importante, el uso de checkinstall. En esa misma terminal, escribimos:

sudo checkinstall

Y se abrirá el “asistente” de checkinstall. En él podemos modificar la información  que tendrá el paquete que crearemos. Las opciones que podemos modificar son:

  • Maintainer: el desarrollador principal del paquete.
  • Summary: una descripción del paquete.
  • Name: nombre que quieres darle al paquete.
  • Versión: versión del paquete.
  • Release: viene siendo la versión principal del paquete, podemos dejarlo como venga.
  • License: licencia de la aplicación, es preferible no tocarlo.
  • Group: grupo por el cuál fué creado, podemos dejarlo como está.
  • Architecture: arquitectura de procesador del paquete.
  • Source location: nombre de la carpeta (solo la carpeta, no la ruta entera) en la que está el código del paquete.
  • Alternate source location: no es necesario modificarlo.
  • Requires: dependencias que deben ser instaladas para su correcto funcionamiento.
  • Provides: nombre del paquete que provee, no es neesario modificarlo.
  • Conflicts: paquetes con los que entra en conflicto.
  • Replaces: paquetes a los que reemplaza.

Creando un paquete .deb con Checkinstall.

Como ven tenemos una amplia cantidad de opciones para modificar. Cada una tiene un número a su izquierda, así que para editarla solo escibimos su número y presionamos [Enter]. Las que suelo modificar yo son: Maintainer, Summary, Name, Version, y quizás Requires.
Una vez hayamos modificado lo que queremos, presionamos [Enter] (sin ningún número previo) y comenzará a compilar e instalar el paquete. Cuando haya terminado, en el directorio donde compilamos habrá aparecido un paquete .deb de la aplicación, listo para instalar 😉
Notas:
  • Asegúrense se que en “Version“, no hayan letras. Eso suele evitar que se cree el paquete.
  • Es posible que si editan “Requires” les de un fallo, si ocurre dejen el espacio en blanco.
Bueno, ahora ya no tienen excusa para no crear sus propios paquetes .deb. Y cuéntenme, ¿Suelen crear paquetes para su distro? ¿Cómo suelen crear paquetes en la distribución que usan? Tengo curiosidad 😛


17 comentarios

  1.   VisitntX dijo

    Sólo una pequeña corrección. Donde dice que make es para crear un Makefile es incorrecto, dicho archivo es creado al ejecutar satisfactoriamente ./configure, el cual chequea nuestra configuración así como las dependencias requeridas por el programa a compilar. Make toma dicho archivo y compila dejando los binarios, bibliotecas y demás en los directorios dentro del src. Make install es quien lo envía al sistema y genera los enlaces, por dicha razón make install debe ser ejecutado como su.

    1.    AurosZx dijo

      Muchas gracias por aclarar, corregido el artículo.

  2.   Yoyo Fernández dijo

    Perfecto me viene 🙂

    He creado alguna vez algún .deb para mi Debian, como en el caso del SMPlayer 0.8.0 el cual en el paquete del source ya viene un script para hacerlo así que yo no hice nada solo correr el script xDD

    Normalmente suelo empaquetar software para Pardus pues en PardusLife tenemos nuestro pequeño repo de nuestra comunidad 😉

    Normalmente empaqueto desde un programa con GUI llamado PiSiDo, aunque ultimamente uso mucho la terminal. Acá hice un video-tutto de como empaquetar con PiSiDo para Pardus 😉

    http://www.youtube.com/watch?v=sBYBSM7J3ec&hd=1

    Saludos

  3.   Windóusico dijo

    Yo también uso checkinstall, aunque he probado algunas herramientas con GUI que no van mal del todo (como Debreate).

  4.   Litos523 dijo

    Yo uso siempre checkinstall, mas que nada, porque al crear e instalar el .deb, luego se puede desinstalar con aptitude o con synaptic.
    Ademas, siempre puedes guardar el paquete por si en el futuro tienes que reinstalar o tienes que pasarselo a algun colega.

  5.   Merlin El Debianita dijo

    Interesante aunque nunca he tenido que compilar en debian voy a ver sí no consigo un deb lmms lo haré con checkinstall seguro.

    Gracias por el post.

  6.   Gato Veloz dijo

    ¡Muy bueno el artículo!
    No conocía CheckInstall. Muchas gracias AurosZx. No sé cómo he podido estar sin él hasta ahora.
    Lo acabo de probar con MovGrab, que no tengo en Debian y había compilado desde las fuentes. Por desgracia ha sido demasiado tarde para sudo make uninstall.
    Desde ahora lo voy a usar siempre.

  7.   Thunder dijo

    A veces los paquetes creados con Checkinstall, al ser instalados, no crean una entrada en el menú, es decir, instalas algún programa.deb y luego vas a buscar la aplicación en el menú y no aparece, la solución a esto es crearla manualmente.

    Yo uso Checkinstall para empaquetar Photo, un visor de imágenes hecho en Qt ^^

    Saludos!!

    1.    AurosZx dijo

      Conosco Photo, es un proyecto bastante interesante, que quedaría muy bien con RazorQt 🙂

    2.    vicky dijo

      Proba limoo tmb, es parecido a photo. Es de los que desarrollan de silicon empire

      http://getsilicon.org/limoo/

  8.   rogertux dijo

    Que tema estás usando?

    1.    AurosZx dijo

      GTK(2 y 3): Zukitwo. Ventanas: elementary. Panel: imagen que viene con el tema Zukitwo 😛

  9.   molocoize dijo

    Buen aporte, felicitaciones

  10.   Achim dijo

    Genial, probare este programa, yo para hacer los .deb que he nesecitado he utilizado allien.

    Saludod.

  11.   Oscar dijo

    Muy interesante, voy a tenerlo en cuenta, gracias por el aporte.

  12.   Stif dijo

    Gracias por el aporte, quiero empezar a crear mis propios paquetes y esto me va a servir de mucha ayuda. Gracias!

  13.   cr1ogen dijo

    Siempre creo los paquetes de wine con checkinstall

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.