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.
- 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.
17 comentarios, deja el tuyo
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.
Muchas gracias por aclarar, corregido el artículo.
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
Yo también uso checkinstall, aunque he probado algunas herramientas con GUI que no van mal del todo (como Debreate).
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.
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.
¡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.
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!!
Conosco Photo, es un proyecto bastante interesante, que quedaría muy bien con RazorQt 🙂
Proba limoo tmb, es parecido a photo. Es de los que desarrollan de silicon empire
http://getsilicon.org/limoo/
Que tema estás usando?
GTK(2 y 3): Zukitwo. Ventanas: elementary. Panel: imagen que viene con el tema Zukitwo 😛
Buen aporte, felicitaciones
Genial, probare este programa, yo para hacer los .deb que he nesecitado he utilizado allien.
Saludod.
Muy interesante, voy a tenerlo en cuenta, gracias por el aporte.
Gracias por el aporte, quiero empezar a crear mis propios paquetes y esto me va a servir de mucha ayuda. Gracias!
Siempre creo los paquetes de wine con checkinstall