lunes, 12 de enero de 2009

Untitled






Uno de los principales problemas con GNU-Linux desde sus inicios
siempre fue la estandarización. Y es que GNU-linux siempre fue un
proyecto abierto a todo el mundo y en donde miles de manos han creado
un pequeño trozo de código. Pero, humanos al final de cuentas, no
siempre estaremos todos de acuerdo y al existir tantas manos metidas es
difícil tener un orden, siendo que cada persona puede tener un Linux
totalmente distinto del que tiene su vecino.

Entonces los
programadores de aplicaciones tienen un gran problema: Cuando ellos
crean su programa utilizan diferentes bibliotecas para ahorrarse
trabajo y comprueban que en su sistema funcione correctamente. Pero si
el programador quiere distribuirlo es muy posible que otras
computadoras no tengan las mismas bibliotecas que las que el utilizó o
simplemente que se encuentren en un directorio distinto del esperado,
lo cual hace que su programa sea incompatible con otros sistemas.

Esto
crea un gran problema que en un principio se intento solucionar por
medio de LSB (Linux Standard Base) que proponía un conjunto de
bibliotecas standard en las que los programadores podrían confiar con
encontrar siempre en cualquier sistema linux.

Sin embargo este
plan no progresó como se esperaba y LSB se convirtió en una solución no
muy bien aceptada, pues había serias discusiones sobre que biblioteca
era mejor que otra, un programa que causaba inestabilidad con otro o
que era demasiado inseguro, y culminó con el rompimiento de relaciones
con algunas compañías importantes.

Y hasta hace algunos años
instalar un programa en linux era una pesadilla, pues para tenerlo
debías de conseguir e instalar todos y cada uno de los programas que se
requerían para hacer funcionar ese programa.

Una primera
solución fueron los paquetes de instalación. Un usuario que quería
instalar un programa debía buscar el respectivo paquete de instalación
(.deb, .ebuild, .rpm, etc.) para su sistema y el sistema instalador
comprobaba las dependencias del programa, alertando si faltaba alguna y
sugiriendo a veces de donde descargar el programa que faltaba.

Posteriormente
algunos de estos sistemas de instalación podían descargar los paquetes
de instalación de los programas que faltaban (dependencias) para hacer
la vida del usuario mucho más fácil.

Todo esto ha ido evolucionando hasta llegar a los actuales sistemas de repositorios.

SISTEMAS DE REPOSITORIOS

Casi cualquier versión de GNU-Linux cuenta con un sistema de repositorios. Pero que demonios es eso?

Los
usuarios que migran de un sistema a otro se sorprenden de que ya no
tienen que pasar horas buscando un programa en internet para
instalarlo, sino que dentro de su sistema linux encuentran una lista de
programas para instalar.

Un repositorio es eso, una lista de
programas que es mantenida por la gran cantidad de usuarios y
desarrolladores de una distribución determinada. Cada vez que surge un
programa nuevo o una nueva versión de este, un grupo de entusiastas
revisa las dependencias de ese programa, lo instalan y revisan su
estabilidad, seguridad y diversos conflictos con otras aplicaciones.
Tras un periodo de prueba el programa es colocado en la lista de
"programas estables" en donde los usuarios comunes pueden hacer uso de
el con toda confianza.

por tanto un usuario que quiere instalar un programa solo tiene que hacer lo siguiente:

Reconoce
el sistema instalador que utiliza, para RedHat y Fedora se usa YUM,
para los venidos de Debian se usa APT, para gentoo está PORTAGE y
disculpen si por ignorancia omito alguno.

Entonces deben actualizar la lista de programas desde el sitio de la distribución corriendo un simple comando:
Código:
#apt-get update
#emerge --sync

Una vez hecho esto hacen una búsqueda para encontrar su programa.

Código:
$apt-cache search programa
$emerge -s programa
$yum search programa

Una vez que tienen el nombre exacto del programa simplemente ejecutan otro comando para instalarlo:
Código:
#apt-get install programa
#emerge programa
#yum install programa

Y listo, el sistema realizará las siguientes acciones:

  • buscar la última versión estable para el programa
  • calcular la cantidad de dependencias del programa
  • descargar todos los archivos necesarios para instalar el programa y sus dependencias
  • verificar que los archivos descargados no estén corruptos (ya sea por un error en la descarga o porque alguien muy malo
  • haya alterado el paquete)
  • descomprimir todos los archivos
  • instalar todos los programas
  • configurar todos los programas
  • mostrar opciones para cosas que requieran la atención del usuario (como aceptar contratos o dar datos específicos del equipo).

Y con eso su programa estará instalado...

Muy fácil no? no? porque no?

Si
lo suyo no son los comandos, casi todas las distribuciones cuentan ya
con una interfaz gráfica para su sistema instalador. que ejecula por
ustedes esos tres simples comandos de manera que ustedes solo tienen
que: buscar el programa, seleccionar el que quieren instalar y dar
click en "instalar"...

Les gusta el peligro?

Todo
sistema de repositorios siempre está establecido por defecto en las
versiones estables del sistema, pero si ustedes son lo bastante
audaces, siempre pueden configurarlo en repositorios inestables para
obtener siempre los últimos programas recién saliditos de la forja
(sourceforge), y si encuentran algún error no olviden reportarlo para
que así e, la próxima actualización sea corregido no solo para ustedes,
sino para todos los que utilizan ese programa.

lo olvidaba, actualizaciones.

Pueden
ustedes actualizar sus sistemas por completo, incluyendo todos y cada
uno de los programas instalados con un simple comando:
Código:
#yum update
#apt-get upgrade
3emerge -u world

Y
con esto siempre tendrán a su equipo en las mejores condiciones y
claro, también hay interfaces gráficas para todo esto y notificadores
automáticos que le informan de nuevas actualizaciones disponibles.

Suerte, si hay preguntas pues es la hora.

No hay comentarios: