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 .rpm (YUM, dnf) |
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 de Linux (Kernel) 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é paquete instalado
posee un archivo determinado, use el -qf
(piense en “query file”) seguido de la
ruta completa al archivo que busca:
# 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 |
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
, dondePATTERN
es lo que está buscando. Por ejemplo,dnf search unzip
mostrará todos los paquetes que contienen la palabraunzip
en el nombre o la descripción. - Obtener información de un paquete
-
dnf info PACKAGENAME
- Instalar paquetes
-
dnf install PACKAGENAME
, dondePACKAGENAME
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
|
|
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
-
Usando
rpm
en un sistema Red Hat Enterprise Linux, ¿cómo instalaría el paquetefile-roller-3.28.1-2.el7.x86_64.rpm
mostrando una barra de progreso durante la instalación?
-
Usando
rpm
, descubra qué paquete contiene el archivo/etc/redhat-release
.
-
¿Cómo usaría
yum
para buscar actualizaciones para todos los paquetes en el sistema?
-
Usando
zypper
, ¿cómo deshabilitaría un repositorio llamado repo-extras?
-
Si tiene un archivo
.repo
que describe un nuevo repositorio, ¿dónde se debe colocar este archivo para que DNF lo reconozca?
Ejercicios Exploratorios
-
¿Cómo usaría
zypper
para averiguar qué paquete posee el archivo/usr/sbin/swapon
?
-
¿Cómo puede obtener una lista de todos los paquetes instalados en el sistema usando
dnf
?
-
Usando
dnf
, ¿cuál es el comando para agregar un repositorio ubicado enhttps://www.example.url/home:reponame.repo
al sistema?
-
¿Cómo puede usar
zypper
para verificar si el paqueteunzip
está instalado?
-
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
ydnf
? -
¿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
-
Usando
rpm
en un sistema Red Hat Enterprise Linux, ¿cómo instalaría el paquetefile-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
. -
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
. -
¿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
. -
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
. -
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
-
¿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
. -
¿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
. -
Usando
dnf
, ¿cuál es el comando para agregar un repositorio ubicado enhttps://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
. -
¿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
. -
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
.