La aplicación de la semana (29-5 Nov-Dic 04): Administración: checkinstall

+1
0
-1

Hola a todos de nuevo.

Volvemos a la carga de nuevo con una nueva aplicación "desconocida" por muchos, y que no deja de ser importante.

Esta vez, hablaremos de checkinstall (que tenemos en el repositorio universe).

¿Que es checkinstall?

Antes de contestar a esta pregunta, voy a hablar un poco sobre la instalación de aplicaciones en Ubuntu.

Ubuntu, usa el sistema de paquetes de Debian. Un sistema muy potente de paquetería. Ahora, que pasa cuando, lo que realmente tenemos, es el código fuente y no el paquete deb?

Por norma general, cuando tenemos el código fuente de una aplicación, lo que hacemos es lo siguiente.

- ./configure (para comprobar dependencias y preparar la compilación)
- make (compilar)
- sudo make install (instalar)

Estos son los pasos normales para compilar e instalar una aplicación a partir del código fuente, pero hay un problema muy grande con este sistema. Como desinstalamos? un make install deja desperdigado por el disco duro una serie de archivos de libería, ejecutables etc... que luego, tendríamos que ir borrando uno a uno, a no ser que el código fuente, disponga de un make uninstall.

Aquí es donde entra checkinstall.

Esta fantástica herramienta es la perfecta "sustituta" a make install

Con checkinstall el proceso a realizar es prácticamente el mismo

- ./configure (para comprobar dependencias y preparar la compilación)
- make (compilar)

y aquí es donde hacemos
- sudo checkinstall

checkinstall realizará un make install pero haciendo un seguimiento de todos los archivos que se van a instalar.
Entonces nos preguntará si queremos añadir documentación, si queremos modificar agún dato como la versión etc..

Pero todos estos datos porque?

Pues porque checkinstall, como he comentado, hace un make install pero realmente no lo instala, si no lo que hace es crear un paquete debian (que deja en el directorio donde nos encontramos) para poder instalarlo a traves de synaptic (si copiamos el archivo deb a un repositorio configurado) o a traves de dpkg -i paquete.deb

De tal manera, de que ahora, podemos libremente desinstalarlo desde synaptic o desde dpkg -r paquete.deb sin dejar basura.

Por lo tanto, resumiendo para finalizar este artículo. Que es lo que hace checkinstall por nosotros cuando lo ejecutamos?

- Nos pide una serie de información que será la mostrada cuando hagamos un dpkg --info paquete.deb

- Crea un paquete debian (.deb) para poder llevarlo donde queramos y poder instalar sin tener que compilar. Eso sí, pedirá las dependencias necesarias en caso de necesitarlas. Por ejemplo, si nuestro programa requiere de las librerías de QT, al instalar el .deb en otra máquina por ejemplo, nos pedirá tener instalado QT.

- Instala el .deb

Por ejemplo. Yo me descargué gdesklets 0.31.1. Realicé el ./configure el make y el checkinstall. Pues me instaló gdesklets 0.31 (de tal manera que ahora puedo desinstalarlo facilmente cuando quiera) y puedo colgar el .deb para que lo instaleis vosotros sin tener que recompilar.

Fácil verdad?

Un saludo, espero que os haya sido de utilidad

 _                  _     _____          _       _   _
| |    ___  _ __ __| |   |__  /___  __ _| | ___ | \ | |
| |   / _ \| '__/ _` |     / // _ \/ _` | |/ _ \|  \| |
| |__| (_) | | | (_| |    / /|  __/ (_| | | (_) | |\  |
|_____\___/|_|  \__,_|___/____\___|\__,_|_|\___/|_| \_|
                    |_____|

Comentarios

Imagen de AlexanderMagnamara

Una buenisima solucion al problema de la basura creada por los "make install" y una importante ayuda para su desinstalacion ;)

Gracias por poner el nombre de esta gran aplicación
-----------------------------------------
Acercate a la realidad. Verás los pixels.

Acercate a la realidad. Verás los pixels.

Imagen de Anónimo

Y esto se puede configurar para que compile todo optimizado, por ejemplo para un K7? Porque si es así vaya si que interesa.

PD: Si es así, decidme como, please. :D

Imagen de froguz

No sé si estoy en lo cierto, pero supongo que checkinstall antes de "empaquetar" las librerías y binarios debe compilarlos. por lo tanto el paquete quedará optimizado para TU arquitectura, que es mucho mejor que bajar o instalar un paquete mediante aptitude (apt-get para los que no conocen la pequeña (gran) diferencia) que pude estar compilado en cualquier tipo de arquitectura.

checkinstall dispone de la opción -A --arch --pkg-arch=[arch] para establecer la arquitectura. pero a mí parecer, esta opción solo permite cambiar la arquitectura que se mostrará en la información del paquete y no la arquitectura bajo la cual será compilado.

Difícilmente un paquete podría quedar optimizado para una arquitectura distina a la que se compila, por lo menos de manera nativa.

Favor corregirme si no estoy en lo cierto.

Imagen de mauricio van

mi pregunta es que si en ubuntu ya viene instalado y listo para usarse, porque no he podido instalar los *.tar.gz, solo los *.deb, y eso si me funcionan bien, asi que si me pueden ayudar con esos temas les agradecería mucho.