**************************************************************
* INSTALAR UN PROGRAMA BAJO LINUX: ****
* LA GESTION DE PAQUETES o COMO SIMPLIFICARSE LA VIDA *
* UN EJEMPLO DE COMPILACION PARA ENTRAR EN EL TEMA **
**********************************************************
Prerequisitos
- Saber utilizar la consola (terminal, shell)
- Conocer la noción de usuario normal / de súper-usuario (root)
- Conocer los comandos unix de base (cd, ls, rm, mkdir,...): Introducción comandos de base
- Saber instalar aplicaciones
- Otros enlaces de interés: Introducción a GNU/Linux
Introucción
Existen varios tipos de instalación, los paquetes o la compilación de fuentes, esta última solución siendo la más difícil de realizar. En cambio, la instalación de paquetes es sumamente sencilla, pudiendo incluso hasta evitarnos la búsqueda de paquetes, en efecto, ciertas distribuciones linux se han dado el trabajo de desarrollar herramientas de gestión de paquetes.
Sin embargo puede darse que ciertos programas (o las últimas versiones de ciertos programas) no existan (o aún no existan) en forma de paquetes: Por lo que se debe pasar por la compilación de las fuentes, de la que veremos un ejemplo en la parte III
***********************************************************************
I. La gestion de paquetes en diversas distribuciones
I.1. Introducción
Los paquetes son a linux como los .exe son a Windows. Estos son sumamente fáciles de instalar en la mayoría de casos, una vez que los enlaces dados como "Prerrequisitos" hayan sido realizados.
Los paquetes se presentan con las extensiones .rpm (para "Red-hat Package Management") en las distribuciones Mandrake, RedHat, Fedora Core y Suse, bajo la forma .deb para Debian, Ubuntu etc... y bajo la forma .tgz para Slackware.
Se instalan con el comando
rpm -ivh programme.rpm
o
dpkg -i programme.deb
o incluso
installpkg programme.tgz
Sin embargo varios problemas
pueden presentarse: el paquete que se desea instalar (programa_A) necesita la instalación de otro programa (programa_B) antes que nuestro programa_A: hará falta entonces ir a buscar el paquete del programa_B para instalarlo, pero nuevamente éste puede necesitar de la presencia de un programa_C, y así sucesivamente... Son las denominadas dependencias, y esto puede volverse rápidamente muy complicado si el programa_A depende del prog_a, prog_b, prog_c y prog_d y a su vez cada uno de ellos depende igualmente de una decena de programas...
Para simplificar la vida del usuario, la mayoría de las grandes distribuciones modernas integran un sistema de gestión de paquetes, que tendrá por rol (entre otros) gestionar las dependencias en lugar del usuario. Así, la instalación del programa_A se hará con el llamado de un comando: "instale-me programa_A", y la herramienta de gestión irá a buscar en los sitios web previamente definidos el programa_A, verificará si el programa_A depende de otros paquetes, y si es el caso, los descargará e instalará en el orden correcto: programa_C, luego el programa_B que depende de C, luego el programme_A que dependía de B.
Estas herramientas varian de una distribución a otra, pero obedecen a algunas generalidades de funcionamiento
***********************************************************************
I.2. Generalidades
Esta herramienta de gestión de paquetes funcionan como sigue: un comando "instale-me-eso:" (que debe reemplazarse por urpmi, apt-get, yum, ...) y el nombre del paquete que uno desee:
instale-me-eso: paquete
Para ello, hará falta configurar este utilitario indicándole donde buscar los paquetes que desea instalar: es lo que se llama darle las fuentes de donde debe descargar los programas. Veamos en la práctica como funciona esto según las diferentes distribuciones.
***********************************************************************
I.3. Mandriva y URPM
Aquí, "instale-me-eso:" se llama "urpmi".
Urpm dispone de varias variantes (notará que "falta" la i al final...)
urpmi que sirve para instalar ("i"nstall)
urpme que sirve para desinstalar ("e"rase)
urpmf y urpmq que sirven para hacer las búsquedas ("f"ind y "q"uery)
Cada uno de estos utilitarios posee una multitud de opciones: vaya al manual
man urpmi
idem para urpme, f, q, para conocer las diferentes opciones utilizables en cada uno de estos utilitarios. A continuación sólo veremos aquellos relacionados a urpmi.
_____________________________________________________________________
I.3.1. Definir las fuentes para urpmi
Todos estos comandos necesitan los privilegios de super-usuario (root): para ello, ingrese su luego su contraseña.
Para poder utilizar urpmi, se deberá inicialmente configurar las fuentes para urpmi. Para ello, utilizamos los comandos urpmi.addmedia (para adicionar una fuente) y urpmi.removemedia (para eliminar una fuente)
La sintaxis es la siguiente:
para adicionar una fuente:
urpmi.addmedia nom_de_la_fuente protocolo://direccion/del/directorio/de/paquetes/ with
ruta/relativa/hacia/hdlist.cz
para eliminar una fuente:
urpmi.removemedia nom_de_la_fuente
Se pueden adicionar como fuentes: los sitios ftp, http, los CDs, XX??????XXXX
En regla general, al momento de la instalación de Mandrake, se recuperan los diferentes CDs como fuente. Si se posee una conexión de banda ancha de tipo adsl, es preferible comenzar por eliminarlos y procurarse las nuevas fuentes que estarán actualizadas (contrariamente a los CDs)
urpmi.removemedia –a
Elimine todas las fuentes antiguas.
En seguida hay que adicionar las fuentes que se deseen: puede por ejemplo utilizar el sitio
easyurpmi.zarb.org muy bien realizado. Se adicionan entonces las diferentes fuentes: "main" correspondientes más o menos a lo que hay en los CDs, "updates" tiene las actualizaciones, "contrib" correspondiente a los paquetes provistos por otros usuarios (a utilizar con moderación). Existen también fuentes jpackage y plf (penguin liberation front) que pueden ser adicionados para aumentar el número de paquetes instalables por urpmi. Hay que notar que estos diferentes nombres han sido dados de forma indicativa, el usuario es libre de darles el nombre que desee.
Ejemplo detallado: la fuente "main"
urpmi.addmedia main fr2.rpmfind.net/linux/Mandrakelinux/official/10.1/i586/media/main with
media_info/hdlist.cz
- urpmi.addmedia es el comando
- main es el nombre de la fuente urpmi (el usuario es libre por ejemplo de poner \"principal\", o incluso \"toto_ama_las_flores\", lo importante es de ingresar un nombre reconocible: es habitual de llamarla por ejemplo \"rpmfind_main\" ya que va a buscar en el sitio rpmfind
- ............../media/main corresponde a la carpeta que contiene los archivos .rpm de la fuente main
- with media_info/hdlist.cz correspondiendo a la lista de paquetes contenidos en la carpeta .../media/main definido anteriormente: esta lista será descargada y almacenada en su ordenador y permitirá al programa saber rápidamente si el paquete existe y donde buscarlo: se trata de una ruta RELATIVA: es decir que la ruta hacia hdlist.cz es en realidad: ....../media/main/media_info/hdlist.cz
puede que a veces se encuentre con "with ../media_info/hdlist_main.cz": esto significa que la "hdlist" para "main" se sitúa en: ....media/media_info/hdlist_main.cz: se ha subido con .. un nivel en la arborescencia antes de volver a descender hacia media_info/
quedan por instalar los diferentes fuentes de la misma manera: para eso siga las indicaciones de easyurpmi, es decir ojee un poco en el sitio ftp para encontrar lo que le interese...
se puede por ejemplo adicionar:
urpmi.addmedia updates fr2.rpmfind.net/linux/Mandrakelinux/official/updates/10.1/main_updates with media_info/hdlist.cz
urpmi.addmedia contrib fr2.rpmfind.net/linux/Mandrakelinux/official/10.1/i586/media/contrib with media_info/hdlist.cz
urpmi.addmedia jpackage fr2.rpmfind.net/linux/Mandrakelinux/official/10.1/i586/media/jpackage with media_info/hdlist.cz
urpmi.addmedia plf-free ftp.free.fr/pub/Distributions_Linux/plf/mandrake/free/10.1 with hdlist.cz
urpmi.addmedia plf-nonfree ftp.free.fr/pub/Distributions_Linux/plf/mandrake/non-free/10.1 with hdlist.cz
Y bien, hemos instalado las diferentes fuentes para urpmi!
Resumen
su
xxxxxx <-- contraseña root
urpmi.removemedia -a
urpmi.addmedia nom carpeta_de_los_rpm with ruta_relativa/hdlist.cz
_______________________________________________________________________
I.3.2. Actualización de fuentes
Las distribuciones linux y los paquetes asociados son constantemente en evolución, es por esto que se aconseja, por ejemplo antes de instalar ciertos paquetes, de hacer una actualización de sus diferentes fuentes
_______________________________________________________________________
I.3.3. Instalar un programa con urpmi
Es aquí que uno comprende toda la potencia de utilización de este tipo de gestor de paquetes...
En un Terminal, pasamos al modo súper-usuario (su), y si se desea instalar el paquete "paquete", ingresamos:
urpmi paquete
Ejemplo : imaginemos que deseamos instalar gedit:
urpmi gedit
¡será suficiente!
Otro ejemplo interesante: Ud. desea instalar un "equivalente" libre de Office, pero no sabe ¿cómo se llama en linux? Puede contar con el hecho de que el paquete contendrá al menos la cadena de caracteres "office": puede intentar entonces
urpmi office
Aquí ¿algún usuario de mandrake podrá decirme lo que arroja exactamente el programa????
¡éste le propone los diversos nombres de paquetes que contienen office!
una vez hecha la selección (por ejemplo openoffice), lo indica!
urpmi openoffice.org
y ¿es el nombre correcto del paquete?
man urpmi
le dará las diferentes opciones disponibles con urpmi para un uso avanzado (por ejemplo especificar una fuente, ignorar las dependencias, etc etc)
es también posible buscar los paquetes con urpmf o urpmq (vea
man urpmf
y
man urpmq
)
en fin, se puede verificar la posibilidad de instalar un paquete con
urpmi --test paquete
Resumen
su
xxxxxx <-- contraseña root
urpmi paquete
Para una actualización de todos los paquetes ya instalados:
urpmi.update -a
urpmi --auto-select
para probar la posibilidad de instalación de "paquete"
urpmi --test paquete
_______________________________________________________________
I.3.4. Desinstalar un programa con urpme
¿El paquete que acaba de instalar no le gusta? O ¿no le ve finalmente la utilidad? ¡No hay nada más fácil que eliminarlo! Siempre como súper-usuario, le bastará con ingresar
urpme gedit
por ejemplo para eliminar gedit anteriormente instalado.
Resumen
su
xxxxxx <-- contraseña root
urpme paquete
______________________________________________________________
I.3.5. Gestión en modo gráfico
No conozco, pero se que existe , del tipo drakconf, instalar paquetes, etc.: ¿alguien que lo pueda detallar??
***********************************************************************
I.4. debian y apt-get
Aquí, "instale-me-eso:" se llama "apt-get".
Las diferentes opciones de apt-get están descritas en el manual:
man apt-get
_______________________________________________________________________
I.4.1. Definir las fuentes para apt-get
Ellas son definidas en al archivo /etc/apt/sources.list, y se presentan como una línea conteniendo:
type adresse version nom1 nom2 ...
tipo: puede ser "deb" para los paquetes o "deb-src" para las fuentes de programas
dirección: dirección de la carpeta de la distribución
versión: versión de la distribución : stable, testing o unstable
nombres: nombre de los sub directorios de dirección/dists/versión/
Ejemplo: si se posee la versión testing de Debian: una línea como esta:
deb ftp.fr.debian.org/debian testing main contrib non-free
en el /etc/apt/sources.list hará la tarea.
se puede añadir
deb ftp.fr.debian.org/debian-non-US testing main contrib non-free
para los paquetes etiquetados "non US", y :
deb-src ftp.fr.debian.org/debian/ testing main contrib non-free
para los paquete-fuente de programa.
el archivo /etc/apt/sources.list debe editarse "a mano" como súper-usuario
_______________________________________________________________________
I.4.2. Actualización de fuentes
La actualización de fuentes se hace gracias al comando:
apt-get update
_______________________________________________________________________
I.4.3. Instalar un programa
Se instala un paquete con el comando:
apt-get install paquete
Ejemplo: si desea instalar gedit:
apt-get install gedit
nos da:
Lectura de listas de paquetes... Hecho
Construcción del árbol de dependencias... Hecho
Los paquetes adicionales siguientes serán instalados :
docbook-xml gedit-common gnome-keyring libbonoboui2-0 libbonoboui2-common libeel2-2 libeel2-data
libgail-common libgail17 libgnome-keyring0 libgnomeui-0 libgnomeui-common libgtksourceview-common
libgtksourceview1.0-0 libscrollkeeper0 scrollkeeper
Paquetes sugeridos:
docbook docbook-doc docbook-dsssl docbook-xsl docbook-stylesheets docbook-xsl-stylesheets
gnome-icon-theme
Los siguientes NUEVOS paquetes serán instalados:
docbook-xml gedit gedit-common gnome-keyring libbonoboui2-0 libbonoboui2-common libeel2-2
libeel2-data libgail-common libgail17 libgnome-keyring0 libgnomeui-0 libgnomeui-common
libgtksourceview-common libgtksourceview1.0-0 libscrollkeeper0 scrollkeeper
0 actualizaciones, 17 recientemente instalados, 0 a retirar y 4 no actualizados.
Es necesario tomar 5584ko de los archivos.
Luego de desempaquetado, serán utilizados 24,7Mo de espacio de disco suplementario.
¿Desea continuar? [S/N]
Vemos que apt-get nos indica cuales son los paquetes que deben ser instalados para satisfacer las dependencias
También se puede hacer una actualización con:
apt-get dist-upgrade
que va a verificar todas las actualizaciones de los paquetes actualmente instalados y hacer una actualización si fuese necesario
Resumen
- instalación de \"paquete\" :
apt-get install paquete
- actualización del sistema:
apt-get dist-upgrade
- actualización del \"paquete\":
apt-get upgrade paquete
_______________________________________________________________________
I.4.4. Desinstalar un programa
La desinstalación del "paquete" se hace con:
apt-get remove paquete
apt-get descarga los paquetes .deb antes de instalarlos, se recomienda limpiar de tiempo en tiempo esta base de datos temporal:
apt-get clean
_______________________________________________________________________
I.4.5. Otras herramientas Debian
Existen otras herramientas Debian que permiten la gestión de paquetes. Podemos citar principalmente synaptic, dselect y aptitude
para instalarlos, ¡nada más simple ahora! :
apt-get install synaptic dselect aptitude
Los lanzamos con
aptitude
o
dselect
o incluso
synaptic
aptitude me parece el más completo, es "casi gráfico": funciona en un Terminal, pero los menús son accesibles con el ratón. Permite hacer búsquedas con parte del nombre del paquete, ver para cada paquete aquellos de los que depende, aquellos que dependen de él, los paquetes que son utilizados en asociación con él, etc. etc. Muy práctico, entonces hay que probarlo!
dselect posee un menú en modo texto, y puede ser desconcertante al inicio. Tiene la tendencia de dejar su lugar a aptitude.
no conozco synaptic sin embargo...alguien podrían decir algo?
***********************************************************************
I.5. Fedora y Yum
***********************************************************************
I.6. Slackware
Los paquetes de esta distribución son un conjunto de archivos reunidos en uno solo gracias al utilitario "tar" luego comprimidos en gzip.
Su extension es .tgz (una contracción de tar.gz). Esto puede prestarse a confusión: tenemos la habitud de asociar tar.gz a las fuentes archivadas de un software. Pero, este no es el caso: no son las fuentes más bien los archivos binarios que están contenidos en estos archivos. Al igual que los paquetes de otras distribuciones (excepto Gentoo y sus derivados).
En slackware, hay un gestor de paquetes entregado por defecto: pkgtools.
Lo podemos comparar a dpkg en debian: es el gestor de base para instalar, retirar, crear un paquete pero no irá a buscar las dependencias por usted. A pesar que este párrafo supuestamente sólo debe introducir los administradores de paquetes que administran automáticamente las dependencias (las otros son nombrados en la introducción). Sin embargo, hay que hablar de esto aquí ya que puede necesitarlo justamente para instalar un administrador de paquetes más avanzado)
Para instalar un paquete con pkgtools:
installpkg ruta_hacia_un_paquete.tgz
Para eliminarlo:
removepkg nom_paquete #Sin .tgz alfinal
Para actualizarlo:
upgradepkg nom_antiguo_paquete%ruta_hacia_nuevo_paquete.tgz
=> slackware.com/config/packages.php
Pero si no desea romperse la cabeza administrando las dependencias usted mismo (lo que es comprensible), puede utilizar un administrador de paquete más avanzado como slackpkg.
slackpkg.sourceforge.net/
Para instalarlo, siga escrupulosamente la parte "install" del enlace de más abajo. En resumen y para aclarar un poco el inglés:
- Descargue el paquete slackpkg (enlace dado en la acápite de install líneas arriba)
- Instalar este paquete con installpkg
- Editar el archivo de configuracion /etc/slackpkg/mirrors y retirar el comentario de una sola línea (éste será el enlace del mirror hacia el que slackpkg irá a buscar los paquetes).
- Lance el comando
slackpkg update
esto permitirá recuperar la lista de paquetes que contiene el servidor mirror.
Y ya esta, lance el comando anterior de vez en cuando para actualizar su lista de paquetes.
Para instalar un paquete:
slackpkg install nom_paquete
Oh maravilla puede incluso permitirse aproximaciones con el nombre del paquete, slackpkg le ofrecerá una lista con los nombres de los paquetes que se aproximan a aquellos que solicitó.
Actualice sus paquetes (automáticamente todos aquellos para los que hay una actualización):
slackpkg upgrade
buscar el nombre de un paquete:
slackpkg search nom_archivo
donde nom_archivo es le nombre de un archivo que se encuentra en el paquete que busca (súper práctico).
Slackpkg no es el único administrador de paquetes avanzado de Slackware, no dude en revisar swaret y slapt-get:
http://swaret.sourceforge.net/index.php
http://freshmeat.net/projects/slaptget/
***********************************************************************
II. Alien : Otras soluciones ...
Desea instalar la última versión de su programa preferido, y todos los paquetes son disponibles!! En fin, casi todos... todos excepto el de su distribución.... Le hará falta compilar las fuentes, y la última vez que experimentó, fue una catástrofe total.... le queda talvez una última esperanza: se llama alien, se usa para "transformar" un paquete .rpm en .deb, o en viceversa... éste puede gestionar los paquetes rpm, deb, slp, tgz y pkg (para Solaris). Sin embargo es y será sin duda por siempre un programa "de test" que no será jamás eficaz al 100%
A pesar de esto, sigue siendo una solución interesante antes de compilar las fuentes. Para instalarla, apt-get o urpmi debería ser suficiente
en seguida
alien --to-deb paquete.rpm
creará el archivo paquete.deb que podrá instalarlo con
dpkg -i paquete.deb
una lectura atenta de
man alien
le permitirá encontrar las opciones adecuadas a su distribución.
***********************************************************************
III. Un ejemplo de compilacion de fuentes
III.1. Recordatorio
Nada que hacer, no llega a encontrar un solo paquete o incluso alien no le sirva para instalar su programa... hará falta recurrir a la instalación del programa a partir del código fuente...
éste se presenta generalmente bajo la forma de un archivo comprimido (.tar.gz o .tar.bz2).
El procedimiento se resume a lo siguiente:
- extracción del código fuente en la carpeta \"programa\"
- cd hacia la carpeta \"programa\"
- ./configure
- make
- pasar a súper-usuario
- make install
Sin embargo, la mayoría de principiantes en linux se precipitan hacia programas muy complicados de instalar que suponen la instalación previa de un gran número de paquetes llamados "de desarrollo" del tipo toto-dev, toto-devel, o libtoto, sin contar con todas las dependencias intrincadas que posiblemente son necesarias
Aquí haremos una instalación simple de un programa que sólo depende de un número reducido de cosas para realizar la instalación.
_______________________________________________________________________
III.2. Programas necesarios para la compilación
Para este ejemplo, y para ver si hemos comprendido bien el procedimiento, vamos a instalar lynx que es un navegador Internet en modo consola. Como se trata de un programa relativamente simple (modo consola), éste depende de muy pocas cosas. Pero ya que se trata del código fuente del programa, nos hará falta al menos un compilador! (que va a "traducir" las líneas de código hacia un ejecutable).
Para lynx, se trata de gcc
Para verificar que lo tiene, ingrese
which gcc
Si obtiene algo como
/usr/bin/gcc
, tiene bien el gcc
Si no, si siguió lo que se hizo líneas arriba, y de acuerdo a su distribución, puede utilizar
urpmi gcc
o
apt-get install gcc
o incluso
yum gcc
deberían ser suficientes
_______________________________________________________________________
III.3. La compilación
El objetivo aquí es proporcionarle (con las explicaciones del caso) todas las etapas necesarias a la compilación del programa, partiendo de la hipótesis de que posee todos los programas, compiladores y otros.
Comencemos por obtener el código fuente del programa que nos interesa.
lynx.isc.org/release/lynx2.8.5.tar.bz2 para el archivo en formato .tar.bz2
y la descargamos en /home/toto/ (si el usuario se llama toto => a reemplazar por su nombre de usuario si no lo conoce, obténgalo con:
ls -l /home
le dará una lista de usuarios: para ¡reemplazar "toto" por el correcto!)
Enseguida, abriremos una ventana de Terminal, y nos desplazamos hacia /home/toto, ¡como usuario normal! (toto, y no el súper usuario root)
cd /home/toto
ls -rtl
: verá aparecer en la liste (sin lugar a dudas entre las últimas posiciones, el archivo "lynx2.8.5.tar.bz2". como ya se dijo, se trata de un archivo, como un .zip o un .rar: hará falta entonces extraer el contenido. Para ello, utilizamos el comando tar
tar xvfj lynx2.8.5.tar.bz2
debería ver desfilar las líneas, que corresponden a los ficheros que son extraídos del archivo
.
.
.
lynx2-8-5/test/
lynx2-8-5/test/tabtest.html
lynx2-8-5/test/iso8859-1.html
lynx2-8-5/test/TestComment.html
lynx2-8-5/test/ISO_LATIN1_test.html
lynx2-8-5/test/README.txt
.
.
.
aquí, verá que todos estos archivos tienen por nombre uno que comienza por lynx2-8-5/: se trata de la carpeta en la que efectivamente serán extraídas las fuentes.
desplacémonos hacia esa carpeta:
cd lynx2-8-5/
y veamos lo que contiene:
ls
Vemos una cantidad de archivos, donde los más importantes son: configure?? Makefile?? NO!! README e INSTALLATION por supuesto!!
Les ahorraré la lectura aquí, pero para compilar un programa más complejo, esto puede ser ¡útil y necesario!
Normalmente, la primera etapa de la compilación corresponde a la configuración con ./configure: aquí, para evitar de reinstalar lynx que talvez ya está instalado, y para verificar que lo que uno va a hacer funcione correctamente, crearemos una carpeta "Install_test" en la que instalaremos la versión compilada.
mkdir Install_test
y vamos a configurar precisando que esta carpeta será la carpeta donde instalaremos nuestro nuevo programa gracias a la opción --prefix= en ./configure :
./configure --prefix=/home/toto/lynx2-8-5/Install_test
(teniendo cuidado de reemplazar "toto" por el usuario correcto)
el sistema verifica entonces que el compilador esté presente, otras opciones, o formas de compilar/instalar el programa, pero ¡le dice todo! (lo que es de gran utilidad cuando se planta el sistema: podemos entonces saber lo que falta en la configuración)
Una vez configurado, hace falta compilar el programa con make
make
desfilan una gran cantidad de líneas de código correspondientes a los archivos compilados, a las opciones de compilación utilizadas, etc. etc.
solo resta instalar el programa: para ello, se requieren los privilegios de súper usuario
su
xxxxxx <-- su contraseña "root"
y en fin:
make install
En esta etapa, si todo pasó bien, su programa está instalado en /home/toto/lynx2-5-8/Install_test/bin y puede lanzarlo con:
/home/toto/lynx2-8-5/Install_test/bin/lynx
su pantalla se colorea, y llega a un menú un poco extraño "Lynx source distribution and potpourri". Presione "q" para salir: Bingo!!! Ha compilado e instalado su programa! No aprenderemos a utilizarlo aquí...
si desea que esté instalado en el sistema y que pueda lanzarlo ingresando solamente "lynx", hará falta empezar de nuevo sin usar la opción --prefix=
Para borrar el programa:
cd /home/toto/lynx2-8-5/
make uninstall
make clean
_______________________________________________________________________
III.4. Desinstalación
Para la instalación por compilación, se presenta el problema de la desinstalación y el de la actualización del software.
- En efecto, dos métodos son posibles:
- el comando "make uninstall": sólo es posible si por una parte, se ha conservado el directorio que sirvió para la compilación (para retomar el ejemplo anterior, se trata del directorio /home/toto/lynx2-8-5/ ) y por otra la desinstalación haya sido prevista, es decir que existan las reglas para crear el objetivo "uninstall" (make uninstall").
- eliminar los archivos generados por la instalación a través de "make install": esto significa complicar la tarea ya que habrá que reparar la ubicación de los archivos generados. Será la única solución si ninguna regla para el "uninstall" ha sido prevista.
- Para paliar esta dificultad, existe el comando \"checkinstall\".
Su ventaja es la de permitir la instalación de un software compilado como el de una instalación por paquete: el software compilado se encuentra entonces en la lista de los software en su administrador de paquetes. Por cierto, un paquete correspondiente a nuestro software compilado, en el mismo formato que el de la distribución (*.deb para los Debian-like o *.rpm para las distribuciones a base de rpm) es generado en el directorio de compilación.
- Pasos a seguir: bastará con optar por el comando \"checkinstall\" en lugar del comando \"make install\".
seguimos entonces la secuencia:
./configure -> make ->
checkinstall
en lugar de la clásica:
./configure -> make ->
make install
Se le solicitará diversas informaciones (creación o no de la doc correspondiente, comentarios) a fin de finalizar la creación del paquete correspondiente.
observe que checkinstall reconoce el formato del paquete a generar en el caso de Ubuntu. En regla general, para Fedora por ejemplo, se le solicita indicar el formato del paquete que va a ser creado.
- Se hace entonces simple de eliminar un software compilado:
dpkg -r paquete_de_mi-software_compilado
- para las distrib a base de rpm:
rpm -e paquete_de_mi-software_compilado
Para más información vea:
_______________________________________________________________________
III.5. Trucos - consejos
- Desde un punto de vista más personal, le aconsejaría de descargar y descomprimir sus diferentes fuentes de programas en un directorio que haya creado, por Ejemplo en /usr/src/progperso
mkdir /usr/src/progperso
- Para los programas que solo desea \"probar\" y desinstalar de inmediato, la idea de --prefijo es interesante, pero en general, hay que evitarla excepto en caso de fuerza mayor (a veces es necesario adicionar --prefix=/usr)
- Puede intentar la instalación de bc, una calculadora en modo consola (incluso más simple de instalar que lynx)
- descargar www.fr.linuxfromscratch.org/view/blfs-5.0-fr/general/bc.html: es un tar.gz : guardarla en su carpeta /usr/src/progperso por ejemplo
cd /usr/src/progperso
tar xvzf bc-1.06.tar.gz
cd bc-1.06
mkdir install_perso
./configure --prefix=/usr/src/progperso/install_perso
make
su
xxxxxx
make install
Luego
exit
/usr/src/progperso/install_perso/bin/bc
exit para salir del modo root, la línea siguiente para lanzar el programa bc
- con checkinstall:
si sustituimos el comando "make install" por "checkinstall", entonces nos preguntará si hay que generar la doc correspondiente a nuestro software:
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: n
Personalmente, yo respondo no, pero eso no tiene realmente importancia en el funcionamiento de nuestro software.
luego solicita información para este software:
Installing with "make install"...
========================= Installation results ===========================
[...]
======================== Installation succesful ==========================
Copying files to the temporary directory...OK
Striping ELF binaries and libraries...OK
Compressing man pages...OK
Building file list...OK
Please write a description for the package.
End your description with an empty line or EOF.
>>une calculatrice en mode console
>>
Esta descripción concierne a la información mostrada por el administrador de paquetes sobre el paquete. Aquí podemos indicar por ejemplo que si se trata de una calculadora en modo consola.
Podemos notar que "checkinstall" utiliza "make install" para generar nuestro futuro paquete.
This package will be built according to these values:
0 - Maintainer: [ root@localhost.localdomain ]
1 - Summary: [ une calculatrice ]
2 - Name: [ bc-1.06 ]
3 - Version: [ 1.06 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ bc-1.06 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:
Podemos en seguida modificar el encabezado del futuro paquete verificando que la información sea exacta.
*****************************************
* Debian package creation selected ***
***********************************
Building Debian package...OK
Installing Debian package...OK
Erasing temporary files...OK
Deleting temp dir...OK
**********************************************************************
Done. The new package has been installed and saved to
/usr/src/progperso/bcbc-1.06/bc-1.06_1.06-1_i386.deb
You can remove it from your system anytime using:
dpkg -r bc-1.06
**********************************************************************
En el caso de un Debian-like (aqui Ubuntu 5.10), obtenemos entonces el paquete bc-1.06_1.06-1_i386.deb que es creado en el directorio de compilación.
Y como se indicó, basta con un "dpkg -r bc-1.06" para desinstalar fácilmente nuestra calculadora.
observe que en este caso, por ejemplo, de Fedora, el paquete no es automáticamente instalado. Además; este se encuentra al momento de su creación en el directorio
/usr/src/redhat/RPMS/architecture/.
PD: El
artículo original fue escrito por Phiphi57 contribuidor de
CommentCaMarche