Bien, esto está orientado más que nada a la gente que es nueva en el mundo linux y solo conoce windows y se trata de una breve descripción de los métodos de instalar programas en linux.
Para quienes conocemos de que va el tema sabemos que es una chorrada, pero para quien nunca lo ha tratado puede ser algo confuso al principio tal y como he comprobado empíricamente con casos concretos.
Sistema de paquetes
Un paquete es un.. paquete. :-), puede ser un programa, una aplicación, una librería, un conjunto de fondos de escritorio o temas del xmms, o incluso pueden ser el código fuente.
En definitiva se trata de un “contenedor” de archivos que que viene en un solo paquete. Al instalarlo cada archivo que contiene es colocado en sus directorios correspondiente. Y al desinstalar el paquete todos los archivos que contenía son borrados del árbol de directorio y se vuelve a poner la configuración como estaba previamente sin el paquete.
Cualquiera de vosotros puede crear un paquete. Supongamos que teneis vuestra práctica de iso de los barquitos o de los chinos con vuestro ejecutable y documentación.
Podeis crear un paquete llamado barquitos.deb por ejemplo que al instalarlo situe los ejecutables en /usr/local/bin por ejemplo, la documentación en /usr/local/doc, y además añada al PATH (sinó lo estaba ya) la ruta /usr/local/bin para poder ejecutarlo desde cualquier sitio.
Así cuando desinstaleis barquitos.deb, todo eso será borrado y el PATH quedará como antes. Y aquí no ha pasado nada.
tenemos 3 formatos de paquetes, rpm, deb y tgz
RPM: lo usan distribuciones como Red-Hat, Mandrake, Suse etc…, sin embargo hay algunos conversores como uno llamado alien que convierte un paquete rpm en uno deb.
DEB: Es el usado por debian y derivados de debian. Knoppix, linex…
tgz: Esto no es mas que un empaquetado con tar y comprimido con gzip. Pero es el formato que se usa en slackware y por lo que he oido tiene herramientas para manejar sus tgz como si fueran rpms o deb, instalar, desinstalar, todas esas cosas.
¿Cual es el mejor?, pues mira no lo se, desconozco las características internas de cada sistema de paquetes. Supongo que a la hora de crearlos habrán diferencias, pero lo desconozco. De hecho todos los paquetes podrían ser compatibles entre si y un usuario podría instalar cualquiera de ellos sinó fuera por un motivo… la diferencia entre distribuciones.
Si pensais un momento en la explicación de paquetes que os he dado vereis que se plantea un problema, y no es por las diferencias entre paquetes, sinó por la diferencia entre distribuciones.
Supongamos que convertirmos un rpm de mandrake a deb y lo queremos instalar en debian. ¿Que puede pasar?
Puede ocurrir que mandrake distribuya sus programas en directorios diferentes que debian por ejemplo, pero lo más importante es que el paquete para mandrake a lo mejor toca unos ficheros de configuración para instalar ese programa que en debian se haga en OTROS ficheros de configuración, con lo cual no estaría bien instalado y daría problemas . EL programa alien intenta arreglar estas diferencias como puede, pero nada automático es perfecto
Incluso en debian podría hacer un rpm -i barquitos.rpm y nada de conversiones, sinó instalar a saco, pero tendriamos los problemas ya comentados.
Es por eso por lo que siempre os debeis de bajar los paquetes para vuestra distribucion.
Por supuesto esto es una regla flexible, Mandrake en sus inicios fue una RedHat modificada, o sea que deriva de RedHat aunque actualmente ya siguen caminos independientes. Eso significa que es más probable que funcione un paquete de redhat en mandrake que en debian. Porque Mandrake y Red Hat son más parecidas en cuanto a organización de directorios y ficheros de configuración que RedHat y debian. De hecho yo he instalado paquetes de redhat en mandrake sin ningún problema.
Pero como digo, si os vais a http://rpmfind.net buscar el paquete para vuestra distribución o sinó lo hay, la distribución más cercana a la vuestra.
Ahora voy a explicar las dos formas que hay de instalar los paquetes:
1. Supongamos que quereis instalar el programa audacity. Os vais a su web o lo buscais por internet y os bajais el paquete audacity-0.98-3.rpm, lo instalais y PIIII!!!! error, os dice que falta el paquete libid3-3.7-13.rpm y el paquete libmad0.rpm
Vais de nuevo a internet y os bajais los dos paquetes que os faltan, intentais instalarlo antes y resulta que el libmad0.rpm necesita el libwxgtk2.2.rpm !!!!! (me lo estoy inventando)
Otra vez a internet a buscar. ¿Veis el coñazo que esto supone?
Lo que quereis instalar puede que necesite instalar 3 paquetes más, pero a lo mejor de esos 3 , 1 necesita 1 paquete más, el segundo necesita 3 paquetes mas ( y estos otros mas) y el tercero ninguno.
Si hay muchos paquetes involucrados podeis comenzar a blasfemar en arameo. 🙂
A esto se les llama dependencias y es un verdadero coñazo.
Su homonimo en windows vendría a ser cuando instalais un juego y os pide el directx 9.0, teneis que instalar el directx 9.0 antes que el juego. El juego “depende” del “paquete” directx 9.0
Estareis pensando, pues que mierda el linux ese.
Tranquilos, muchos recien llegados lo desconocen, pero hay herramientas que son de uso habitual y por defecto en las distribuciones desde hace siglos que resuelven estas cosas.
Y pasamos al punto 2, que es instalar un paquete y que algo te resuelva las dependencias automaticamente.
2. Con ejemplos lo vereis mucho mejor.
Debian:
yo tecleo, apt-get install audacity.deb, y me instalará audacity.deb, y todos los paquetes necesarios automáticamente.
Mandrake:
urpmi audacity.rpm
Son herramientas de consola, pero también tienen interficies gráficas, con menús y demás que muestras la descripción del paquete y toda una serie de información en ventanitas.
Para el apt-get teneis varios como el synaptic u otros, mandrake tiene el suyo propio llamado instalador de software, para los rpm en general está el gnomerpm… etc
Para debian, redhat y mandrake está el llamado red-carpet de la compañia ximian, cuyo dueño es o era el Icaza (el pez gordo de gnome) y que ahora ha sido comprada por Novell. Es totalmente gráfica y muy mona.
Bien ahora paso a explicar que son los repositorios. Estas herramientas permiten añadir “fuentes” desde internet.
Me explico, debian son 7 CDs llenos de programas. Pero yo puedo añadirle muy facilmente sitios de internet. Ejemplo, los updates y parches de seguridad de debian no se bajan a mano, se añade el repositorio oficial de debian (apt-setup) de uno de los muchos servidores que hay sueltos por el mundo, y a partir de entonces cuando yo quiera actualizar algo con un simple apt-get update (para actualizar la base de datos y mirar si hay algo nuevo) y un apt-get upgrade ya tengo actualizado el sistema automáticamente y de manera trasparente.
Tambien puedo añadir otros repositorios. Por ejemplo, si añado el repositorio de KDE (kde.org), yo puedo instalar la ultima versión de kde y ir actualizandola automaticamente. Se bajará todos los paquetes y los instalará el solo resolviendo las dependencias. Si algún paquet necesario esté en los CDs, estupendo, los cogerá del CD, y sinó, de lo descargará de internet el solo y lo instalará sin preocuparos de nada.
Tambien puedo añadir repositorios de desconocidos :-), hay mucha gente que se dedica a bajar el código fuente, compilarlo, meterlo en un paquete y ponerlo en un servidor. Así que por ejemplo podeis instalar mldonkey automáticamente desde un repositorio no oficial que haya puesto algún individuo. Por supuesto no es muy “fiable” ya que ¿quien te dice que ese individuo no le ha metido algo malo?, por supuesto no suele ocurrir porque siempre hay algún desconfiado que se dedica a comprovar si el paquete de ese desconocido lleva algo raro o no.
Pero desde luego si quereis seguridad, bajar solo los oficiales para vuestra distribución, kde de kde.org no es oficial, pero puedes confiar que los desarrolladores de KDE no te van a poner nada malo en la página oficial de kde.
De hecho hay métodos para comprobar con firma digital si ese paquete es realmente el verdaderode kde o de debian o incluso del individuo desconocido que te lo ofrece, así evitas el problema de que alguien ponga un paquete infiltrado haciendolo pasar por el verdadero.
Ahora, para un ordenador casero no solemos hacer esas cosas 🙂
Ejemplos prácticos.
Debian:
Quiero instalar xmule (un clon de lmule) que está bajo licencia libre y no viene en los CDs oficiales de debian ni en los repositorios oficiales de debian.
Me voy a la web www.apt-get.org, pongo a buscar xmule, y me saldrán todos los repositorios que me ofrecen el programa xmule, encontrareis para stable, testing y unstable.
Añado el repositorio , y solo tengo que hacer:
apt-get install xmule
Y ya está instalado y puesto en el menu, y sin reiniciar!!!
Imaginar que quiero otro programa, por ejemplo el mldonkey. Pues a lo mejor ya está en el repositorio del xmule. Lo pongo a buscar y si sale es que ya lo tenemos. apt-cache search mldonkey
No hace falta un repositorio para cada programa. Hay repositorios que tienen el xmule, el mdonkey y 2000 programas mas, así que con solo añadir ese ya nos vale.
Mandrake:
En mandrake funciona exactamente igual. Pero de paquetes no oficiales solo hay 3 o 4, generalmente con los llamados plf, contrib y texstar añadidos teneis acceso a algo asi como 8 GB de programas 🙂
Una vez añadidos (incluso se pueden añadir con un asistente gráfico), abris vuestro instalador de programa, poneis a buscar xmule, os saldrá una descripción y tamaño marcais la casilla, le dais a aceptar…
Y ya lo teneis descargado instalado y puesto en el menu Y SIN REINICIAR!!!
o incluso en la consola con un simple urpmi xmule
Red Carpet: Esta utilidad está sinó recuerdo mal para debian, mandrake, redhat y otras.
Una vez instalada (es un paquete sin dependencias 🙂 ) ejecutais el programa, y el solo eligirá los repositorios y os recomendará actualizaciones y demás cosas. Por supuesto los repositorios los elige el y son solo o eran solo los oficiales.
Pero si os gustan las cosas gráficas y asquerosamente sencillas probarlo, también resuelve las dependencias y tiene un aspecto gráfico mu pofesional y mono. Por supuesto es sofware libre.
El sistema de paquetes es el estandar para instalar cosas en linux
En comodidad respecto a la instalación de cosas y actualización yo recomendaría una debian o derivada de debian, o una mandrake.
Pero lo bueno del software libre es que en realidad lo mismo da. Porque existe el apt-get para paquetes rpm, porque redhat incluye un programa de actualizaciones automáticas, porque red-carpet está para todos.
Pero no solo eso, resulta que los FreeBSD y demás que desconozco tienen sus propias herramientas que nos solucionan las dependencias de manera igual de fácil.
Así que como siempre, la variedad es lo que da el poder. Y lo que marea a los nuevos. 🙂
Lo complicado es explicaros la variedad, no instalar cosas en si.
No teneis que memorizar las diversas maneras de hacerlo, teneis que comprender como va una forma y entendereis el resto porque la idea es la misma. Lo cual elimina el problema de tener tantas distribuciones de linux. Al fin y al cabo, en realidad, todo es lo mismo en el fondo.
Manera windows
Bien, pues resulta que también existe la manera clásica de pinchar encima del setup.
Ejemplos de ello son el openoffice, el quake3, el simcity 3000, los sims y un largo etc.
Esos programas tienen un “ejecutable” llamado setup o install, el cual lo ejecutas y se instala de igual forma que en windows. Una vez instalado, en el mismo directorio donde lo habeis instalado pordeis encontraros con el típico uninstall.
El openoffice por ejemplo como root descomprimis en un directorio temporal, ejecutais install, y luego cada usuario ejecuta setup y ya está.
Quake3 solo teneis que teclear, sh setup.sh y os aparecerá el instalador gráfico. O si teneis en el administrador de archivos asociado los *sh a sh, con pinchar encima ya está.
Normalmente este método lo usan los juegos principalmente.
El equivalente al zip que en windows descomprimes en un directorio y ejecutas el programa.
Este método no sabía como llamarlo 🙂
Es el ejemplo de AMSN, el clon del msn messenger. Viene comprimido en un tgz.
Descomprimir, desempaquetais… a ver, para los de windows, con el kde abris el administrador de archivos, botón derecho encima del tgz y elegis “extraer aquí”, ¿no os resulta familiar este método? 🙂
Se descomprimirá en un directorio, vamos como vuestro conocido winzip. Pues ya teneis el programa, ahora os meteis dentro y con un simple ./amsn ya lo teneis. Os lo poneis en vuestro escritorio con un icono y ya ta.
Al igual que en windows este sistema de instalación no te deja ninguna entrada en los menues.
Bajarse las fuentes y compilar un programa
En realidad aunque los usuarios normales no lo usan, en windows también se puede hacer, os podeis bajar las fuentes del mozilla y con visual C (comercial, de pago… ) compilarlo para windows. Desconozco si un mozilla se puede compilar en windows con la versión gcc pero lo dudo mucho.
Bueno, supongo que todos conoceis lo que es el compilar. Se trata de coger el “texto”, la “receta” escrita en un ingles raro :-), el compilador lo leerá, y lo convertirá en un binario, o sease, una lista muuu larga de ceros y unos que es lo único que entienden los ordenadores, porque los ordenadores estan hechos de transistores, que solo tienen dos estados, con corriente (un 1) o sin corriente (un 0).
La metodología de compilación en linux es la siguiente.
Os bajais las fuentes de mplayer por ejemplo.
Descomprimis, y haceis ./configure
Esto os mostrará una larga lista de oks, yes y no.
./make
y compilará
./make install (como root) y lo instalará, normalmente en /usr/local/bin
bien, puede ser que make os de error y no compile, puede ser que compile y instale, pero al ejecutarlo descubrir que vuestro mplayer (para ver videos principalmente, aunque soporta audio también, sirve para ver la TV, pasar a divx, y traeros las zapatillas) le falta alguna caracteristica, como el entorno gráfico, o el soporte para ficheros OGM
¿Donde está el problema?
En los nos que mostraba el configure 🙂
./configure –help para ver las opciones que podeis pasarle.
Vereis que para instalar el entorno gráfico, necesitais un ./configure –enable-gui por ejemplo, también podeis decir que se instale en otro sitio diferente a /usr/local/bin con un ./configure –prefix=/opt/bin
Podeis incluir varias opciones, es válido por ejemplo un ./configure –enable-gui –prefix=/opt/bin –language=es
etc etc
Pero también puede ser que os falten cosas.
Por ejemplo para soporte OGM necesitais tener instalado el paquete vorbis-tools.
Pero también puede ser que os falte el código de otras cosas.
Mirar bien el configure, imaginar que sale un no en alguna libreria. Tendreis que instalar la librería-dev , volver a hacer el configure, y vereis que ahora ya no sale el NO.
Imaginar que os sale no seque divx… no, instalais xvid (libre) o el divx de divx.com (también hay versión linux) que son los codecs, ahora cuando hagais un ./configure vereis que poner divx…yes
¿Veis la metodología?
Se trata de mirar el configure y darle lo que pide o lo que necesiteis vosotros, si lo conseguis, el make no os dará ningún problema
¿Os parece complicado?, con práctica no lo es, pero es que compilar algo es así, no es un problema de linux, es que cuando compilas algo necesitas todas esas cosas.
Os voy a hablar de gentoo, que sinó alguien me saltará encima echando espuma por la boca 🙂
La distribución usa un sistema de instalación diferente y más parecido al de FreeBSD.
Imaginar un apt-get que funcionara igual que con los paquetes, pero que solo se bajara el código, y el automáticamente y sin intervenir se descargará todas las fuentes necesarias, lo COMPILARA y os lo dejara bien instalado.
Eso es gentoo
Asi que tu puedes hacer un emerge kde o algo por el estilo, y bajará las fuentes, las compilará, y al cabo de 7 dias y 7 noches estará compilado y listo. XDD
En debian existe un apt-build que hace lo mismo, pero dicen que ni punto de comparación y que da muchos problemas. Ni idea porque nunca lo he probado.
Pero no olvideis una cosa. Siempre podeis hacer un urpmi mplayer en mandrake y ya está (viene en los CDs), o añadir algún repositorio de mplayer en debian y hacer un apt-get install mplayer y ya está.
Espero que todo este rollo haya aclarado algunas ideas. También espero que esta web lo lea también gente no iniciada en este mundillo, porque a ellos va dirigido 🙂
Lo he escrito de un tirón, una vez escribí algo parecido para la lista de correo de mandrake, pero no lo guardé y me da pereza buscarlo en google.
Así que disculpar si está un poco desorganizada la exposición de ideas. Si teneis alguna duda sobre como hacer algo en concreto… bueno, para eso esta este grupo ¿no?, acosarnos a preguntas.
Nos entretendremos más respondiendos que viendo el gran hermano, OT y la madre que los parió a todos juntos. Yo al menos :-), sobre gustos no hay nada escrito.
Autor: davidcg