En esta serie de artículos sobre Software Libre que estamos desarrollando, trato de resolver dudas que surgen habitualmente entre la gente que se plantea dar el salto a sistemas como Linux. Y una de las más habituales es:
¿como busco y me bajo los programas que necesito en Linux?
Para usuarios acostumbrados al paradigma de sistemas propietarios como Windows o MacOS, acostumbrados a tener que adquirir los programas o descargarlos desde páginas web (sin entrar en el tema de la piratería de software), el modelo de distribución de programas habitual en el software libre puede resultar sorprendente, pero vamos a tratar de explicarlo aquí de modo que sea fácilmente compresible por todo el mundo.
[toc]
Los paquetes de instalación
Cuando vamos a instalar un programa en plataformas Windows, generalmente tenemos dos tipos de archivos:
- un archivo .exe (ejecutable), que suele llamar setup.exe o similar
- un archivo .msi (Microsoft Software Installer)
Estos son generalmente archivos empaquetados que contienen el instalador del software que queremos añadir a nuestros sistema
Del mismo modo, en sistemas MacOS nos encontramos con archivos .dmg, que cumplen la misma función.
Cuando trabajamos en entornos Linux, el concepto que manejamos es el del “paquete”, que es parecido, pero no exactamente igual. ¿Y que es un paquete? Pues se trata de un archivo binario (ejecutable) que contiene todo lo que necesitamos para instalar un software determinado. Dicho software puede ser un programa completo, una librería, una funcionalidad añadida a otro programa, un driver, etc.
El paquete es, por tanto, la unidad mínima de instalación de software en un sistema Linux.
En algunos casos, estos paquetes contienen absolutamente todo lo necesario para funcionar por si mismo, pero e otros casos dependen de otros paquetes para funcionar correctamente. Sobre dependencias, hablaremos más adelante.
¡¡¡ Accede al WEBINAR GRATUITO ???????? donde descubrirás el SECRETO ???????? para convertirte en un Experto en #Linux a nivel Internacional !!!
CLICK AQUÍ PARA VER WEBINAR AHORA >>
Formatos de paquetes en Linux
Teniendo en cuenta que todas las distribuciones (distros) Linux siguen unos estándares de estructura y funcionamiento (como el FHS, por ejemplo) para que sea sencillo utilizarlas por cualquier usuario con conocimiento de Linux, existen varios elementos del sistema que sufren variaciones en función de en cual de dichas distros nos encontremos. La más importante de todas ellas es, posiblemente, el sistema de gestión de paquetes y el formato de paquete utilizado .
Dentro del extenso mundo Linux, históricamente, surgieron algunas distros pioneras que han marcado el paso a sus sucesoras, convirtiéndose en los “padres” de extensas familias de derivados y “forks”, que han conservado semejanzas y relaciones con su padres y han heredado elementos como el sistema de gestión de paquetes.
Los “padre de familia” marcan, por tanto, el formato de paquetes utilizado por la mayoría de las distribuciones:
- Debian, distribución famosa por su ortodoxia estricta dentro del mundo del software libre, distribuye sus paquetes en el formato .deb
- Red Hat, primera gran distribución empresarial y recientemente adquirida por el gigante IBM, distribuye sus paquetes en formato .rpm
A partir de ahí, el resto de miembros de las respectivas familias, utilizan alguno de estos sistemas de paquetes, aunque existen algunas distros que funcionan por su cuenta, utilizando sistemas propios o, a veces, ningún sistema en concreto.
.deb | .rpm |
---|---|
DEBIAN | RED HAT |
Ubuntu (todos los “sabores”) | Fedora |
Kali Linux | CentOS |
Linux Mint | openSUSE |
Tails | SUSE |
MX Linux | |
Elementary OS |
Otros formatos de paquetes que podemos encontrar son el .tgz, formato comprimido con tar y gzip, o tar.xz, comprimido con tar y xz.
Cuando en internet buscamos algún programa de uso común, como Spotify, VirtualBox, Skype, etc, en su versión para Linux, generalmente nos ofrecerá estas opciones de paquete para descargar e instalar.
Como instalar paquetes en Linux
A la hora de instalar un paquete manualmente, ya sea porque tenemos descargado un programa de su web, como dijimos antes, o porque lo tenemos en un dispositivo externo o similar, en función del tipo de paquete tenemos diferentes herramientas:
- dpkg: es la herramienta para instalar paquetes .deb
dpkg -i nombredepaquete.deb
- rpm: es la herramienta a los paquetes .rpm
rpm -i nombredepaquete.rpm
cuando se trata de un paquete que incluye todo lo necesario para funcionar, no hay ningún problema. Una vez terminada la instalación, el software instalado es plenamente funcional.
Pero… ¿que ocurre si dicho paquete tiene dependencias de otros? Pues que nos dará un error de instalación pidiéndonos que instalemos los paquetes que faltan. Y esto es bastante engorroso, en función del número de dependencias que nos falten, que pueden ser muchas.
A fin de evitar este tipo de problemas y facilitar el acceso al software necesario y la gestión de las dependencias, las distros Linux utilizan un sistema de repositorios online.
Distribuciones y repositorios
Los repositorios (o repos) son almacenes online en los que la diferentes distribuciones albergan todo el software testado y homologado para su distribución, haciéndolo de este modo modo fácilmente disponible para todos los usuarios que dispongan de conexión a Internet.
Este sistema de repositorios nos garantiza que todo lo que tenemos disponible está testado, pasando procesos de revisión, para ser incluido en dichos repositorios oficiales, lo cual nos garantiza de que no se trata de software malicioso, y que funciona correctamente en dicha distro.
Estos repositorios además son públicos y tienen réplicas o “mirrors” por todo el mundo (principalmente en centros de investigación, universidades, etc), y se actualizan constantemente con nuevas versiones de los programas, parches de seguridad, etc.
De este modo, en contadas ocasiones vamos a necesitar software que no se encuentre en los repositorios oficiales de nuestra distribución.
Además de estos repos oficiales, otros desarrolladores o empresas pueden habilitar sus propios repositorios para ofrecer el acceso a sus productos, en lugar de tener que descargarlos manualmente.
Ventajas del uso de repositorios online
El disponer de estos repositorios de cara a la instalación de software en nuestro sistema linux nos ofrece un montón de ventajas:
1. Software de confianza
Al tratarse de repositorios oficiales, sabemos que estos programas han sido evaluados y homologados por el equipo que mantiene dicha distro, que ese software no contiene malware o troyanos, y que si algo no funciona podemos ponernos en contacto con los mantenedores de dichos paquetes para solucionarlo. Además los repositorios van firmados digitalmente para poder verificar su autenticidad.
2. Resolución inteligente de dependencias
Al estar todo el software necesarios en los repositorios, cada paquete lleva asociados unos metadatos en los que se hace referencia a los paquetes de los que depende. De modo que cuando instalemos cualquier paquete que necesite otros que no tenemos instalados en nuestro sistema, el gestor de paquetes nos avisará y nos obligará a instalar los paquetes necesarios para que todo funcione.
3. Estar informado de las actualizaciones
Al tener los repositorios añadidos a nuestro sistema nos permite estar al tanto de las actualizaciones de los paquetes que tenemos instalados en nuestro sistema. Si instalamos un paquete manualmente, al no estar en repositorios, no sabremos si existen nuevas actualizaciones de dicho paquetes
4. Simplificación de la búsqueda de software
Al tener todo centralizado en repositorios no tendremos que buscar por internet los programas que necesitamos y descargarlo de páginas que pueden no ser demasiado confiables. Con nuestros gestores de paquetes tenemos herramientas que nos permiten buscar en los repositorios por categorías o tipos de programas o por palabras claves, para encontrar fácilmente el programa que necesitamos.
En una próxima segunda parte desarrollaremos este tema, hablando fundamentalmente de las diferentes herramientas de gestión de paquetes.
¡¡¡ Accede al WEBINAR GRATUITO ???????? donde descubrirás el SECRETO ???????? para convertirte en un Experto en #Linux a nivel Internacional !!!