3.2 Instalación de diferentes distribuciones de Linux y gestión de sus paquetes de software
19 marzo 2017
[ Estás en Unidades Didácticas / Unidad 3 – GNU Linux / 3.2 Instalación de diferentes distribuciones de Linux y gestión de sus paquetes de software ]
Para instalar una distribución Linux en un equipo hemos de comprometer de algún modo su estabilidad ya que modificaremos su disco de arranque. Si tienes un equipo al que no le das uso y quieres probar cualquier sistema operativo no tendrás problemas en comprometer esa estabilidad, pero en cualquier otra circunstancia no es recomendable jugar con fuego hasta que no se domine el tema.
Las dificultades que tiene el mundo linux para entrar en los ordenadores existentes, la mayoría de ellos con MS-Windows© pre-instalado, se intenta resolver distribuyendo la imagen de la distribución Linux en una ISO que puede ser arrancada y probada en cualquier ordenador sin tocar el disco duro de la máquina anfitriona. Si montamos convenientemente esta imagen en un pendrive obtendremos un LiveUSB, que tiene la ventaja -frente a los CD o DVD- de poder ser reconstruido con diferentes imágenes tantas veces como queramos. Es un dispositivo de almacenamiento masivo extraíble (memoria USB o pendrive) que alberga un sistema operativo en su totalidad y es capaz de arrancar desde casi cualquier ordenador.
Otra ventaja del LiveUSB frente a CD o DVD es la posibilidad de crear un archivo que emula un sistema completo de archivos y puede ser modificado tantas veces como queramos y en el que podemos guardar las aplicaciones instaladas sobre el LiveUSB o los datos, documentos… que queramos. Es lo que llamamos persistencia. Sin persistencia, cada vez que probamos un LiveUSB aparece como la primera vez que se usó, si tuvimos que hacer ajustes de configuración o instalamos alguna aplicación habrán desaparecido. A lo largo del curso crearás un LiveUSB con persistencia, harás las actualizaciones y ajustes necesarios, instalarás las aplicaciones que sean necesarias para un objetivo que fijaremos para cada alumno (o para usarlo en una pequeña empresa como reza la Guía Docente), añadirás información técnica sobre el proceso de creación, configuración e instalaciones llevados a cabo y sobre el uso de alguna de las aplicaciones instaladas y, finalmente, me la entregarás para poder evaluar el trabajo realizado.
Este año han cambiado la política de seguridad de PCs de nuestras aulas, ahora no podemos cambiar su esquema de arranque si no disponemos de la contraseña habilitada por los SSII. Evidentemente no voy a preguntar por esa contraseña, no debo interferir en la seguridad de quien gestiona los ordenadores de nuestras aulas. Así que no podremos probar ninguna distribución de Linux en estos equipos si no instalamos una máquina virtual. Y de momento no vamos a hacerlo, crearemos un LiveUSB con persistencia basado en la distribución de Linux que elijáis y tendréis que probarlo en algún PC al que tengáis acceso y no esté protegido en la BIOS.
Para crear el LiveUSB con persistencia tendrás que decidir qué distribución (o distribuciones) usarás. Esta decisión, como todas las que lleva a cabo cualquier profesional de la informática o aspirante a ello, estará correctamente justificada. Incluirás esta justificación en el LiveUSB que entregues al finalizar el periodo de clases de la asignatura. También tendrás que buscar antes una herramienta que te facilite esta tarea. Cuando comencemos a estudiar la CLI de Linux practicaremos usando los comandos que realmente usan dichas herramientas (probablemente la que has elegido es GUI, con algún componente visual que nos preguntará dónde está la ISO a instalar, dónde queremos instalarla y qué persistencia queremos asignar –si se puede, que no siempre– y construirá las órdenes CLI necesarias, las ejecutará y quedará hecho el trabajo).
Algunas de estas herramientas son específicas de una plataforma, por ejemplo Linux LiveUSB sólo se puedes ejecutar en MS-Windows© (también en macOS© o Linux si tienes una máquina virtual o Wine). Elige la que mejor se adapte a tus circunstancias.
También necesitamos la ISO de la distribución que queremos montar en el LiveUSB. Se pueden montar varias ISO en un mismo LiveUSB, es útil cuando queremos probar varias de ellas. Existen también ISO que contienen una distribución de Linux con diferentes sabores, se conocen por AIO (All In One) y puedes encontrarlas en Linux AIO. Recordad que una buena práctica de un ingeniero informático es la de comprobar que cualquier descarga ha sido correcta usando MD5, también estaréis comprobando que el archivo descargado no contiene modificaciones.
Para obtener el LiveUSB se ha de formatear el pendrive. Si queremos que tenga persistencia y hemos dado formato fat32 (el más universal, el que casi seguro funcionará en todas las máquinas en que queramos probarlo) podremos añadirle un sistema de archivos de 4GB como máximo. Si el SO operativo ocupa 2GB necesitamos 6GB para esta combinación. El resto de capacidad del disco no se utilizará, por ello es mejor haber hecho antes estos cálculos y hacer una partición del disco con 6GB en su partición primaria y el resto de capacidad en otra partición (o más, eso ya es cosa tuya). Volviendo a los formatos de disco, si usamos fat32 en todas las particiones, aunque no tendremos el mejor de los formatos que existen sí tendremos el más universal. Si supieras que sólo vas a usarlo en ciertas máquinas que reconozcan otro formato con mejores características podrías formatear las particiones en esos formatos.
Supongamos que el pendrive ya está particionado. El LiveUSB y el archivo necesario para dotarlo de persistencia se alojarán en la partición primaria. Las restantes particiones podrán ser utilizadas como si se tratara de otro disco, siempre que la máquina anfitriona las reconozca (no siempre es así, prueba y descubre…).
Con la herramienta elegida ya sólo queda indicarle qué ISO queremos instalar, que queremos hacerlo en la partición primaria de nuestro pendrive, y qué persistencia queremos que tenga. No todas las distribuciones de Linux admiten persistencia, y no todas las herramientas conocen las instrucciones precisas de todas las distros que sí las admiten, es posible que la herramienta no nos permita añadir persistencia a nuestro LiveUSB. Una vez completados estos pasos pulsaremos un botón y esperaremos un tiempo que dependerá del tamaño de la ISO, máquina anfitrión, pendrive cliente… Sería interesante que supieras documentar este proceso como un profesional de la informática, aportando las características fundamentales de tu experimento y publicando un informe detallado del proceso y de tus conclusiones como experto. Ya es hora de ir demostrando al mundo alguna de las capacidades que has adquirido durante tantos años de estudio.
Fuentes
- Antergos – Cómo crear un LiveUSB (donde recomiendan no usar UNetbootin, Linux Live USB Creator, Universal USB Installer ni Live USB Creator y veréis qué sencillo es hacerlo en Linux con comandos CLI)
- Crear un USB Booteable de Ubuntu 16.10 Yakkety Yak
Distribuciones Linux
Ya hemos visto en el tema 2.1 que hay muchísimas distribuciones Linux. No es ni bueno ni malo tanta diversidad, pero para nosotros es una oportunidad de elegir la que mejor se adapte a nuestras necesidades y recursos o a las de nuestros clientes. Un punto esencial a la hora de elegir una distro es su actualización (ya hemos estudiado este detalle) por lo que mostraré un listado de algunas en las que la comunidad libre sigue preocupado a día de hoy.
- Slackware es la más antigua.
- ArchLinux
Fuentes
Escritorios Linux
La elección de un escritorio supone una decisión importante. Hay que conocer los recursos que consume (para saber en qué máquinas podrá ser instalado) y algunos aspectos generales de la interfaz gráfica. También hay que saber que cada escritorio tiene sus propias normas y aplicaciones específicas que no pueden ser compartidas por diferentes escritorios. Estos parámetros deberían ser conocidos por todos los administradores linux, que son quienes mejor podrán aconsejar al usuario sobre la distribución linux que más se adaptará a sus necesidades y a las máquinas con que quiere operar.
- KDE
- GNOME
- Unity
- Cinnamon
- XFCE
- MATE
- Enlightenment
- Deepin
- Sugar
- LXQT
- Pixel
Más en…
Gestión de paquetes de software en Linux
Lo primero que observa casi cualquier usuario en una distribución Linux es su aspecto visual, su escritorio, sus sabores. Hay quien elige ElementaryOS o ZorinOS sólo porque aparentan ser lo que no son, ningún problema si satisface las necesidades del usuario.
Si hay tantas distribuciones y sabores en Linux, no es sólo para que sean más o menos agradables visualmente (que sí), suele ser para tener algo funcional que pueda adaptarse tanto como sea posible al usuario final, sus máquinas y sus necesidades. Por ejemplo, es muy posible que UbuntuStudio tenga por defecto un linux de baja latencia (no lo he comprobado, hazlo tú), lo que puede provocar que ciertas aplicacione compiladas para otra base linux no funcionen o, simplemente, no estén optimizadas para aprovechar esa latencia. Lo normal es que los desarrolladores de UbuntuStudio preparen la aplicación compilándola para que sea lo más fluida posible en su distribución.
Todas las aplicaciones libres o de código abierto pueden ser compiladas con diferentes parámetros y ajustes, optimizando tiempo de respuesta, espacio en disco… Lo puede hacer cualquier usuario avanzado de linux (casi siempre), pero sería mejor que lo hicieran los desarrolladores de la distribución y nos facilitaran la descarga de esa compilación optimizada. Aquí es donde aparecen los distintos gestores de paquetes de software que hay en el mundo linux. Para que los usuarios de una distribución concreta puedan instalar con facilidad una aplicación optimizada para esa distribución, lo mejor es crear un gestor de paquetes de software que automatice el proceso al usuario, siempre que los desarrolladores (o algún voluntario de la misma comunidad) haya preparado y probado la aplicación en esa distribución.
Puede parecer una falta de control de linux. Si cada distribución tiene una aplicación distinta para gestionar las aplicaciones instaladas en el equipo, el administrador linux ha de conocer muchas herramientas distintas diseñadas para el mismo propósito. Pero no es falta de control, es un control más estudiado. A nadie se le ocurre entrar desde MS-Windows a la tienda de aplicaciones de Google para Android para instalar aplicaciones en MS-Windows. Si piensas que todas las aplicaciones linux son la misma es porque no has entendido el párrafo anterior (vuelve a leerlo en su caso).
En linux no hay una única «tienda de aplicaciones», cada distribución puede tener la suya propia y se pueden usar las de otras distribuciones pero sin garantía de que funcione correctamente la aplicación instalada.
- RPM es el gestor de paquetes
.rpm
de Red Hat. - DPKG es el gestor de paquetes
.deb
de Debian. - APT Resuelve las dependencias en distribuciones basadas en Debian. Es una librería de funciones CLI como
apt-get
oapt-cache
, también gestiona paquetes.rpm
a través deapt-rpm
. Hay programas que facilitan el uso de estas librerías, comoaptitude
,Synaptic
oAdept
. - PACMAN es el gestor de paquetes de Arch Linux. Proporciona algunas de las funciones fundamentales de otros de los gestores de paquetes, incluyendo la instalación, resolución automática de dependencias, actualización, desinstalación y también la descalificación de software.
- YUM es una alternativa a RPM que gestiona automáticamente las dependencias. Es oficial en derivados de Red Hat como Fedora (hasta la versión 22, en que se sustituyó por DNF) o CentOS.
- ZYpp resuelve las dependencias de paquetes rpm, como YUM pero más eficiente por estar programado en C++. Es el gestor de paquetes oficial de OpenSUSE y SUSE Linux Enterprise.
- DNF es un fork de YUM que incorpora algunas características de ZYpp.
- Portage, gestor de paquetes de Gentoo.
- Entropy es el gestor de paquetes de Sabayon Linux, derivado de Gentoo.
Fuentes
Repositorios de paquetes
Un repositorio no es más que un directorio con una colección de archivos seleccionado por sus administradores. Un repositorio de paquetes contiene los paquetes que ya han sido probados en distribuciones concretas y está administrado por parte de la comunidad dedicada a esa distribución. Es fácil crear un repositorio personal de paquetes (PPA, Personal Package Archives), que se usará si sus administradores y colaboradores dan confianza, si tienen cierta reputación. Durante el curso recurriremos a alguno que nos ayude a instalar la última versión de Code::Blocks
, ya que Ubuntu y derivados (el que tenemos en las aulas es uno de ellos, LinuxMint) tienen en sus repositorios oficiales la versión 13.12 y yo quiero que instalés la 16.01, mucho más estable y potente.
Los gestores de paquetes obtienen los paquetes de los repositorios en los que confía el usuario de un sistema linux. No podemos usar un repositorio sin más ni más (como sí ocurre en macOS o MS-Windows), antes hemos de indicar al sistema que confiamos en el repositorio. Esto no protege a cualquier equipo pero ayuda a hacerlo, como administrador de sistemas linux deberías ser consciente de esto.
Cada distro suele usar un repositorio de forma oficial que nos garantiza una buena UX con todos los paquetes que contiene. Pero la comunidad libre es demasiado extensa y heterogénea y la libertad que tiene le posibilita la creación de repositorios específicos por materias y no por distribuciones.
Ejercicios
- Comprueba si los repositorios de tu distribución tienen actualizados todos los paquetes que has decidido instalar. En el caso de que alguno no esté actualizado comprueba si puedes actualizarlo desde el repositorio oficial, en caso contrario busca un repositorio alternativo e intenta usarlo. Si nada de esto funciona ¿podrías conseguir tener la última actualización de la aplicación funcionando en tu equipo?
Fuentes
- Repositorio (Wikipedia)
- Algunos repositorios PPA para Ubuntu y Linux Mint que pueden serte de utilidad
- What is the next step in downloading Code::Blocks?