Linux Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Roadmap
    • Contáctenos
  • LPI.org
102.5 Lección 1
Tema 101: Arquitectura del Sistema
101.1 Determinar y configurar los ajustes de hardware
  • 101.1 Lección 1
101.2 Arranque del sistema
  • 101.2 Lección 1
101.3 Cambiar los niveles de ejecución / objetivos de arranque y apagar o reiniciar el sistema
  • 101.3 Lección 1
Tema 102: Instalación de Linux y gestión de paquetes
102.1 Diseño del esquema de particionado del disco duro duro
  • 102.1 Lección 1
102.2 Instalar un gestor de arranque
  • 102.2 Lección 1
102.3 Gestión de librerías compartidas
  • 102.3 Lección 1
102.4 Gestión de paquetes Debian
  • 102.4 Lección 1
102.5 Gestión de paquetes RPM y YUM
  • 102.5 Lección 1
102.6 Linux como sistema virtualizado
  • 102.6 Lección 1
Tema 103: Comandos GNU y Unix
103.1 Trabajar desde la línea de comandos
  • 103.1 Lección 1
  • 103.1 Lección 2
103.2 Procesar secuencias de texto usando filtros
  • 103.2 Lección 1
103.3 Administración básica de archivos
  • 103.3 Lección 1
  • 103.3 Lección 2
103.4 Uso de secuencias de texto, tuberías y redireccionamientos
  • 103.4 Lección 1
  • 103.4 Lección 2
103.5 Crear, supervisar y matar procesos
  • 103.5 Lección 1
  • 103.5 Lección 2
103.6 Modificar la prioridad de ejecución de los procesos
  • 103.6 Lección 1
103.7 Realizar búsquedas en archivos de texto usando expresiones regulares
  • 103.7 Lección 1
  • 103.7 Lección 2
103.8 Edición básica de archivos
  • 103.8 Lección 1
Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
104.1 Creación de particiones y sistemas de archivos
  • 104.1 Lección 1
104.2 Mantener la integridad de los sistemas de archivos
  • 104.2 Lección 1
104.3 Controlar el montaje y desmontaje de los sistemas de archivos
  • 104.3 Lección 1
104.5 Administración de los permisos y los propietarios de los archivos
  • 104.5 Lección 1
104.6 Crear y cambiar enlaces duros y simbólicos
  • 104.6 Lección 1
104.7 Encontrar archivos de sistema y ubicar archivos en el lugar correspondiente
  • 104.7 Lección 1
How to get certified
  1. Tema 102: Instalación de Linux y gestión de paquetes
  2. 102.5 Gestión de paquetes RPM y YUM
  3. 102.5 Lección 1

102.5 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

102 Instalación de Linux y Administración de Paquetes

Objetivo:

102.5 Uso y gestión de paquetes con RPM y YUM

Lección:

1 de 1

Introducción

Hace mucho tiempo, cuando Linux todavía estaba en su infancia, la forma más común de distribuir software era a través de archivos comprimidos (generalmente como archivos .tar.gz) con código fuente, que desempaquetaría y compilaría usted mismo.

Sin embargo, a medida que crecía la cantidad y la complejidad del software, se hizo evidente la necesidad de una forma de distribuir el software precompilado. Después de todo, no todos tenían los recursos, tanto en tiempo como en potencia informática, para compilar grandes proyectos como el núcleo (Kernel) de Linux o un servidor X.

Pronto, crecieron los esfuerzos para estandarizar una forma de distribuir estos “paquetes” de software, y nacieron los primeros administradores de paquetes. Estas herramientas facilitaron mucho la instalación, configuración o eliminación de software de un sistema.

Uno de ellos fue el RPM Package Manager y su herramienta correspondiente (rpm), desarrollada por Red Hat. Hoy en día, se usan ampliamente no solo en Red Hat Enterprise Linux (RHEL), sino también en sus descendientes, como Fedora, CentOS y Oracle Linux, otras distribuciones como openSUSE e incluso otros sistemas operativos, como AIX de IBM.

Otras herramientas de administración de paquetes populares en las distribuciones compatibles con Red Hat son yum (YellowDog Updater Modified), dnf (Dandified YUM) y zypper, que pueden simplificar muchos de los aspectos de la instalación, mantenimiento y eliminación de paquetes, haciendo que gestión de paquetes mucho más fácil.

En esta lección, aprenderemos cómo usar rpm, yum, dnf y zypper para obtener, instalar, administrar y eliminar software en un sistema Linux.

Note

A pesar de usar el mismo formato de paquete, existen diferencias internas entre las distribuciones, por lo que un paquete hecho específicamente para openSUSE podría no funcionar en un sistema RHEL, y viceversa. Cuando busque paquetes, siempre verifique la compatibilidad e intente encontrar uno adaptado a su distribución específica.

El gestor de paquetes RPM (rpm)

El gestor de paquetes RPM (rpm) es la herramienta esencial para administrar paquetes de software en sistemas basados en Red Hat (o derivados).

Instalar, Actualizar y Eliminar Paquetes

La operación más básica es instalar un paquete, que se puede hacer con:

# rpm -i PACKAGENAME

Donde PACKAGENAME es el nombre del paquete .rpm que desea instalar. Si hay una versión anterior de un paquete en el sistema, puede actualizar a una versión más nueva utilizando el parámetro -U:

# rpm -U PACKAGENAME

Si no hay instalada una versión anterior de PACKAGENAME, se instalará una copia nueva. Para evitar esto y solo actualizar un paquete instalado, use la opción -F.

En ambas operaciones, puede agregar el parámetro -v para obtener una salida detallada (se muestra más información durante la instalación) y -h para obtener signos hash (#) impresos como una ayuda visual para rastrear el progreso de la instalación. Se pueden combinar varios parámetros en uno, por lo que rpm -i -v -h es lo mismo que rpm -ivh.

Para eliminar un paquete instalado, pase el parámetro -e (como en “erase”) a rpm, seguido del nombre del paquete que desea eliminar:

# rpm -e wget

Si un paquete instalado depende del paquete que se está eliminando, recibirá un mensaje de error:

# rpm -e unzip
error: Failed dependencies:
	/usr/bin/unzip is needed by (installed) file-roller-3.28.1-2.el7.x86_64

Para completar la operación, primero deberá eliminar los paquetes que dependen del que desea eliminar (en el ejemplo anterior, file-roller). Puede pasar varios nombres a rpm -e para eliminar varios paquetes a la vez.

Manejo de dependencias

La mayoría de las veces, un paquete puede depender de otros para que funcione según lo previsto. Por ejemplo, un editor de imágenes puede necesitar bibliotecas para abrir archivos JPG, o una utilidad puede necesitar un kit de herramientas de widgets como Qt o GTK para su interfaz de usuario.

rpm verificará si esas dependencias están instaladas en su sistema y no podrá instalar el paquete si no lo están. En este caso, rpm listará lo que falta. Sin embargo, no puede resolver dependencias por sí mismo.

En el ejemplo a continuación, el usuario intentó instalar un paquete para el editor de imágenes GIMP, pero faltaban algunas dependencias:

# rpm -i gimp-2.8.22-1.el7.x86_64.rpm
error: Failed dependencies:
	babl(x86-64) >= 0.1.10 is needed by gimp-2:2.8.22-1.el7.x86_64
	gegl(x86-64) >= 0.2.0 is needed by gimp-2:2.8.22-1.el7.x86_64
	gimp-libs(x86-64) = 2:2.8.22-1.el7 is needed by gimp-2:2.8.22-1.el7.x86_64
	libbabl-0.1.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgegl-0.2.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimp-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpbase-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpcolor-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpconfig-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpmath-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpmodule-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpthumb-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpui-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpwidgets-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libmng.so.1()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libwmf-0.2.so.7()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libwmflite-0.2.so.7()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64

Depende del usuario encontrar los paquetes .rpm con las dependencias correspondientes e instalarlos. Los administradores de paquetes como yum, zypper y dnf tienen herramientas que pueden indicar qué paquete proporciona un archivo específico. Esos serán discutidos más adelante en esta lección.

Listar paquetes instalados

Para obtener una lista de todos los paquetes instalados en su sistema, use el rpm -qa (piense en “query all”).

# rpm -qa
selinux-policy-3.13.1-229.el7.noarch
pciutils-libs-3.5.1-3.el7.x86_64
redhat-menus-12.0.2-8.el7.noarch
grubby-8.28-25.el7.x86_64
hunspell-en-0.20121024-6.el7.noarch
dejavu-fonts-common-2.33-6.el7.noarch
xorg-x11-drv-dummy-0.3.7-1.el7.1.x86_64
libevdev-1.5.6-1.el7.x86_64
[...]

Obtener Información de Paquetes

Para obtener información sobre un paquete instalado, como su número de versión, arquitectura, fecha de instalación, empaquetador, resumen, etc., use rpm con los parámetros -qi (piense en “query info”), seguido de el nombre del paquete. Por ejemplo:

# rpm -qi unzip
Name        : unzip
Version     : 6.0
Release     : 19.el7
Architecture: x86_64
Install Date: Sun 25 Aug 2019 05:14:39 PM EDT
Group       : Applications/Archiving
Size        : 373986
License     : BSD
Signature   : RSA/SHA256, Wed 25 Apr 2018 07:50:02 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : unzip-6.0-19.el7.src.rpm
Build Date  : Wed 11 Apr 2018 01:24:53 AM EDT
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.info-zip.org/UnZip.html
Summary     : A utility for unpacking zip files
Description :
The unzip utility is used to list, test, or extract files from a zip
archive. Zip archives are commonly found on MS-DOS systems. The zip
utility, included in the zip package, creates zip archives. Zip and
unzip are both compatible with archives created by PKWARE(R)'s PKZIP
for MS-DOS, but the programs' options and default behaviors do differ
in some respects.

Instale el paquete unzip si necesita enumerar, probar o extraer archivos de un archivo zip.

Para obtener una lista de los archivos que están dentro de un paquete instalado, use los parámetros -ql (piense en “query list”) seguido del nombre del paquete:

# rpm -ql unzip
/usr/bin/funzip
/usr/bin/unzip
/usr/bin/unzipsfx
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/share/doc/unzip-6.0
/usr/share/doc/unzip-6.0/BUGS
/usr/share/doc/unzip-6.0/LICENSE
/usr/share/doc/unzip-6.0/README
/usr/share/man/man1/funzip.1.gz
/usr/share/man/man1/unzip.1.gz
/usr/share/man/man1/unzipsfx.1.gz
/usr/share/man/man1/zipgrep.1.gz
/usr/share/man/man1/zipinfo.1.gz

Si desea obtener información o una lista de archivos de un paquete que aún no se ha instalado, simplemente agregue el parámetro -p a los comandos anteriores, seguido del nombre del archivo RPM (FILENAME). Entonces, rpm -qi PACKAGENAME se convierte en rpm -qip FILENAME, y rpm -ql PACKAGENAME se convierte en rpm -qlp FILENAME, como se muestra a continuación.

# rpm -qip atom.x86_64.rpm
Name        : atom
Version     : 1.40.0
Release     : 0.1
Architecture: x86_64
Install Date: (not installed)
Group       : Unspecified
Size        : 570783704
License     : MIT
Signature   : (none)
Source RPM  : atom-1.40.0-0.1.src.rpm
Build Date  : sex 09 ago 2019 12:36:31 -03
Build Host  : b01bbeaf3a88
Relocations : /usr
URL         : https://atom.io/
Summary     : A hackable text editor for the 21st Century.
Description :
A hackable text editor for the 21st Century.
# rpm -qlp atom.x86_64.rpm
/usr/bin/apm
/usr/bin/atom
/usr/share/applications/atom.desktop
/usr/share/atom
/usr/share/atom/LICENSE
/usr/share/atom/LICENSES.chromium.html
/usr/share/atom/atom
/usr/share/atom/atom.png
/usr/share/atom/blink_image_resources_200_percent.pak
/usr/share/atom/content_resources_200_percent.pak
/usr/share/atom/content_shell.pak

(listing goes on)

Averiguar qué paquete posee un archivo específico

Para averiguar qué archivo posee un paquete instalado, use el -qf (piense en “query file”) seguido de la ruta completa al archivo:

# rpm -qf /usr/bin/unzip
unzip-6.0-19.el7.x86_64

En el ejemplo anterior, el archivo /usr/bin/unzip pertenece al paquete unzip-6.0-19.el7.x86_64.

YellowDog Updater Modificado (YUM)

yum se desarrolló originalmente como Yellow Dog Updater (YUP), una herramienta para la gestión de paquetes en la distribución de Yellow Dog Linux. Con el tiempo, evolucionó para administrar paquetes en otros sistemas basados en RPM, como Fedora, CentOS, Red Hat Enterprise Linux y Oracle Linux.

Funcionalmente, es similar a la utilidad apt en los sistemas basados en Debian, pudiendo buscar, instalar, actualizar y eliminar paquetes y manejar automáticamente las dependencias. yum se puede usar para instalar un solo paquete o para actualizar un sistema completo a la vez.

Buscar Paquetes

Para instalar un paquete, necesita saber su nombre. Para esto, puede realizar una búsqueda con yum search PATTERN, donde PATTERN es el nombre del paquete que está buscando. El resultado es una lista de paquetes cuyos nombres o resúmenes contienen el patrón de búsqueda especificado. Por ejemplo, si necesita una utilidad para manejar archivos comprimidos de 7Zip (con la extensión .7z) puede usar:

# yum search 7zip
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
=========================== N/S matchyutr54ed: 7zip ============================
p7zip-plugins.x86_64 : Additional plugins for p7zip
p7zip.x86_64 : Very high compression ratio file archiver
p7zip-doc.noarch : Manual documentation and contrib directory
p7zip-gui.x86_64 : 7zG - 7-Zip GUI version

  Name and summary matches only, use "search all" for everything.

Instalar, Actualizar y Eliminar Paquetes

Para instalar un paquete usando yum, use el comando yum install PACKAGENAME, donde PACKAGENAME es el nombre del paquete. yum buscará el paquete y las dependencias correspondientes de un repositorio en línea e instalará todo en su sistema.

# yum install p7zip
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
Resolving Dependencies
--> Running transaction check
---> Package p7zip.x86_64 0:16.02-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package        Arch            Version               Repository     Size
==========================================================================
Installing:
 p7zip          x86_64          16.02-10.el7          epel          604 k

Transaction Summary
==========================================================================
Install  1 Package

Total download size: 604 k
Installed size: 1.7 M
Is this ok [y/d/N]:

Para actualizar un paquete instalado, use yum update PACKAGENAME, donde PACKAGENAME es el nombre del paquete que desea actualizar. Por ejemplo:

# yum update wget
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7 will be updated
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package     Arch          Version                   Repository      Size
==========================================================================
Updating:
 wget        x86_64        1.14-18.el7_6.1           updates        547 k

Transaction Summary
==========================================================================
Upgrade  1 Package

Total download size: 547 k
Is this ok [y/d/N]:

Si omite el nombre de un paquete, puede actualizar cada paquete en el sistema si existen actualizaciones disponibles.

Para verificar si hay una actualización disponible para un paquete específico, use yum check-update PACKAGENAME. Como antes, si omite el nombre del paquete, yum buscará actualizaciones para cada paquete instalado en el sistema.

Para eliminar un paquete instalado, use yum remove PACKAGENAME, donde PACKAGENAME es el nombre del paquete que desea eliminar.

Encontrar qué paquete proporciona un archivo específico

En un ejemplo anterior mostramos un intento de instalar el editor de imágenes gimp, que falló debido a dependencias insatisfechas. Sin embargo, rpm muestra qué archivos faltan, pero no lista el nombre de los paquetes que los proporcionan.

Por ejemplo, una de las dependencias que faltaba era libgimpui-2.0.so.0. Para ver qué paquete lo proporciona, puede usar yum whatprovides, seguido del nombre del archivo que está buscando:

# yum whatprovides libgimpui-2.0.so.0
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
2:gimp-libs-2.8.22-1.el7.i686 : GIMP libraries
Repo        : base
Matched from:
Provides    : libgimpui-2.0.so.0

La respuesta es gimp-libs-2.8.22-1.el7.i686. Luego puede instalar el paquete con el comando yum install gimp-libs.

Esto también funciona para archivos que ya están en su sistema. Por ejemplo, si desea saber de dónde proviene el archivo /etc/hosts, puede usar:

# yum whatprovides /etc/hosts
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
setup-2.8.71-10.el7.noarch : A set of system configuration and setup files
Repo        : base
Matched from:
Filename    : /etc/hosts

La respuesta es setup-2.8.71-10.el7.noarch.

Obtener información sobre un paquete

Para obtener información sobre un paquete, como su versión, arquitectura, descripción, tamaño y más, use yum info PACKAGENAME donde PACKAGENAME es el nombre del paquete para el que desea información:

# yum info firefox
Last metadata expiration check: 0:24:16 ago on Sat 21 Sep 2019 02:39:43 PM -03.
Installed Packages
Name         : firefox
Version      : 69.0.1
Release      : 3.fc30
Architecture : x86_64
Size         : 268 M
Source       : firefox-69.0.1-3.fc30.src.rpm
Repository   : @System
From repo    : updates
Summary      : Mozilla Firefox Web browser
URL          : https://www.mozilla.org/firefox/
License      : MPLv1.1 or GPLv2+ or LGPLv2+
Description  : Mozilla Firefox is an open-source web browser, designed
             : for standards compliance, performance and portability.

Gestión de repositorios de software

Para yum, los “repos” se enumeran en el directorio /etc/yum.repos.d/. Cada repositorio está representado por un archivo .repo, como CentOS-Base.repo.

El usuario puede agregar repositorios adicionales agregando un archivo .repo en el directorio mencionado anteriormente, o al final de /etc/yum.conf. Sin embargo, la forma recomendada de agregar o administrar repositorios es con la herramienta yum-config-manager.

Para agregar un repositorio, use el parámetro --add-repo, seguido de la URL a un archivo .repo.

# yum-config-manager --add-repo https://rpms.remirepo.net/enterprise/remi.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://rpms.remirepo.net/enterprise/remi.repo
grabbing file https://rpms.remirepo.net/enterprise/remi.repo to /etc/yum.repos.d/remi.repo
repo saved to /etc/yum.repos.d/remi.repo

Para obtener una lista de todos los repositorios disponibles, use yum repolist all. Obtendrá una salida similar a esta:

# yum repolist all
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
repo id                       repo name                    status
updates/7/x86_64              CentOS-7 - Updates           enabled:  2,500
updates-source/7              CentOS-7 - Updates Sources   disabled

Los repositorios disabled serán ignorados al instalar o actualizar el software. Para habilitar o deshabilitar un repositorio, use la utilidad yum-config-manager, seguido de la identificación del repositorio.

En el resultado anterior, la identificación del repositorio se muestra en la primera columna (repo id) de cada línea. Utilice solo la parte anterior a la primera /, por lo que la identificación para el repositorio CentOS-7 - Updates es updates, y no updates/7/x86_64.

# yum-config-manager --disable updates

El comando anterior deshabilitará el repositorio updates. Para volver a habilitarlo use:

# yum-config-manager --enable updates
Note

Yum almacena los paquetes descargados y los metadatos asociados en un directorio de caché (generalmente /var/cache/yum). A medida que el sistema se actualiza y se instalan nuevos paquetes, esta caché puede ser bastante grande. Para limpiar la caché y recuperar espacio en el disco, puede usar el comando yum clean, seguido de qué limpiar. Los parámetros más útiles son packages (yum clean packages) para eliminar los paquetes descargados y metadata (yum clean metadata) para eliminar los metadatos asociados. Consulte la página del manual para yum (teclee man yum) para obtener más información.

DNF

dnf es la herramienta de administración de paquetes utilizada en Fedora, y es una bifurcación de yum. Como tal, muchos de los comandos y parámetros son similares. Esta sección le dará solo una descripción rápida de dnf.

Buscar paquetes

dnf search PATTERN, donde PATTERN es lo que está buscando. Por ejemplo, dnf search unzip mostrará todos los paquetes que contienen la palabra unzip en el nombre o la descripción.

Obtener información de un paquete

dnf info PACKAGENAME

Instalar paquetes

dnf install PACKAGENAME, donde PACKAGENAME es el nombre del paquete que desea instalar. Puede encontrar el nombre realizando una búsqueda.

Eliminar paquetes

dnf remove PACKAGENAME

Actualizar paquetes

dnf upgrade PACKAGENAME para actualizar solo un paquete. Omita el nombre del paquete para actualizar todos los paquetes en el sistema.

Encontrar qué paquete proporciona un archivo específico

dnf provides FILENAME

Obtener una lista de todos los paquetes instalados en el sistema

dnf list --installed

Listar el contenido de un paquete

dnf repoquery -l PACKAGENAME

Note

dnf tiene un sistema de ayuda incorporado, que muestra más información (como parámetros adicionales) para cada comando. Para usarlo, escriba dnf help seguido del comando, como dnf help install.

Gestión de repositorios de software

Al igual que con yum y zypper, dnf funciona con repositorios de software (repos). Cada distribución tiene una lista de repositorios predeterminados, y los administradores pueden agregar o eliminar repositorios según sea necesario.

Para obtener una lista de todos los repositorios disponibles, use dnf repolist. Para listar solo los repositorios habilitados, agregue la opción --enabled, y para listar solo los repositorios deshabilitados, agregue la opción --disabled.

# dnf repolist
Last metadata expiration check: 0:20:09 ago on Sat 21 Sep 2019 02:39:43 PM -03.
repo id                    repo name                                      status
*fedora                    Fedora 30 - x86_64                             56,582
*fedora-modular            Fedora Modular 30 - x86_64                        135
*updates                   Fedora 30 - x86_64 - Updates                   12,774
*updates-modular           Fedora Modular 30 - x86_64 - Updates              145

Para agregar un repositorio, use dnf config-manager --add-repo URL, donde URL es la URL completa del repositorio. Para habilitar un repositorio, use dnf config-manager --set-enabled REPO_ID.

Del mismo modo, para deshabilitar un repositorio use dnf config-manager --set-disabled REPO_ID. En ambos casos, REPO_ID es la ID única para el repositorio, que puede obtener usando dnf repolist. Los repositorios agregados están habilitados por defecto.

Los repositorios se almacenan en archivos .repo en el directorio /etc/yum.repos.d/, con exactamente la misma sintaxis utilizada para yum.

Zypper

zypper es la herramienta de gestión de paquetes utilizada en SUSE Linux y OpenSUSE. En cuanto a las características, es similar a apt y yum, pudiendo instalar, actualizar y eliminar paquetes de un sistema, con resolución de dependencias automatizada.

Actualización de los Índices de Paquetes

Al igual que otras herramientas de administración de paquetes, zypper funciona con repositorios que contienen paquetes y metadatos. Estos metadatos deben actualizarse de vez en cuando, para que la utilidad conozca los últimos paquetes disponibles. Para hacer una actualización, simplemente utilice el siguiente commando:

# zypper refresh
Repository 'Non-OSS Repository' is up to date.
Repository 'Main Repository' is up to date.
Repository 'Main Update Repository' is up to date.
Repository 'Update Repository (Non-Oss)' is up to date.
All repositories have been refreshed.

zypper tiene una función de actualización automática que se puede habilitar por repositorio, lo que significa que algunos repositorios pueden actualizarse automáticamente antes de una consulta o instalación del paquete, y otros pueden necesitar actualizarse manualmente. Aprenderá a controlar esta función en breve.

Buscar Paquetes

Para buscar un paquete, use el operador search (o se), seguido del nombre del paquete:

# zypper se gnumeric
Loading repository data...
Reading installed packages...

S | Name           | Summary                           | Type
--+----------------+-----------------------------------+--------
  | gnumeric       | Spreadsheet Application           | package
  | gnumeric-devel | Spreadsheet Application           | package
  | gnumeric-doc   | Documentation files for Gnumeric  | package
  | gnumeric-lang  | Translations for package gnumeric | package

El operador de búsqueda también se puede utilizar para obtener una lista de todos los paquetes instalados en el sistema. Para hacerlo, use el parámetro -i sin un nombre de paquete, como en zypper se -i.

Para ver si está instalado un paquete específico, agregue el nombre del paquete al comando anterior. Por ejemplo, el siguiente comando buscará entre los paquetes instalados cualquier contenido que contenga “firefox” en el nombre:

# zypper se -i firefox
Loading repository data...
Reading installed packages...

S | Name                               | Summary                 | Type
--+------------------------------------+-------------------------+--------
i | MozillaFirefox                     | Mozilla Firefox Web B-> | package
i | MozillaFirefox-branding-openSUSE   | openSUSE branding of -> | package
i | MozillaFirefox-translations-common | Common translations f-> | package

Para buscar solo entre paquetes no-instalados, agregue el parámetro -u al operador se.

Instalar, Actualizar y Eliminar Paquetes

Para instalar un paquete de software, use el operador install (o in), seguido del nombre del paquete. Al igual que:

# zypper in unrar
zypper in unrar
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  unrar

1 new package to install.
Overall download size: 141.2 KiB. Already cached: 0 B. After the operation, additional 301.6 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package unrar-5.7.5-lp151.1.1.x86_64
                                     (1/1), 141.2 KiB (301.6 KiB unpacked)
Retrieving: unrar-5.7.5-lp151.1.1.x86_64.rpm .......................[done]
Checking for file conflicts: .......................................[done]
(1/1) Installing: unrar-5.7.5-lp151.1.1.x86_64 .....................[done]

zypper también se puede usar para instalar un paquete RPM en disco, mientras se intenta satisfacer sus dependencias usando paquetes de los repositorios. Para hacerlo, solo proporcione la ruta completa al paquete en lugar del nombre del paquete, como zypper in /home/john/newpackage.rpm.

Para actualizar los paquetes instalados en el sistema, use zypper update. Al igual que en el proceso de instalación, esto mostrará una lista de paquetes para instalar/actualizar antes de preguntar si desea continuar.

Si solo desea listar las actualizaciones disponibles, sin instalar nada, puede usar zypper list-updates.

Para eliminar un paquete, use el operador remove (o rm), seguido del nombre del paquete:

# zypper rm unrar
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
  unrar

1 package to remove.
After the operation, 301.6 KiB will be freed.
Continue? [y/n/v/...? shows all options] (y): y
(1/1) Removing unrar-5.7.5-lp151.1.1.x86_64 ........................[done]

Tenga en cuenta que eliminar un paquete también elimina cualquier otro paquete que dependa de él. Por ejemplo:

# zypper rm libgimp-2_0-0
Loading repository data...
Warning: No repositories defined. Operating only with the installed resolvables. Nothing can be installed.
Reading installed packages...
Resolving package dependencies...

The following 6 packages are going to be REMOVED:
  gimp gimp-help gimp-lang gimp-plugins-python libgimp-2_0-0
  libgimpui-2_0-0

6 packages to remove.
After the operation, 98.0 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y):

Encontrar qué paquete proporciona un archivo específico

Para ver qué paquetes contiene un archivo específico, use el operador de búsqueda seguido del parámetro --provides y el nombre del archivo (o la ruta completa). Por ejemplo, si desea saber qué paquetes contienen el archivo libgimpmodule-2.0.so.0 en /usr/lib64/ use:

# zypper se --provides /usr/lib64/libgimpmodule-2.0.so.0
Loading repository data...
Reading installed packages...

S | Name          | Summary                                      | Type
--+---------------+----------------------------------------------+--------
i | libgimp-2_0-0 | The GNU Image Manipulation Program - Libra-> | package

Obtener Información de Paquetes

Para ver los metadatos asociados con un paquete, use el operador info seguido del nombre del paquete. Esto le proporcionará el repositorio de origen, el nombre del paquete, la versión, la arquitectura, el proveedor, el tamaño instalado, si está instalado o no, el estado (si está actualizado), el paquete fuente y una descripción.

# zypper info gimp
Loading repository data...
Reading installed packages...

Information for package gimp:
 -----------------------------
Repository     : Main Repository
Name           : gimp
Version        : 2.8.22-lp151.4.6
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 29.1 MiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : gimp-2.8.22-lp151.4.6.src
Summary        : The GNU Image Manipulation Program
Description    :
    The GIMP is an image composition and editing program, which can be
    used for creating logos and other graphics for Web pages. The GIMP
    offers many tools and filters, and provides a large image
    manipulation toolbox, including channel operations and layers,
    effects, subpixel imaging and antialiasing, and conversions, together
    with multilevel undo. The GIMP offers a scripting facility, but many
    of the included scripts rely on fonts that we cannot distribute.

Gestión de repositorios de software

zypper también se puede usar para administrar repositorios de software. Para ver una lista de todos los repositorios actualmente registrados en su sistema, use zypper repos:

# zypper repos
Repository priorities are without effect. All enabled repositories share the same priority.

#  | Alias                     | Name                               | Enabled | GPG Check | Refresh
---+---------------------------+------------------------------------+---------+-----------+--------
 1 | openSUSE-Leap-15.1-1      | openSUSE-Leap-15.1-1               | No      | ----      | ----
 2 | repo-debug                | Debug Repository                   | No      | ----      | ----
 3 | repo-debug-non-oss        | Debug Repository (Non-OSS)         | No      | ----      | ----
 4 | repo-debug-update         | Update Repository (Debug)          | No      | ----      | ----
 5 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | No      | ----      | ----
 6 | repo-non-oss              | Non-OSS Repository                 | Yes     | (r ) Yes  | Yes
 7 | repo-oss                  | Main Repository                    | Yes     | (r ) Yes  | Yes
 8 | repo-source               | Source Repository                  | No      | ----      | ----
 9 | repo-source-non-oss       | Source Repository (Non-OSS)        | No      | ----      | ----
10 | repo-update               | Main Update Repository             | Yes     | (r ) Yes  | Yes
11 | repo-update-non-oss       | Update Repository (Non-Oss)        | Yes     | (r ) Yes  | Yes

En la columna Enabled se puede verificar que algunos repositorios están habilitados, mientras que otros no. Puede cambiar esto con el operador modifyrepo, seguido del parámetro -e (habilitar) o -d (deshabilitar) y el alias del repositorio (la segunda columna en la salida anterior).

# zypper modifyrepo -d repo-non-oss
Repository 'repo-non-oss' has been successfully disabled.

# zypper modifyrepo -e repo-non-oss
Repository 'repo-non-oss' has been successfully enabled.

Anteriormente mencionamos que zypper tiene la capacidad de actualización automática que se puede habilitar por repositorio. Cuando está habilitado, este indicador hará que zypper ejecute una operación de actualización (lo mismo que ejecutar zypper refresh) antes de trabajar con el repositorio especificado. Esto se puede controlar con los parámetros -f y -F del operador modifyrepo:

# zypper modifyrepo -F repo-non-oss
Autorefresh has been disabled for repository 'repo-non-oss'.

# zypper modifyrepo -f repo-non-oss
Autorefresh has been enabled for repository 'repo-non-oss'.
Agregar y quitar repositorios

Para agregar un nuevo repositorio de software para zypper, use el operador addrepo seguido de la URL del repositorio y el nombre del repositorio, como se muestra a continuación:

# zypper addrepo http://packman.inode.at/suse/openSUSE_Leap_15.1/ packman
Adding repository 'packman' ........................................[done]
Repository 'packman' successfully added

URI         : http://packman.inode.at/suse/openSUSE_Leap_15.1/
Enabled     : Yes
GPG Check   : Yes
Autorefresh : No
Priority    : 99 (default priority)

Repository priorities are without effect. All enabled repositories share the same priority.

Al agregar un repositorio, puede habilitar las actualizaciones automáticas con el parámetro -f. Los repositorios agregados están habilitados de manera predeterminada, pero puede agregar y deshabilitar un repositorio al mismo tiempo utilizando el parámetro -d.

Para eliminar un repositorio, use el operador removerepo, seguido del nombre del repositorio (Alias). Para eliminar el repositorio agregado en el ejemplo anterior, el comando sería:

# zypper removerepo packman
Removing repository 'packman' ......................................[done]
Repository 'packman' has been removed.

Ejercicios Guiados

  1. Usando rpm en un sistema Red Hat Enterprise Linux, ¿cómo instalaría el paquete file-roller-3.28.1-2.el7.x86_64.rpm mostrando una barra de progreso durante la instalación?

  2. Usando rpm, descubra qué paquete contiene el archivo /etc/redhat-release.

  3. ¿Cómo usaría yum para buscar actualizaciones para todos los paquetes en el sistema?

  4. Usando zypper, ¿cómo deshabilitaría un repositorio llamado repo-extras?

  5. Si tiene un archivo .repo que describe un nuevo repositorio, ¿dónde se debe colocar este archivo para que DNF lo reconozca?

Ejercicios Exploratorios

  1. ¿Cómo usaría zypper para averiguar qué paquete posee el archivo /usr/sbin/swapon?

  2. ¿Cómo puede obtener una lista de todos los paquetes instalados en el sistema usando dnf?

  3. Usando dnf, ¿cuál es el comando para agregar un repositorio ubicado en https://www.example.url/home:reponame.repo al sistema?

  4. ¿Cómo puede usar zypper para verificar si el paquete unzip está instalado?

  5. Usando yum, descubra qué paquete proporciona el archivo /bin/wget.

Resumen

En esta lección aprendimos:

  • ¿Cómo usar rpm para instalar, actualizar y eliminar paquetes?

  • ¿Cómo usar yum, zypper y dnf?

  • ¿Cómo obtener información sobre un paquete?

  • ¿Cómo obtener una lista de los contenidos de un paquete?

  • ¿Cómo averiguar de qué paquete proviene un archivo?

  • ¿Cómo listar, agregar, eliminar, habilitar o deshabilitar repositorios de software?

Los siguientes comandos se discutieron en esta lección:

  • rpm

  • yum

  • dnf

  • zypper

Respuestas a los ejercicios guiados

  1. Usando rpm en un sistema Red Hat Enterprise Linux, ¿cómo instalaría el paquete file-roller-3.28.1-2.el7.x86_64.rpm mostrando una barra de progreso durante la instalación?

    Use el parámetro -i para instalar un paquete y la opción -h para habilitar las “hash marks” que muestran el progreso de la instalación. Entonces, la respuesta es: rpm -ih file-roller-3.28.1-2.el7.x86_64.rpm.

  2. Usando rpm, descubra qué paquete contiene el archivo /etc/redhat-release.

    Para consultar información sobre un archivo use el parámetro -qf: rpm -qf /etc/redhat-release.

  3. ¿Cómo usaría yum para buscar actualizaciones para todos los paquetes en el sistema?

    Utilice la operación check-update sin un nombre de paquete: yum check-update.

  4. Usando zypper, ¿cómo deshabilitaría un repositorio llamado repo-extras?

    Use la operación modifyrepo para cambiar los parámetros de un repositorio, y el parámetro -d para deshabilitarlo: zypper modifyrepo -d repo-extras.

  5. Si tiene un archivo .repo que describe un nuevo repositorio, ¿dónde se debe colocar este archivo para que DNF lo reconozca?

    Los archivos .repo para DNF deben colocarse en el mismo lugar utilizado por YUM, dentro de /etc/yum.repos.d/.

Respuestas a ejercicios exploratorios

  1. ¿Cómo usarías zypper para averiguar qué paquete posee el archivo /usr/sbin/swapon?

    Utilice el operador se (search) y el parámetro --provides: zypper se --provides /usr/sbin/swapon.

  2. ¿Cómo puede obtener una lista de todos los paquetes instalados en el sistema usando dnf?

    Utilice el operador list, seguido del parámetro --installed: dnf list --installed.

  3. Usando dnf, ¿cuál es el comando para agregar un repositorio ubicado en https://www.example.url/home:reponame.repo al sistema?

    Trabajar con repositorios es un “configuration change”, así que utilice el parámetro config-manager y el parámetro --add_repo: dnf config-manager --add_repo https://www.example.url/home:reponame.repo.

  4. ¿Cómo puede usar 'zypper' para verificar si el paquete 'unzip' está instalado?

    Debe hacer una búsqueda (se) en los paquetes instalados (-i): zypper se -i unzip.

  5. Usando yum, descubra qué paquete proporciona el archivo /bin/wget.

    Para averiguar qué paquete proporciona un archivo, use whatprovides y el nombre del archivo: yum whatprovides /bin/wget.

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

102.6 Linux como sistema virtualizado (102.6 Lección 1)

Leer la próxima lección

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

© 2023 Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© 1999–2023 The Linux Professional Institute Inc. Todos los derechos reservados.