Debido a una operación de mantenimiento, el acceso al sitio web de Ediciones ENI estará interrumpido a primera hora del martes 10 de diciembre. Le invitamos a anticipar sus compras. Lamentamos las molestias ocasionadas.
Debido a una operación de mantenimiento, el acceso al sitio web de Ediciones ENI estará interrumpido a primera hora del martes 10 de diciembre. Le invitamos a anticipar sus compras. Lamentamos las molestias ocasionadas.
  1. Libros
  2. Linux
  3. Instalación de Linux y de los paquetes de software
Extrait - Linux Preparación a la certificación LPIC-1 (exámenes LPI 101 y LPI 102) - [6ª edición]
Extractos del libro
Linux Preparación a la certificación LPIC-1 (exámenes LPI 101 y LPI 102) - [6ª edición] Volver a la página de compra del libro

Instalación de Linux y de los paquetes de software

Requisitos y objetivos

1. Requisitos previos

Haber configurado la BIOS para arrancar en el lector CD/DVD o el soporte USB o bien disponer de un hipervisor de máquinas virtuales.

Disponer de una fuente de instalación (CD, DVD, USB, imagen ISO, red).

2. Objetivos

Al final de este capítulo, será capaz de:

Instalar una distribución Ubuntu, Debian o de tipo Red Hat.

Gestionar los paquetes de software de tipo Red Hat.

Utilizar los comandos Red Hat Package Manager.

Utilizar los administradores de paquetes Yum et DNF.

Gestionar los paquetes de software de tipo Debian.

Utilizar los administradores de paquetes APT y sus derivados.

Utilizar el administrador de paquetes Zypper.

Gestionar las librerías compartidas.

Instalar una distribución

Antes de proceder a la instalación de una distribución Linux en un ordenador, hay que responder a diferentes preguntas y determinar los argumentos principales:

1. Determinar las características de instalación

  • ¿Para qué se utilizará el sistema: estación de trabajo de un usuario, estación de trabajo de un desarrollador, servidor de recursos, servidor de aplicaciones, red?

  • ¿Cuál será la configuración mínima deseable (dependiendo del uso previsto): tamaño de la memoria, procesador(es), espacio en disco, tarjeta(s) de red?

  • ¿Qué distribución se debe instalar?

  • ¿Qué medios se van a instalación utilizar para la instalación: CD/DVD, llave USB, instalación a través de la red?

Es posible instalar una distribución de Linux en una máquina virtual, especialmente para pruebas. También puede configurar una máquina virtual en la nube.

2. Parámetros de instalación

Una vez se conozcan las respuestas a las preguntas anteriores, puede comenzar la instalación. Se requieren pocos elementos para una instalación básica, y normalmente será posible completarla más adelante, a excepción de ciertos parámetros que se deben especificar en el momento de la instalación, ya que puede ser difícil modificarlos posteriormente:

  • Idioma

  • Huso horario

  • Nombre de la máquina

  • Dominio DNS

  • Direccionamiento IP básico (dirección IP, pasarela predeterminada, servidor DNS o automático...

Los administradores de paquetes de software

Las distribuciones de Linux ofrecen herramientas de administración de software, que le permiten instalar, actualizar o desinstalar los componentes de software en un sistema. Estas herramientas mantienen una base de datos que permite a los administradores conocer y administrar todas las aplicaciones implementadas a través de estas herramientas.

Los dos administradores de software más utilizados hoy en día son el de tipo Debian y el de tipo Red Hat. Ambos se basan en el concepto de un paquete de software (package), pero no tienen una estructura común ni herramientas de diferente estructura y ofrecen diferentes herramientas. Distribuciones como Red Hat o SUSE utilizan el formato RPM (Red Hat Package Manager), mientras que las distribuciones Debian y Ubuntu utilizan el formato DPKG (Debian Package).

1. Noción de paquete de software (package)

En un entorno Linux, la mayoría de los componentes de software se proporcionan como paquetes de software (paquetes). Un paquete de software es un archivo que contiene los componentes del producto que se van a instalar, así como un conjunto de reglas para instalarlo, actualizarlo o desinstalarlo. Dependiendo de su contenido, su tamaño puede ser mayor o menor. Por ejemplo, el kernel y todos sus módulos se suministran de esta forma.

Hay muchas reglas para un paquete de software:

  • Gestión de las dependencias: lista...

Los paquetes de software Red Hat

Red Hat ha definido el formato de paquetes de software RPM (Red Hat Package Manager), utilizado por las distribuciones de tipo Red Hat y SUSE.

1. El gestor RPM

RPM es un conjunto de software que soporta la distribución, la instalación, la actualización y la eliminación de los programas. Para hacer esto, dispone de comandos específicos que se basan en una base de datos local.

La base de datos de gestión de los paquetes de software está ubicada en /var/lib/rpm. Toda la información correspondiente a los programas instalados, sus versiones, sus archivos y derechos y sus dependencias, se almacena. Solo en casos especiales, no se debe modificar NUNCA esta base de datos directamente, sino que se deben utilizar las herramientas RPM para ello.

Se facilita cada programa en forma de paquete de software con formato RPM. El nombre del paquete utiliza el sufijo .rpm y responde a una nomenclatura precisa.

nombre-versión-edición.arquitectura.rpm 

La edición es un identificador de versión del paquete de software RPM propio del editor que puede ser un simple número de construcción (número de veces que el paquete de software ha sido reconstruido), pero también podría contener datos como la versión del sistema o la referencia a una confirmación de un repositorio de código git.

La arquitectura dicta el tipo de procesador que se admite. Un paquete de software en arquitectura noarch contiene solo elementos que son independientes del tipo de procesador (scripts, programas de lenguaje interpretado, documentación, imágenes, sonido, vídeo, etc.).

Ejemplo

Archivo de paquete de software de php 8.1.14:

php-8.1.14-1.module_el9+260+8424407f.x86_64.rpm 

Este archivo contiene la edición 1.module_el9+260+8424407f del paquete de software PHP en versión 8.1.14. La arquitectura es x86_64 (Intel o AMD 64 bits).

2. Instalar, actualizar y eliminar

Para instalar un paquete de software RPM, podemos utilizar la opción -i.

rpm -i php-8.1.14-1.module el9+260+8424407f.x86_64.rpm 

Dado que es posible utilizar comodines (rpm -i *.rpm), quizás necesite visualizar el nombre del paquete de software durante la instalación con la opción -v. La opción -h visualiza caracteres # para indicar la progresión de la instalación.

La instalación no funcionará...

El administrador de paquetes YUM

Yum (Yellow dog Updater Modified) es un software de gestión de paquetes de software. Carga los paquetes de software en repositorios de software y administra dependencias. Lo utilizan las distribuciones de tipo RPM, si los repositorios asociados lo admiten.

A partir de las versiones 8 de Red Hat Enterprise Linux y CentOS, el comando yum tiene un enlace simbólico al archivo ejecutable del comando dnf, que lo reemplaza y es totalmente compatible.

# ls -l /usr/bin/yum  
lrwxrwxrwx. 1 root root 5 15 sept.  2022 /usr/bin/yum -> dnf-3 

Los comandos y ejemplos siguientes utilizan un servidor RHEL en versión 9. El archivo de configuración es /etc/yum.conf (enlace simbólico a /etc/dnf/dnf.conf).

1. Configurar los repositorios

Es posible configurar los repositorios de software adicionales a los que ya están presentes por defecto. Es el caso, por ejemplo, del repositorio EPEL gestionado por el proyecto Fedora, que añade muchos paquetes de software que no se encuentran en las distribuciones.

Los repositorios se ubican bien en el archivo de configuración principal, bien en el directorio /etc/yum.repos.d.

El formato de declaración de un repositorio es el siguiente (una línea que empieza por # es un comentario):

[epel]  
name=Extra Packages for Enterprise Linux $releasever - $basearch  
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/ 
Everything/$basearch  
metalink=https://mirrors.fedoraproject.org/metalink?repo= 
epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir  
enabled=1  
gpgcheck=1  
countme=1  
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 

Con:

  • [epel]: identificador del repositorio.

  • name: el nombre largo del repositorio, detallado.

  • baseurl: la URL del repositorio.

  • metalink (o mirrorlist): siempre se debe proporcionar una URL específica, metalink apunta a una lista de URL que YUM puede utilizar.

  • gpgcheck: requiere comprobar la firma GPG del repositorio si el valor es igual a 1.

  • enabled: si no está definido o en 1, el repositorio está activo.

  • gpgkey: ruta de la clave pública GPG.

  • failovermethod: opción que quedará pronto obsoleta en dnf. Indica cómo seleccionar el repositorio en caso de fallo (lista secuencial aleatoria).

Las URL de los repositorios pueden ser locales...

El administrador de paquetes DNF

DNF (Dandified Yum), introducido en la versión 18 de la distribución Fedora, se ha convertido en el instalador de paquetes de software predeterminado para distribuciones de tipo Red Hat.

DNF es una reescritura completa del software Yum, su comando, dnf, utiliza todas las opciones del comando yum, con la misma sintaxis.

Ejemplo

Búsqueda del paquete de software httpd-core:

# dnf search httpd-core  
Actualización de los repositorios de gestión de las suscripciones.  
Última verificación de la expiración de los metadatos realizada  
hace 0:30:03 en Thu. 09 may 2023 10:04:21.  
=============== Nombre corresponde exactamente a: httpd-core ================ 
httpd-core.x86_64 : httpd minimal core 

Los paquetes de software Debian

Debian ha definido el formato de los paquetes de software .deb, utilizado por su propia distribución y sus derivadas (como Ubuntu).

1. dpkg: el comando de gestión de paquetes Debian

El comando dpkg es el equivalente del comando rpm para paquetes de software en formato Debian, que utilizan paquetes con la extensión .deb. El comando dpkg se puede usar para administrar paquetes de software.

La base de datos de dpkg normalmente se coloca en /var/lib/dpkg. Los archivos que la componen están en formato de texto, pero no necesitan ser editados directamente. El archivo /var/lib/dpkg/status contiene todos los paquetes de software conocidos por dpkg y su estado.

Ejemplo

Lista de líneas "package" en el archivo de status:

# grep ^Package: /var/lib/dpkg/status | grep linux  
Package: accountsservice  
Package: acl  
Package: adduser  
Package: adwaita-icon-theme  
Package: aisleriot  
Package: alsa-topology-conf  
Package: alsa-ucm-conf  
Package: alsa-utils  
Package: anacron  
Package: apache2-bin  
Package: apg   
[...] 

2. Instalar, actualizar y eliminar paquetes de software

Las opciones -i, o --install, instalan paquetes de software de nombres de archivo pasados como argumentos.

Ejemplo

#DPKG-e Mipaquete.dev 

El comando dpkg no soporta dependencias. Si falta alguna, el comando lo indicará. En este caso, se deben instalar antes de implementar el paquete de software.

Puede solicitar la instalación de todos los paquetes de software de un árbol con la opción -R (Recursiva). La opción espera un nombre de directorio como argumento: se instalarán todos los paquetes de software del directorio y sus subdirectorios.

Ejemplo

# dpkg -R directorio 

Se actualiza de la misma manera que se instala, con la opción -i. Si instala un paquete de software ya presente, el comando efectúa su actualización.

Procedimiento para realizar una instalación o una actualización usando dpkg:

  • Extracción de los archivos de control del nuevo paquete.

  • Si ya se instaló una antigua versión, se ejecuta el script previo a la eliminación del antiguo paquete.

  • Ejecución del script de preinstalación si se facilita con el paquete.

  • Desempaquetado de nuevos archivos y copia de seguridad del antiguo paquete....

Administrador de paquetes APT

El componente de software APT (Advanced Packaging Tool) permite la gestión en línea de comandos de paquetes de software almacenados en repositorios de software locales o remotos.

Un repositorio de software contiene un conjunto de paquetes de software que dependen unos de otros o de otros paquetes de software que provienen de otros repositorios. APT administra automáticamente las dependencias de los paquetes de software.

1. Los repositorios de paquetes de software

a. Configuración

Los repositorios se especifican en el archivo /etc/apt/sources.list y en los archivos ubicados en el directorio /etc/apt/sources.list.d.

Ejemplo

Archivo /etc/apt/sources.list de una distribución Debian 12.0.0 Bookworm:

# cat /etc/apt/sources.list  
deb cdrom:[Debian GNU/Linux 12.0.0 _Bookworm_ - Official amd64 DVD Binary-1 
with firmware 20230610-10:23]/ bookworm main non-free-firmware  
deb http://deb.debian.org/debian/ bookworm main non-free-firmware  
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware  
deb http://security.debian.org/debian-security bookworm-security main  
non-free-firmware  
deb-src http://security.debian.org/debian-security bookworm-security main  
non-free-firmware  
# bookworm-updates, to get updates before a point release is made;  
# see https://www.debian.org/doc/manuals/debian-reference/  
ch02.en.html#_updates_and_backports  
deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware  
deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware 
# see https://www.debian.org/doc/manuals/debian-reference/ 
ch02.en.html#_updates_and_backports  
deb http://deb.debian.org/debian/ bullseye-updates main contrib  
deb-src http://deb.debian.org/debian/ bullseye-updates main...

El administrador aptitude

1. ¿apt o aptitude?

Aptitude es un administrador de paquetes de software Debian con una interfaz en modo línea de comandos. Sustituye a APT (y apt-get), a los que puede reemplazar.

Aptitude ofrece una mejor gestión de dependencias, especialmente cuando se desinstalan paquetes de software. Estas son algunas de sus ventajas e inconvenientes:

  • apt-get remove elimina el paquete de software pero no sus dependencias, aunque no se utilicen. A continuación, será necesario ejecutar apt-get autoremove o autoclean para purgar las dependencias que hayan quedado obsoletas.

  • APT ofrece veinte comandos (como apt-get y apt-cache) para gestionar el conjunto de posibilidades.

  • APT no ofrece un modo interactivo.

  • Aptitude elimina el paquete de software y sus dependencias si estas ya no se utilizan.

  • Aptitude ofrece un único comando para el conjunto de sus funcionalidades.

  • El comando aptitude, sin argumentos, se lanza en modo interactivo.

2. Instalación de aptitude

Aptitude se instala con el paquete de sofware aptitude:

$ sudo apt-get install aptitude 

3. Utilización

La sintaxis del comando aptitude es similar a la del comando apt-get. He aquí las principales opciones:

Opciones

Efecto

update

Actualiza los repositorios.

install

Instala los paquetes de software indicados.

remove

Elimina los paquetes de software y sus dependencias.

markauto

Elimina el paquete de software cuando ya no se utiliza de manera automática...

Paquetes de software Zypper

Zypper es un administrador de paquetes de software en modo línea de comandos que hace uso de la biblioteca ZYpp (libwypp). Permite instalar, actualizar y eliminar paquetes de software y también los repositorios correspondientes.

Zypper gestiona los paquetes de software en formato rpm como Yum o DNF. Lo utiliza SUSE Linux y también su versión libre openSUSE.

La librería que administra las dependencias de Zypper ha sido reutilizada por Red Hat para su herramienta DNF.

Zypper conserva un rastro de los repositorios que se han utilizado como fuente de instalación para cada aplicación. Cuando se hace una actualización, esta información (o más bien la del distribuidor o vendor) le permite actualizar los paquetes de software que provienen del mismo distribuidor, incluso si hay una versión más reciente disponible desde otro repositorio. En este caso, habrá que autorizar a Zypper para que cambie de repositorio.

1. Gestionar los repositorios

Los archivos de configuración de los repositorios Zypper se encuentran en el directorio /etc/zypp/repos.d y llevan el sufijo .repo.

El contenido de un archivo .repo se parece mucho al de un repositorio Yum, y también utiliza un alias.

Ejemplo

# cat repo-oss.repo  
[repo-oss]  
name=Repositorio principal  
enabled=1  
autorefresh=1  
baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/oss/ 
path=/  
type=rpm-md  
keeppackages=0 

La opción removerepo permite eliminar un repositorio; la opción mr permite modificarlo.

La opción clean vacía las cachés locales.

La opción refresh actualiza los repositorios.

Ejemplo

# zypper clean ; zypper refresh -f  
All repositories have been cleaned up.  
Forcing raw metadata refresh  
Retrieving repository 'Mozilla-repo' metadata ...................................[done] 
Forcing building of repository cache  
Building repository 'Mozilla-repo' cache ........................................[done] ...

Gestionar las librerías compartidas

Una librería compartida es un archivo que contiene un conjunto de funciones compiladas a las que puede acceder cualquier programa que las utilice. A diferencia de una librería estática, que se incluye en el ejecutable, una librería compartida se carga de forma independiente y sus funciones son accesibles dinámicamente por los programas que realizan la llamada.

El conjunto de funciones que ofrecen una o más librerías compartidas forma un API, Application Programming Interface.

Se establece un vínculo entre el programa y una librería compartida durante la generación del ejecutable; concretamente, cuando el editor de vínculos ld edita los vínculos.

Otra posibilidad para un programa consiste en utilizar la función C dlopen, que abre una librería dinámica como un archivo y accede a las funciones contenidas mediante punteros de funciones.

Si un programa depende de una librería compartida y esta está ausente, el programa no puede funcionar nunca más.

Las librerías compartidas se llaman Shared Objects (so) porque contienen los módulos de objetos (compilados) sin bloque de instrucción main. Los nombres de los archivos correspondientes llevan el sufijo .so.

Una librería puede disponer de varias versiones, que pueden ser o no compatibles, y se puede precisar la versión durante la edición de los vínculos. También es posible determinar una versión por defecto.

1. Lugar de almacenamiento

Las librerías compartidas se almacenan normalmente en directorios llamados lib, en particular:

  • /lib: librerías de sistema.

  • /lib64: librerías de sistema de 64 bits.

  • /lib32: librerías de sistema de 32 bits.

  • /usr/lib: librerías de usuario y sistema, no necesarias para el boot.

  • /usr/local/lib: librerías locales para los programas para la máquina.

  • Las librerías compartidas, por lo general, son muy numerosas.

Ejemplo

2147 archivos de librerías compartidas en /usr/lib para...

Validación de los conocimientos adquiridos: preguntas/respuestas

1. Preguntas

Si cree conocer suficientemente este capítulo, conteste a las siguientes preguntas:

Instalación

1 ¿Por qué es preferible configurar la red durante la instalación?

2 ¿Cuál es el método más sencillo para particionar el disco duro durante la instalación de Ubuntu?

3 Para un ordenador personal o un puesto de trabajo corporativo, ¿cuál es el particionado de disco más adaptado?

  • A - Una sola partición / que ocupa todo el espacio.

  • B - Particiones /, /usr, /var, /home, /boot.

  • C - Dos particiones: / y /home.

4 ¿Cuál es el sistema de archivos predeterminado para crear particiones?

5 ¿Qué partición añade automáticamente el programa de instalación?

6 ¿Cuál es el papel de la cuenta root?

7 ¿Por qué es recomendable crear al menos una cuenta de usuario además de la cuenta root?

8 A la hora de seleccionar los paquetes de software que se van a instalar, ¿qué debería hacer?

  • A - Instalar todo.

  • B - Instalar lo mínimo.

  • C - Instalar solo los componentes de software necesarios.

9 ¿Cuál es la función del administrador de arranque (o de inicio)?

Paquetes de software

10 ¿Qué es un paquete de software?

11 Las dependencias impiden la instalación de un paquete de software. Es necesario:

  • A - Forzar la instalación.

  • B - Abortar la instalación.

  • C - Instalar los paquetes de software de los que depende el paquete que se va a instalar.

  • D - Buscar otra versión del paquete de software.

RPM

12 Si tomamos un archivo RPM llamado ’bash-3.2-112.x86_64.rpm’, ¿cuáles de las siguientes afirmaciones son correctas?

  • A - Este paquete de software instala bash en la versión 3.2.

  • B - Este paquete de software se ejecuta en arquitecturas x86 de 64 bits.

  • C - Este paquete de software no se puede instalar en una versión de 32 bits de Linux.

  • D - Este paquete de software instala la versión 112 de bash.

13 ¿Cómo se desinstala un paquete de software RPM?

  • A - rpm -r

  • B - rpm -e

  • C - rpm -d

  • D - rpmdel

14 ¿Qué comando se utiliza para determinar a qué paquete de software pertenece el archivo /usr/bin/ksh?

15 ¿Cómo saber si un paquete de software está instalado, conociendo...

Prácticas

1. Esquema de partición

Esta práctica tiene como objetivo determinar el mejor esquema de partición posible, que es lo más difícil para un principiante. La práctica está pensada para todas las distribuciones. Dispone en su PC de un disco de 160 GB, de los cuales 40 están ocupados por otro sistema. Su máquina dispone de 2 GB de memoria RAM. Le quedan 120 GB de espacio en disco. ¿Cómo puede repartirlos sabiendo que quiere separar sus datos y el sistema?

1.

¿Qué tamaño debe tener la partición de intercambio (swap)?

2.

¿Qué espacio reservar a la partición de sistema /?

3.

¿Qué espacio reservar a la partición /home?

Soluciones posibles

El propósito de este laboratorio es determinar el esquema de particionamiento de un sistema Linux, independientemente de la distribución. El PC que se va a instalar tiene un disco de 120 GB y 2 GB de RAM. ¿Cómo particiona el disco, separando los datos del usuario de los archivos del sistema?

1.

¿Qué tamaño debe tener la partición de intercambio (swap)?

La partición de intercambio se utiliza cuando Linux ya no tiene suficiente espacio de RAM. Parte del contenido de la RAM se mueve a esta partición de intercambio para liberar temporalmente espacio en la memoria.

Su sistema tiene 2 GB de memoria, por lo que puede planificar una partición de intercambio de 2 GB.

2.

¿Qué espacio reservar a la partición de sistema /?

Esta partición contendrá los archivos del sistema y los componentes de software. Es recomendable reservar un espacio suficiente, que dependerá de las aplicaciones que se vayan a configurar. 50 GB es un espacio razonable.

3.

¿Qué espacio reservar a la partición /home?

La partición contendrá los datos del usuario. Puede asignar el espacio en disco restante, que son 68 GB. Esto hace que el disco esté completamente particionado.

2. Gestión de los RPM y YUM

El propósito de esta práctica es trabajar en la base RPM de los paquetes de software ya instalados en su sistema e instalar otros nuevos. El sistema debe tener una distribución basada en RPM que admita Yum: Red Hat, CentOS, Fedora.

1.

Determine el número de paquetes de software RPM instalados actualmente en su puesto de trabajo....