Como y qué instalar en su nuevo sistema Linux Mandrake
Básicamente, en linux hay dos maneras de instalar un programa.
Una manera es bajar de internet el código fuente del programa y compilarlo, es decir, transformar el código fuente, legible por un humano; a código binario, que no lo es. Esta manera funciona en cualquier sistema Linux e incluso, a veces, en otros sistemas como los BSDs , Unixes o incluso en Mac Os X y Windows (con bastante trabajo, pero funcionan).
La otra manera es a través de archivos ya compilados. En esta categoría entran los debs (paquetes para Debian GNU/Linux y derivados, como Lindows, Libranet, etc.), los rpms (paquetes para distribuciones como Red Hat, SuSE, Mandrake Linux, etc.). Voy a dedicarme a los rpms, que conozco, y en todo caso, si me ayudan, incluiré algo sobre los debs.
El infierno de las dependencias
En todos los casos, algunos más, otros menos, podemos tener el siguiente problema: nos bajamos el programa X. Vamos a instalarlo con los procedimientos que explico abajo, pero nos hace saber de maneras más o menos ruidosas "Falta el archivo Y para funcionar". Eso hace que tengamos que buscar Y por la red, tratar de instalarlo, etc. En algunos casos desesperantes, podemos llegar a que los paquetes tienen dependencias recursivamente enlazadas, es decir que, por ejemplo, el paquete Z, del que depende Y, depende a su vez de que exista el paquete X… ¡Pero X necesita Y!
¿Qué hacer? Lo veremos abajo. ¿Por qué pasa esto? Porque, a diferencia de Windows, donde cada aplicación escribe el registro de windows como quiere y sobreescribe archivos de sistema como se le canta, por si acaso no estaban instaladas, o eran versiones más viejas, creando problemas de inestabilidad, cuelgues, etc. (ustedes recordarán, creo); en Linux esto no es posible por la estructura de seguridad del sistema.
Por eso, tenemos dos opciones: instalar los paquetes con dependencias enlazadas estáticamente o dinámicamente. Estáticamente quiere decir que el paquete "programa-X.rpm" tiene todas las librerías y archivos necesarios para funcionar como binarios, se instala en un directorio aparte y listo. Dinámicamente quiere decir que el programa confía en que nuestro sistema tendrá instalado un cierto número de archivos.
Esto es lo que lleva al problema que menciono arriba. Dirán entonces "¿Por qué no usar directamente paquetes estáticos?" La respuesta es que, por ahora, es un gasto de ancho de banda considerable (los paquetes enlazados estáticamente son mucho más voluminosos que los dinámicos) y de performance: ocupan más espacio en memoria.
Si eso no es problema para ustedes, adelante. Otro problema que pueden tener es que un paquete "dinámico" que quieren instalar esté compilado con una versión del compilador distinta a la que se usó para construir su sistema. Eso hace que los dos sean incompatibles si el programa tiene que usar librerías compartidas…
Archivos Fuente
Para las instalaciones, lo normal es la secuencia siguiente:
- descargar el programa a un directorio adecuado (recomiendo crearse uno tipo /home[usuario]/fuentes/
- Descomprimir usando tar -zxvf archivo.tgz , o
- tar -zxvf archivo.tar.gz , o
- tar -jxvf archivo.tar.bz2 dependiendo de lo que hayan bajado
- cd /programa descomprimido
Recuerden leer lo que dicen los archivos README e INSTALL, si existen, en este directorio.
Llevan la información concreta sobre este procedimiento, las dependencias, etc.
El procedimiento común es el que muestro, pero puede variar. - ./configure
- make
- su -c make install (escriban el password de root)
Ya deberían poder usar su programa desde la terminal. RPMs
El sistema de instalación RPM se pensó como una manera de facilitar las cosas al usuario. Actualmente se usa en muchas distribuciones, y tiene "metaherramientas" como urpmi que lo usan para hacer las cosas todavía más simples. Sólo deberían usar el comando rpm como último recurso.
Empecemos por lo sencillo: Queremos instalar el nuevo programa, Paquete-X.
El primer paso es usar el instalador gráfico de nuestra distribución (el Centro de Control de Mandrake, por ejemplo) para ver si no está en nuestros CDs. Supongo que pueden buscar el instalador en sus menúes, ¿no? Podríamos también configurar ese instalador para que pueda bajar actualizaciones de internet automáticamente. Lo haremos abajo.
La manera de hacer esto desde consola (como usuario root) es usar urpmi paquete-x . Si el paquete existe en su base de datos, les pedirá los discos (o querrá que se conecten, ver abajo) e instalará lo necesario.
Paso dos: no está en los discos. Los sitios más populares de búsqueda de soft para Linux son Sourceforge [sourceforge.net], Freshmeat [freshmeat.net] y Rpmfind [rpmfind.net].
Lo encontramos en Internet, como paquete-x.1.rpm(Traten de no bajar paquetes .src.rpm, salvo que sea lo único que encuentran, y quieren tener su sistema más limpio que con un .tgz): son rpms de archivos fuente.
Lo bajamos a un directorio, y abrimos una terminal con el usuario root (a menos que hayan tocado algo, el sistema sólo permite instalar programas con rpm al administrador del sistema, e'cir, el usuario root). Desde esa terminal, vayan a ese directorio y usen el comando urpmi: urpmi ./paquete-x.1.rpm . Eso debería instalarlo correctamente, resolviendo (en la medida de lo posible, es decir, de lo que esté en la base de datos de su sistema), las dependencias.
Urpmi puede usar tanto CDs como un directorio de su sistema, un directorio ftp de web, un directorio de red, un sitio http… La configuración se hace bastante fácilmente con el modo gráfico. Basta marcar qué es lo que vamos a agregar, la dirección, y la dirección relativa de ubicación de un archivo con extensión .cz. Relativa quiere decir que si ese archivo (que contiene una lista de paquetes, y qué es cada uno) está en ese directorio, basta poner el nombre del archivo (ej, synthesis.hdlist.cz) o en todo caso poner ./ antes del nombre. Si está un directorio antes, sería ../synthesis.hdlist.cz , y así.
Para eliminar archivos, usen urpme paquete-x (sin .rpm al final).
Para ver si un determinado archivo está instalado, usen urpmf archivo .
Las diversas opciones de urpmi y compañía las obtendrán con man urpmi. Se pueden hacer cosas muy interesantes.
Si quieren más dificultad, usen el comando rpm -ivh archivo.rpm (si es un archivo .src.rpm tiene los fuentes dentro, y hay que compilarlo, usando una opción particular de rpm que veremos más abajo).
Si ese comando devuelve errores de tipo "ese paquete ya existe" prueben usando rpm -Uvh archivo.rpm .
Qué instalar
Bueno, no porque seamos los maestros agregando fuentes y tengamos una conexión UltraDSL, tenemos que instalar absolutamente todo lo que se nos cruce. Esencialmente, en Mandrake los repositorios tienen un directorio "Cooker" que es el equivalente de "Debian-Unstable". Son paquetes no testeados totalmente, que pueden por eso tener sus problemas. Si quieren o necesitan un sistema estable, traten de no instalar de estos directorios. Si su chiche está ahí, bueno, prueben.
Los principales directorios de rpms para Mandrake son Texstar [ibiblio.org], PLF [plf.time4t.net], y los directorios ftp de los mirrors de Mandrake (Contribs [mandrake.redbox.cz]), además de Cooker [mandrake.redbox.cz].Basta buscar en esos directorios hasta encontrar los rpms de su distro y las hdlists (usen i586 para Mandrake 9.0 o 9.1, y cuidado porque las aplicaciones vienen compiladas con una nueva versión de gcc que las hace más rápidas y compactas, pero que crea problemas en sistemas con Mandrake 8.2 o anteriores (en realidad, no andan). En general, paquetes que no sean oficiales (en este caso, el ejemplo serían los rpms de TexStar vs los de Mandrake) pueden ser más problemáticos, plantear problemas. En realidad, TexStar en particular es muy confiable, pero…
Instalando rpms de fuentes (archivos .src.rpm)
Gracias a la ayuda de los artículos de la documentación de Mandrake, y a un par de usuarios del foro MandrakeUsers [mandrakeusers.org], logré entender este tema. Espero que lo haya entendido tan bien como para que ustedes también lo hagan.
En resumen, el proceso es el siguiente:
- Bajar el paquete fuente: paquete-x.src.rpm
- hacer que rpmbuild compile el paquete
- instalarlo con urpmi
- disfrutar el programa compilado especialmente para nuestra PCrda.
Como root, desde una consola o terminal, usamos el comando siguiente:
rpmbuild –rebuild –target=$HOSTTYPE ruta al paquete/paquete-x.src.rpm
eso graba el rpm terminado en /usr/src/RPMS/i586/paquete-xalgo.rpm . El "algo" son las tres primeras letras de su nombre de usuario (si compilan como usuario y no como root), o lo que decida el sistema en el otro caso.
Una vez lista la compilación, vamos a /usr/src/RPMS/i586 o la dirección que corresponda a su arquitectura de PC (una mandrake 8.2 supongo que irá a i386, por ejemplo). Allí, instalamos con
urpmi paquete-xalgo.rpm
y listo! ¿No era tan difícil, no?
Instalar srpms (source rpms) como usuario común y no como root es más seguro. Para poder hacerlo, tendremos que hacer lo siguiente.
- Crear un "árbol RPM" similar al que se encuentra en /usr/src/RPM :
cd ~
find /usr/src/RPM -type d -exec sh -c 'mkdir -p ${0##*/src/}' '{}' ; - crear un directorio tmp para las compilaciones:
mkdir -p RPM/tmp - Hay que decirle al sistema que en lugar de usar la configuración normal de rpmbuild vamos a usar una propia. Bajen este archivo, y guárdenlo en su directorio personal (en mi caso, /home/adriano) y editen los campos de la derecha que no estén comentados. Por ejemplo:
# Deberías configurar estos vos mismo. Los defaults muestran mi sistema. %_my_homedir /home/adriano # Directorio de binarios del usuario # %_my_rpmdir %{_my_homedir}/rpm %_my_rpmdir /home/adriano/RPM # Nombre del usuario %_my_name Adriano Varoli Piazza Acá pueden ver mis seteos. Las líneas que empiezan con # son comentarios, no hace falta modificarlas. - ¡Listo! Ya pueden compilar sus rpms en su propio directorio, con
rpmbuild –rebuild –target $HOSTTYPE ~/tmp/paquete-x-version.src.rpm - Eso deja, luego de la compilación, y si tenían las dependencias necesarias (Controlen antes, claro) el paquete-x-version.rpm en el directorio ~/RPM/RPMS/i586/ (para máquinas pentium, claro).
- Ahora podemos (como root, claro) instalar el paquete usando urpmi.
Debs
Esta sección depende de la generosidad del público usuario de Debian. Espero sus colaboraciones.