sábado, 20 de marzo de 2010

Cómo instalar software (programas) en (ubuntu) GNU/Linux. I. Introducción

###################################
Notas de revisiones:
Revisión 0: 20 marzo 2010. Publicado.
###################################

Comienzo una serie de tres partes en la que explico cómo se instala software en Linux, dirigido sobretodo a recién llegados desde Windows. Está orientado a ubuntu, pero los fundamentos son los mismos para cualquier otra distribución moderna de "Escritorio". Este es un tema muy documentado pero me apetecía explicar algunas cosas que he ido aprendiendo y desaprendiendo con el tiempo.

Normalmente, la documentación oficial de las distribuciones se dirige a los nuevos usuarios como si fueran completamente nuevos a la informática. No tiene en cuenta que la mayoría llevan años usando Windows y tienen algunas ideas preconcebidas que en GNU/Linux no son válidas. La documentación se esfuerza sobretodo en enseñar, no tanto en desenseñar.

Preguntas frecuentes:

¿Es instalar software en Linux (="una distribución de GNU/Linux") más fácil o más difícil que en Windows?

Depende. Al fin y al cabo, en Windows también se puede compilar, no? :P

Si tomamos como referencia el conocido: "bajar-un-programa-desde-una-página-de-confianza-doble-click-setup.exe-aceptar-licencia-next-next-next" o, el un poquito más complicado y triste pero cierto: "bajarlo-desde-cualquier-lugar-incluido-crack-pasar-antivirus-etc"... se puede decir que instalar software en Linux puede ser desde mucho más fácil hasta mucho más difícil que esto.

Básicamente, existen dos formas de instalar un programa:

1. Por medio de un instalador ejecutable

2. Compilando el código fuente antes de instalar

La primera forma es como el clásico "setup.exe" de Windows: Un instalador binario. Sin embargo, una distribución moderna lo pone mucho más fácil que Windows, como veremos en el siguiente capítulo.

La segunda es un poco más complicada. Lo veremos en el tercer capítulo. Normalmente no es difícil pero suele llevar un rato. Es cuestión de cogerle el truco. Pero no os asustéis, cada vez es menos necesario y/o más fácil, pues al aumentar el número de usuarios aumenta el número de empaquetadores-distribuidores, informadores de fallos, "pedigüeños" (quiero este programa en ubuntu por favor!!!), profesores y ayudantes, traductores, incluso programadores aficionados (este programa está bien pero hay que mejorarlo, me apunto, toma parche!)... En general, esto redunda en beneficio del usuario final que cada vez está más cerca de las versiones "recién horneadas", al tiempo que éstas son cada vez mejores.

¿Entonces, cuál es la mejor forma de instalar?

Depende...Aquí debemos mantener un equilibrio y pensar un poco antes de actuar sobre qué es lo mejor en cada caso. Yo diría que hay 4 factores, la seguridad de que el programa será estable en nuestro sistema [1], la facilidad de instalación, la funcionalidad que esperamos y la paciencia que tengamos. Resumiendo y en primera aproximación:

- Lo más seguro y muy fácil, perdiendo quizás alguna funcionalidad de un programa concreto, pero esperando que mejorará con el tiempo --> Repos oficiales.

- Menos seguro y bastante fácil, en busca de versiones más recientes o de un programa que no está en los repos oficiales--> Repos no oficiales o paquetes sueltos desde internet (a ser posible desde la página oficial de los proyectos, si se facilitan).

- Muy seguro y no fácil, cuando queremos estar a la última con un programa concreto que nos interesa especialmente --> Compilar la última versión estable de un programa, después de descargar el código fuente desde su sitio oficial.

- Menos seguro y no fácil, cuando queremos tener la versión de desarrollo, para evaluarla y/o colaborar con el proyecto --> Compilar las versiones diarias cuyo código fuente bajamos desde el sistema de control de versiones que utilice el proyecto.

Los dos primeros métodos los vemos en la segunda parte.

¿Dónde se instalan los programas?. Pues no existe un directorio llamado "Archivos de programa" ni nada que se le parezca.

Los programas se instalan... cada archivo en su lugar. El ejecutable en el directorio de ejecutables, las bibliotecas en el directorio de las bibliotecas, las configuraciones generales en su directorio, las configuraciones de usuario, en su sitio, los iconos en su sitio, la documentación en su lugar, etc. Pues sí, un programa bien diseñado repartirá archivos por todo el sistema.

¿Por qué no tengo permisos para hacer lo que yo quiera en mi propio ordenador?

Los sistemas derivados de UNIX, como GNU/Linux, están diseñados desde su base para ser multiusuario. Hay un administrador y tantos usuarios como éste determine. En un ordenador personal, de usuario único, hay un administrador y un usuario. Los programas los debemos lanzar "como usuario". La gestión de nuestros archivos la debemos hacer también como usuario. Lo que no podemos hacer como usuario es, por ejemplo, instalar un archivo ejecutable en el sistema operativo. Eso sólo lo puede hacer el administrador. Si el ordenador es tuyo, el administrador eres tú, pero no "tú usuario", sino "tú administrador". Algunos nuevos usuarios piensan que esto es un engorro porque implica introducir una contraseña cada vez que queremos instalar algo. A mí me parece mucho más engorroso formatear, eliminar virus con sospechosos antivirus de código cerrado, etc, sólo porque a un "sistema operativo" le da por ejecutar un programa que hace cosas malas sin que el dueño del ordenador lo haya instalado intencionadamente.

¿A quién me puedo quejar si instalo un programa que no funciona?

Si es software bajo la GPL, no hay garantía. El software se ofrece tal y como es. Tienes derecho a estudiar su código, a modificarlo, a redistribuirlo, a usarlo en tantos ordenadores como quieras... pero no hay garantía. No puedes denunciar a nadie porque no funcione. El software libre está basado en la confianza de que las cosas se han hecho lo mejor posible, y todo el mundo está invitado a participar en su mejora y su desarrollo.

Y ahora, al grano


[1] Descarto el malware. Cuando hablo de seguridad, me refiero a fallos no intencionados, sean del programador, del empaquetador-distribuidor, o del propio usuario que ha tomado decisiones sin saber bien lo que hacía.

1 comentario:

  1. excelente la información, me ha quedado mucho más clara la diferencia..

    saludos

    ResponderEliminar