zypper

Saltar a: navegaci贸n, buscar



Este art铆culo es acerca de como usar Zypper, el gestor de paquetes de software desde la l铆nea de comandos, que utiliza la librer铆a Libzypp. Contiene informaci贸n que complementa la p谩gina de manual (con man zypper). Lo que no se encuentra aqu铆 deber铆a estar en la p谩gina de manual y viceversa.


Contenido

Referencia r谩pida

Esto es lo que probablemente se use con m谩s frecuencia.

zypper                 # para ver la ayuda general de opciones y comandos
zypper help search     # para ver la ayuda del comando search
zypper lp              # para ver los parches que est谩n disponibles
zypper patch           # para aplicar los parches
zypper se sqlite       # para buscar sqlite
zypper rm sqlite2      # para desinstalar sqlite2
zypper in sqlite3      # para instalar sqlite3
zypper in yast*        # para instalar todos los paquetes correspondientes a 'yast*'
zypper up              # para actualizar todos los paquetes a la versi贸n mas reciente posible

Vadem茅cum

En estos archivos en PDF puede encontrar la informaci贸n que aparece en esta p谩gina, pero comprimida en formato de una hoja de trucos (vadem茅cum, chuleta, cheat sheet, etc). Tambi茅n incluye algunas referencias tomadas de las p谩ginas de manual. Se recomienda su uso despu茅s de haber analizado la informaci贸n mostrada en la p谩gina.

Uso general

La sintaxis general de zypper es:

# zypper [opciones globales] comando [opciones del comando] [argumentos] ...

Los componentes encerrados entre corchetes no son requeridos, as铆 que la manera m谩s simple de ejecutar zypper es escribiendo su nombre seguido de un comando. Por ejemplo, para aplicar los parches necesarios al sistema, se debe escribir:

# zypper patch

Ademas, se puede elegir una o m谩s opciones globales escribi茅ndolas antes del comando: (ejecuta el comando, pero no me preguntes nada)

# zypper --non-interactive patch

Para usar las opciones especificas de un comando, se deben escribir luego de este: (aplica los parches necesarios pero no me preguntes para confirmar licencias, ya las le铆)

# zypper patch --auto-agree-with-licenses

Algunos de los comandos requieren uno o m谩s argumentos: (instala o actualiza el paquete mplayer)

# zypper install mplayer

Algunas de las opciones tambi茅n requieren argumentos: (b煤squeda de patrones)

# zypper search -t pattern

Todas combinadas: (instala mplayer y amarok usando solo el repositorio factory, detallado)

# zypper -v install --repo factory mplayer amarok

Indicaciones del usuario

Cada vez que zypper necesite alguna entrada del usuario, las posibles respuestas aparecen entre corchetes seguido al texto. Para elegir la respuesta por defecto, que aparece en may煤scula (con la excepci贸n de los caracteres no ASCII), solo hay que presionar <enter>. En ocasiones habr谩 disponible una ayuda para el usuario, en esos casos aparece como posible respuesta el s铆mbolo '?'. Para hacer que zypper use la opci贸n por defecto sin preguntar, se debe usar la opci贸n global --non-interactive.

Vocabulario

  • Repositorio: Directorio local o remoto que contiene paquetes e informaci贸n acerca de estos (metadatos). Los repositorios anteriormente eran llamados fuentes de instalaci贸n , servicios o cat谩logos.
  • Alias: Alias de repositorio es una versi贸n corta del nombre del repositorio para uso en comandos y opciones como removerepo o --repo.
  • Paquete: Son archivos RPM que contienen software y las instrucciones internas de c贸mo debe instalarlos el sistema, as铆 como qu茅 otros paquetes necesita para que estos funcionen (dependencias).
  • Parche: Paquete o grupo de paquetes necesarios para instalar una actualizaci贸n que generalmente repara un fallo.
  • Patr贸n: Representa un grupo de paquetes para un prop贸sito espec铆fico. Por ejemplo el patr贸n Servidor Http instalar谩 todos los paquetes necesarios para poder configurar un servidor http.
  • Producto: Representa la distribuci贸n (p. ej. 'openSUSE 12.2').

Comandos

Zypper provee numerosos comandos que pueden ser agrupados en las siguientes categor铆as:

  • Manejo de repositorios
    refresh, repos, addrepo, removerepo, modifyrepo, namerepo
    refresh-services, services, addservice, removeservice, modifyservice
  • Manejo de paquetes
    install, remove, source-install
  • Manejo de actualizaciones
    patch, list-patches, patch-check, patches, update, list-updates, dist-upgrade
  • Consultas
    search, info, what-provides, list-updates, patch-check, patches, packages, patterns, products
  • Bloqueo
    locks, addlock, removelock, cleanlocks
  • Utilidades
    verify, install-new-recommends
  • Otros
    help, licenses, versioncmp, targetos

Visualizando la ayuda

Es bueno saber c贸mo obtener ayuda. Para ver la ayuda general (lista de comandos y opciones globales), s贸lo se debe escribir zypper sin ninguna opci贸n o argumento. Para ver la ayuda de un comando espec铆fico, se usa:

# zypper help [comando]

o

# zypper [comando] --help

Cabe destacar que tambi茅n se puede usar -h en vez de --help.

Control de repositorios

Se puede especificar un repositorio existente por su n煤mero en la lista producida por zypper lr, alias, o URI. Cuando se usa el n煤mero, se debe asegurar de verificar primero zypper lr, ya que el n煤mero puede cambiar luego de hacer cambios a los repositorios.

Listar los repositorios definidos

repos o lr

Salida de ejemplo:

lunia:~ # zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.

#  | Alias                                 | Name                                                                                        | Enabled | GPG Check | Refresh
---+---------------------------------------+---------------------------------------------------------------------------------------------+---------+-----------+--------
 1 | ftp.gwdg.de-openSUSE_Leap_$releasever | Packman Repository                                                                          | Yes     | (r ) Yes  | Yes
 2 | repo-backports-debug-update           | Update repository with updates for openSUSE Leap debuginfo packages from openSUSE Backports | No      | ----      | ----
 3 | repo-backports-update                 | Update repository of openSUSE Backports                                                     | Yes     | (r ) Yes  | Yes
 4 | repo-debug                            | Debug Repository                                                                            | No      | ----      | ----
 5 | repo-debug-non-oss                    | Debug Repository (Non-OSS)                                                                  | No      | ----      | ----
 6 | repo-debug-update                     | Update Repository (Debug)                                                                   | No      | ----      | ----
 7 | repo-debug-update-non-oss             | Update Repository (Debug, Non-OSS)                                                          | No      | ----      | ----
 8 | repo-non-oss                          | Non-OSS Repository                                                                          | Yes     | (r ) Yes  | Yes
 9 | repo-oss                              | Main Repository                                                                             | Yes     | (r ) Yes  | Yes
10 | repo-security                         | repo-security                                                                               | Yes     | (r ) Yes  | No
11 | repo-sle-update                       | Update repository with updates from SUSE Linux Enterprise 15                                | Yes     | (r ) Yes  | Yes
12 | repo-source                           | Source Repository                                                                           | No      | ----      | ----
13 | repo-update                           | Main Update Repository                                                                      | Yes     | (r ) Yes  | Yes
14 | repo-update-non-oss                   | Update Repository (Non-Oss)                                                                 | No      | ----      | ----


lunia:~ # zypper lr 9
Alias          : repo-oss
Name           : Main Repository
URI            : http://download.opensuse.org/distribution/leap/15.3/repo/oss/
Enabled        : Yes
GPG Check      : (r ) Yes
Priority       : 99 (default priority)
Autorefresh    : On
Keep Packages  : Off
Type           : rpm-md
GPG Key URI    : 
Path Prefix    : 
Parent Service : 
Keywords       : [5]
    gpg-pubkey-307e3d54-5aaa90a5.asc?fpr=4E98E67519D98DC7362A5990E3A5C360307E3D54
    gpg-pubkey-39db7c82-5847eb1f.asc?fpr=FEAB502539D846DB2C0961CA70AF9E8139DB7C82
    gpg-pubkey-3dbdc284-53674dd4.asc?fpr=22C07BA534178CD02EFE22AAB88B2FD43DBDC284
    gpg-pubkey-65176565-59787af5.asc?fpr=637B32FF3D83F07A7AE1C40A9C214D4065176565
    pool
Repo Info Path : /etc/zypp/repos.d/repo-oss.repo
MD Cache Path  : /var/cache/zypp/raw/repo-oss

Otros ejemplos:

zypper lr -u       # para incluir la URI en la tabla
zypper lr -d       # para incluir la prioridad, el tipo, la URI y el servicio en la tabla
zypper lr -P       # para incluir la prioridad en la tabla
zypper lr -E       # para mostrar unicamente los repositorios habilitados

Agregar repositorios

addrepo o ar

Antes de que cualquier paquete pueda ser instalado se debe definir al menos un repositorio. Para agregar un repositorio, se usa el comando addrepo:

Salida de ejemplo:

lunia:~ # zypper ar https://download.opensuse.org/repositories/security:/SELinux/openSUSE_Leap_15.3/ repo-packman
Adding repository 'repo-packman' .........................................................[done]
Repository 'repo-packman' successfully added

URI         : https://download.opensuse.org/repositories/security:/SELinux/openSUSE_Leap_15.3/
Enabled     : Yes
GPG Check   : Yes
Autorefresh : No
Priority    : 99 (default priority)

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

Otros ejemplos:

zypper ar http://download.opensuse.org/repositories/security/openSUSE_Leap_42.1/security.repo  # mediante un archivo .repo
zypper ar -c ftp://some.download.site alias   # probar el repositorio despu茅s de agregarlo
zypper ar directorio/con/archivos/rpm local                # agregar un directorio local con archivos rpm

Refrescar repositorios

refresh o ref

Despu茅s de agregar un repositorio o cuando hace falta actualizar los datos de los paquetes que este incluye, necesita ser refrescado. Esto significa descargar los metadatos de los paquetes y procesar los datos en una cach茅 para lectura r谩pida.

La primer vez que se refresca un repositorio se debe aceptar su clave GPG, pudiendose optar entre aceptarla temporalmente, siempre o abortar la tarea

 lunia:~ # zypper refresh
  
Repository 'openSUSE Leap 15.3 Backports Updates' is up to date.                                                                                      
Retrieving repository 'openSUSE Leap 15.3 Non Oss' metadata ....................................................................................[done]
Building repository 'openSUSE Leap 15.3 Non Oss' cache .........................................................................................[done]
Retrieving repository 'openSUSE Leap 15.3 Oss' metadata ........................................................................................[done]
Building repository 'openSUSE Leap 15.3 Oss' cache .............................................................................................[done]
Retrieving repository 'Packman Repository' metadata -----------------------------------------------------------------------------------------------[|]

New repository or package signing key received:

  Repository:       Packman Repository
  Key Name:         PackMan Project (signing key) <packman@links2linux.de>
  Key Fingerprint:  F8875B88 0D518B6B 8C530D13 45A1D067 1ABD1AFB
  Key Created:      Mon Sep 15 19:18:00 2014
  Key Expires:      Thu Sep 12 19:17:21 2024
  Rpm Name:         gpg-pubkey-1abd1afb-54176598


Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a
Retrieving repository 'Packman Repository' metadata ............................................................................................[done]
Building repository 'Packman Repository' cache .................................................................................................[done]
Retrieving repository 'openSUSE Leap 15.3 SLE Updates' metadata ................................................................................[done]
Building repository 'openSUSE Leap 15.3 SLE Updates' cache .....................................................................................[done]
Retrieving repository 'openSUSE Leap 15.3 Update' metadata .....................................................................................[done]
Building repository 'openSUSE Leap 15.3 Update' cache ..........................................................................................[done]
Retrieving repository 'openSUSE Leap 15.3 Update Non Oss' metadata .............................................................................[done]
Building repository 'openSUSE Leap 15.3 Update Non Oss' cache ..................................................................................[done]
All repositories have been refreshed.

Si la opci贸n de autorefresh est谩 habilitada para un repositorio, no hay que preocuparse por refrescarlo, se hace autom谩ticamente cuando es necesario. Sin embargo, alguna gente prefiere refrescar s贸lo cuando lo desea (ej.: para evitar tener que esperar cuando solo quieren ver la salida de alguna busqueda o informaci贸n como podria ser 'zypper info mc'), as铆 que deshabilitan el auto refrescado.

Otros ejemplos:

zypper ref packman security  # puede especificarse que repositorios refrescar
zypper ref -f packman        # forzar el repositorio 'packman' para que se refresque

Quitar repositorios

removerepo o rr

 lunia:~ # zypper rr repo-source 4
 
Removing repository 'Update Repository (Debug)' ................................................................................................[done]
Repository 'Update Repository (Debug)' has been removed.
Removing repository 'Source Repository' ........................................................................................................[done]
Repository 'Source Repository' has been removed.

Modificar repositorios

modifyrepo o mr

Deshabilitar el repositorio n煤mero 6:

lunia:~ # zypper mr -d 6
Repository 'repo-test' has been successfully disabled.

Habilitar el repositorio n煤mero 6:

lunia:~ # zypper mr -e 6
Repository 'repo-test' has been successfully enabled.

Habilitar el auto refrescado y el cache de archivos rpm para el repositorio 'packman' y marcar su prioridad a 70:

lunia:~ # zypper mr -rk -p 70 packman
Autorefresh has been enabled for repository 'packman'.
RPM files caching has been enabled for repository 'packman'.
Repository 'packman' priority has been set to 70.

Deshabilitar la cach茅 de archivos RPM en todos los repositorios:

lunia:~ # zypper mr -Ka
RPM files caching has been disabled for repository 'repo-main-non-oss'.
RPM files caching has been disabled for repository 'repo-main-oss'.
RPM files caching has been disabled for repository 'repo-update'.
RPM files caching has been disabled for repository 'repo-update-backports'.
RPM files caching has been disabled for repository 'repo-update-non-oss'.
RPM files caching has been disabled for repository 'repo-update-sle'.
RPM files caching has been disabled for repository 'repo-extra-education'.
RPM files caching has been disabled for repository 'repo-extra-emulator'.
RPM files caching has been disabled for repository 'repo-extra-libdvdcss'.
RPM files caching has been disabled for repository 'repo-extra-nvidia'.
RPM files caching has been disabled for repository 'repo-extra-packman'.
RPM files caching has been disabled for repository 'repo-games'.
RPM files caching has been disabled for repository 'repo-games-tools'.
RPM files caching has been disabled for repository 'repo-source-non-oss'.
RPM files caching has been disabled for repository 'repo-source-oss'.
RPM files caching has been disabled for repository 'repo-debug'.
RPM files caching has been disabled for repository 'repo-debug-non-oss'.
RPM files caching has been disabled for repository 'repo-debug-sle-update'.
RPM files caching has been disabled for repository 'repo-debug-update'.
RPM files caching has been disabled for repository 'repo-debug-update-non-oss'.
RPM files caching has been disabled for repository 'repo-debug-updates-backports'.

Habilitar la cach茅 de archivos RPM en todos los repositorios:

lunia:~ # zypper mr -ka
RPM files caching has been enabled for repository 'repo-main-non-oss'.
RPM files caching has been enabled for repository 'repo-main-oss'.
RPM files caching has been enabled for repository 'repo-update'.
RPM files caching has been enabled for repository 'repo-update-backports'.
RPM files caching has been enabled for repository 'repo-update-non-oss'.
RPM files caching has been enabled for repository 'repo-update-sle'.
RPM files caching has been enabled for repository 'repo-extra-education'.
RPM files caching has been enabled for repository 'repo-extra-emulator'.
RPM files caching has been enabled for repository 'repo-extra-libdvdcss'.
RPM files caching has been enabled for repository 'repo-extra-nvidia'.
RPM files caching has been enabled for repository 'repo-extra-packman'.
RPM files caching has been enabled for repository 'repo-games'.
RPM files caching has been enabled for repository 'repo-games-tools'.
RPM files caching has been enabled for repository 'repo-source-non-oss'.
RPM files caching has been enabled for repository 'repo-source-oss'.
RPM files caching has been enabled for repository 'repo-debug'.
RPM files caching has been enabled for repository 'repo-debug-non-oss'.
RPM files caching has been enabled for repository 'repo-debug-sle-update'.
RPM files caching has been enabled for repository 'repo-debug-update'.
RPM files caching has been enabled for repository 'repo-debug-update-non-oss'.
RPM files caching has been enabled for repository 'repo-debug-updates-backports'.

Renombrar repositorios

renamerepo o nr

lunia:~ # zypper nr 1 repo-packman
Repository 'ftp.gwdg.de-openSUSE_Leap_$releasever' renamed to 'repo-packman'.

Este comando actualmente s贸lo permite cambiar el alias del repositorio. Si se desea cambiar el Nombre se debe usar el comando mr.

Los alias deben mantenerse cortos y simples para facilitar el uso con la opci贸n --repo. Usar alias es mas seguro que el n煤mero de los repositorios y m谩s corto que las URI

Exportar/Importar repositorios

repos --export o lr -e

Se puede exportar la lista completa de repositorios para luego usarlos en otras m谩quinas.

Para exportarlos se utiliza el comando:

lunia:~ # zypper lr --export ~/lista.repo
Repositories have been successfully exported to /root/lista.repo.

Para importarlos se utiliza el comando:

lunia:~ # zypper ar ~/lista.repo
Adding repository 'openSUSE Leap 15.3 Non Oss' ...........................................[done]
Repository 'openSUSE Leap 15.3 Non Oss' successfully added

URI         : https://download.opensuse.org/distribution/leap/15.3/repo/non-oss/
Enabled     : Yes
GPG Check   : Yes
Autorefresh : Yes
Priority    : 99 (default priority)

...
...
...

Manejo de servicios

Los servicios est谩n un nivel por encima de los repositorios y sirven para manejar repositorios. Libzypp actualmente solo soporta un tipo de servicio, el Servicio de indice de repositorios (en ingles Repository Index Service) tambi茅n conocido como RIS.

Agregar un Servicio

addservice o as

Para agregar un servicio se utiliza el comando addservice

Ejemplo:

lunia:~ # zypper as https://www.myurl.com VampirD
Setting new service VampirDindeterminate indeterminate
Service 'VampirD' has been successfully added.

Refrescar un servicio

refresh-services o refs

A continuaci贸n se debe refrescar el servicio para descargar los repositorios que provee:

lunia:~ # zypper refs
Refreshing service 'VampirD'.
Adding repository 'openSUSE Leap 15.3 Oss' .....................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Non Oss' .................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Update' ..................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Update Non Oss' ..........................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Backports Updates' .......................................................................................[done]
Adding repository 'openSUSE Leap 15.3 SLE Updates' .............................................................................................[done]
Adding repository 'Vampiress Repository' .......................................................................................................[done]
Adding repository 'Libdvdcss Repository' .......................................................................................................[done]
Adding repository 'Packman Repository' .........................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 VirtualBox' ..............................................................................................[done]
Adding repository 'openSUSE Leap 15.3 nVidia' ..................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Emulator' ................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Game Tools' ..............................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Games' ...................................................................................................[done]
Adding repository 'MS Skype' ...................................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Education' ...............................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Source' ..................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Source Non Oss' ..........................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Debug' ...................................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Debug Non Oss' ...........................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Update Debug' ............................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Update Debug Non Oss' ....................................................................................[done]
Adding repository 'openSUSE Leap 15.3 Backports Update Debug' ..................................................................................[done]
Adding repository 'Teamviewer' .................................................................................................................[done]
All services have been refreshed.

La primer vez que se refresca un servicio se debe habilitar los repositorios con el comando zypper mr -e -a que habilitara todos los repositorios agregados o zypper mr -e <n煤mero de repositorios deseados>

lunia:~ # zypper mr -e 2 12 14 15 17 21 22
Repository 'VampirD:repo-backports-update' has been successfully enabled.
Repository 'VampirD:repo-non-oss' has been successfully enabled.
Repository 'VampirD:repo-oss' has been successfully enabled.
Repository 'VampirD:repo-packman' has been successfully enabled.
Repository 'VampirD:repo-sle-update' has been successfully enabled.
Repository 'VampirD:repo-update' has been successfully enabled.
Repository 'VampirD:repo-update-non-oss' has been successfully enabled.

Eliminar servicios

removeservice o rs

Un servicio se puede eliminar con el comando rs.

Ejemplo:

lunia:~ # zypper rs VampirD
Removing service 'VampirD':
Removing repository 'openSUSE Leap 15.3 Backports Update Debug' ................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Backports Updates' .....................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Debug' .................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Debug Non Oss' .........................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Update Debug' ..........................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Update Debug Non Oss' ..................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Education' .............................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Emulator' ..............................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Game Tools' ............................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Games' .................................................................................................[done]
Removing repository 'Libdvdcss Repository' .....................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Non Oss' ...............................................................................................[done]
Removing repository 'openSUSE Leap 15.3 nVidia' ................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Oss' ...................................................................................................[done]
Removing repository 'Packman Repository' .......................................................................................................[done]
Removing repository 'MS Skype' .................................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 SLE Updates' ...........................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Source' ................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Source Non Oss' ........................................................................................[done]
Removing repository 'Teamviewer' ...............................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Update' ................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 Update Non Oss' ........................................................................................[done]
Removing repository 'Vampiress Repository' .....................................................................................................[done]
Removing repository 'openSUSE Leap 15.3 VirtualBox' ............................................................................................[done]
Service 'VampirD' has been removed.

Manejo de paquetes

Seleccionar paquetes

Hay varias maneras de elegir un paquete para instalarlo o desinstalarlo.

  • por su capacidad
    zypper in eclipse
    zypper in qt
  • por su capacidad y/o arquitectura y/o versi贸n
    zypper in 'zypper<0.12.10'
    zypper in zypper.i586=0.12.11
  • por su nombre exacto de paquete (--name)
    zypper in -n ftp
  • por su nombre exacto de paquete y repositorio (implica --name)
    zypper in factory:zypper
  • por nombre de paquete usando comodines
    zypper in yast*ftp*
  • especificando un archivo .rpm para instalar (puede ser la URL al archivo rpm)

Instalar paquetes

install o in

Los paquetes se pueden instalar por nombre...

lunia:~ # zypper in nginx
Refreshing service 'VampirD'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 4 NEW packages are going to be installed:
  libgd3 libwebp7 nginx vim-plugin-nginx

The following recommended package was automatically selected:
  vim-plugin-nginx

4 new packages to install.
Overall download size: 1.1 MiB. Already cached: 0 B. After the operation, additional 3.2 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package libwebp7-1.0.3-1.62.x86_64                                                                    (1/4), 198.3 KiB (434.7 KiB unpacked)
Retrieving: libwebp7-1.0.3-1.62.x86_64.rpm ........................................................................................[done (15.0 KiB/s)]
Retrieving package libgd3-2.2.5-9.1.x86_64                                                                       (2/4), 125.5 KiB (405.7 KiB unpacked)
Retrieving: libgd3-2.2.5-9.1.x86_64.rpm ...........................................................................................[done (14.9 KiB/s)]
Retrieving package vim-plugin-nginx-1.19.8-3.3.1.noarch                                                          (3/4),  88.4 KiB (134.6 KiB unpacked)
Retrieving: vim-plugin-nginx-1.19.8-3.3.1.noarch.rpm ..............................................................................[done (14.5 KiB/s)]
Retrieving package nginx-1.19.8-3.3.1.x86_64                                                                     (4/4), 690.5 KiB (  2.2 MiB unpacked)
Retrieving: nginx-1.19.8-3.3.1.x86_64.rpm ........................................................................................[done (160.2 KiB/s)]

Checking for file conflicts: ...................................................................................................................[done]
(1/4) Installing: libwebp7-1.0.3-1.62.x86_64 ...................................................................................................[done]
(2/4) Installing: libgd3-2.2.5-9.1.x86_64 ......................................................................................................[done]
(3/4) Installing: vim-plugin-nginx-1.19.8-3.3.1.noarch .........................................................................................[done]
(4/4) Installing: nginx-1.19.8-3.3.1.x86_64 ....................................................................................................[done]
Additional rpm output:
useradd -r -s /sbin/nologin -c "User for nginx" -U -d /var/lib/nginx nginx

...o las capacidades que proveen:

lunia:~ # zypper in mc \> 3
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 14 NEW packages are going to be installed:
  libXmuu1 libXss1 libburn4 libisoburn1 libisofs6 libjte1 libslang2 libssh2-1 mc mc-lang tcl tk xhost xorriso

The following 2 recommended packages were automatically selected:
  mc-lang xorriso

14 new packages to install.
Overall download size: 7.6 MiB. Already cached: 0 B. After the operation, additional 23.2 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): n
lunia:~ # zypper in 'libqtiff.so()(64bit)'
Loading repository data...
Reading installed packages...
'libqtiff.so()(64bit)' not found in package names. Trying capabilities.
Resolving package dependencies...

The following 38 NEW packages are going to be installed:
  libQt5Core5 libQt5DBus5 libQt5Gui5 libQt5Network5 libX11-xcb1 libdouble-conversion3 libevdev2 libgbm1 libgudev-1_0-0 libinput-udev libinput10
  libmng2 libmtdev1 libpcre2-16-0 libqt5-qtimageformats libqt5-qttranslations libts0 libwacom-data libwacom2 libwayland-server0 libwebpdemux2
  libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-util1 libxcb-xfixes0
  libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 libxkbcommon-x11-0 libxkbcommon0 xkeyboard-config xkeyboard-config-lang

The following 4 recommended packages were automatically selected:
  libinput-udev libqt5-qtimageformats libqt5-qttranslations xkeyboard-config-lang

38 new packages to install.
Overall download size: 9.6 MiB. Already cached: 0 B. After the operation, additional 40.6 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): n

Otros ejemplos:

zypper in yast*                     # instala todos los m贸dulos de YaST2
zypper in -t pattern lamp_server    # instala el patr贸n lamp_server (paquetes necesarios para un servidor LAMP)
zypper in emacs pattern:lamp_server # instala el paquete emacs y el patr贸n lamp_server
zypper in vim -emacs                # instala vim y desinstala emacs
zypper in amarok packman:libxine1   # instala libxine1 desde packman y amarok de cualquier repositorio
zypper in bitchx-1.1-81.x86_64.rpm  # instala bitchx desde el rpm en un directorio local
zypper in -f subversion             # fuerza la reinstalacion de subversion

Desinstalar paquetes

remove o rm

El comando remove es como el comando install, solo que su efecto es el contrario

lunia:~ # zypper rm nginx
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
  nginx

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

El comando remove tambien cuenta con la opci贸n --clean-deps o -u, la cual a la vez de eliminar los paquetes seleccionados eliminar谩 las dependencias de estos que no sean necesarias en el sistema.

lunia:~ # zypper rm --clean-deps nginx
Reading installed packages...
Resolving package dependencies...

The following 2 packages are going to be REMOVED:
  nginx vim-plugin-nginx

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

Paquetes fuente y construcci贸n de dependencias

source-install o si

lunia:~ # zypper si zypper
Refreshing service 'VampirD'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 63 NEW packages are going to be installed:
  augeas-devel bison bison-lang cmake cmake-full cmake-man dwz gcc gcc-c++ gcc7 gcc7-c++ gettext-tools glibc-devel libasan4 libatomic1 libboost_chrono1_66_0
  libboost_chrono1_66_0-devel libboost_date_time1_66_0 libboost_date_time1_66_0-devel libboost_headers1_66_0-devel libboost_program_options1_66_0
  libboost_program_options1_66_0-devel libboost_serialization1_66_0 libboost_serialization1_66_0-devel libboost_test1_66_0 libboost_test1_66_0-devel
  libboost_thread1_66_0-devel libcilkrts5 libcurl-devel libitm1 libjsoncpp19 liblsan0 libmpx2 libmpxwrappers2 libopenssl-1_1-devel libopenssl-devel librhash0 libsolv-devel
  libstdc++-devel libstdc++6-devel-gcc7 libtsan0 libubsan0 libudev-devel libxcrypt-devel libxml2-devel libzstd-devel libzypp-devel linux-glibc-devel m4 make make-lang
  ncurses-devel patch popt-devel readline-devel rpm-build rpm-devel ruby2.5-rubygem-asciidoctor site-config systemd-rpm-macros tack xz-devel zlib-devel

The following source package is going to be installed:
  zypper

The following 4 recommended packages were automatically selected:
  bison-lang libboost_serialization1_66_0-devel make-lang rpm-build

63 new packages to install, 1 source package.
Overall download size: 76.2 MiB. Already cached: 0 B. After the operation, additional 331.7 MiB will be used.
Continue? [y/n/v/...? shows all options] (y): n

Tambi茅n se pueden instalar solo las dependencias o solo el paquete de fuentes:

zypper si -D zypper    # solo el paquete fuente (sin dependencias para compilar)
zypper si -d zypper    # solo las dependencias para compilar (sin paquete fuente)

Actualizar paquetes

update o up

El siguiente comando actualiza un paquete a su versi贸n m谩s reciente disponible. Ver tambi茅n Manejo de actualizaciones para m谩s informaci贸n.

zypper up                           # actualiza todos los paquetes instalados con la versi贸n m谩s reciente disponible
zypper up libzypp zypper            # actualiza libzypp y zypper
zypper in sqlite3                   # actualiza sqlite3 o lo instala si a煤n no fue instalado

Consultas

Buscar paquetes

search o se

Por defecto, el comando search busca paquetes de cualquier tipo, estado o repositorio, cuyos nombres contienen la cadena de caracteres especificada y sin distinguir may煤sculas de min煤sculas:

lunia:~ # zypper se sqlite
Refreshing service 'VampirD'.
Loading repository data...
Reading installed packages...

S | Name                              | Summary                                                                | Type
--+-----------------------------------+------------------------------------------------------------------------+--------
  | adminer-sqlite                    | Dependencies required for Adminer SQLite support                       | package
  | akonadi-server-sqlite             | Complemento SQlite del servidor akonadi                                | package
  | bogofilter-sqlite3                | Bogofilter sqlite3 backend                                             | package
  | courier-authlib-sqlite            | SQLite support for the Courier authentication library                  | package
  | dovecot23-backend-sqlite          | SQLite support for Dovecot                                             | package
  | freeradius-server-sqlite          | SQLite support for freeradius                                          | package
  | gambas3-gb-db-sqlite3             | SQLite3 database driver for Gambas                                     | package
  | guile-sqlite3                     | SQLite3 database access from Guile                                     | package
  | kdb-sqlite3-driver                | Database connectivity and creation framework - SQLite3 driver          | package
  | libPocoDataSQLite71               | C++ Framework for Network-based Applications                           | package
  | libQt5Sql5-sqlite                 | Qt 5 sqlite plugin                                                     | package
  | libQt5Sql5-sqlite-32bit           | Qt 5 sqlite plugin                                                     | package
  | libapr-util1-dbd-sqlite3          | Controlador DBD para SQLite 3                                          | package
  | libcppdb_sqlite3-0                | SQLite3 database connector for the cppdb library                       | package
  | libdbi-drivers-dbd-sqlite3        | SQLite3 driver for libdbi                                              | package
  | libgda-5_0-sqlite                 | Proveedor Sqlite para GNU Data Access (GDA)                            | package
  | libpreludedb-sqlite               | Plugin to use prelude with a sqlite database                           | package
i | libsqlite3-0                      | Bibliotecas compartidas para el motor de bases de datos SQL empotrable | package
  | libsqlite3-0-32bit                | Bibliotecas compartidas para el motor de bases de datos SQL empotrable | package
  | libvsqlitepp3                     | Well designed C++ sqlite 3.x wrapper library                           | package
  | libwxcode_gtk2u_wxsqlite3-3_0-0   | C++ wrapper around SQLite 3.x                                          | package
  | mediatomb-sqlite                  | UPnP AV MediaServer sqlite                                             | package
  | mediatomb-sqlite-debuginfo        | Debug information for package mediatomb-sqlite                         | package
  | monitoring-plugins-dbi-sqlite3    | Check SQlite3 database using DBI                                       | package
  | mono-data-sqlite                  | Database connectivity for Mono                                         | package
  | pdns-backend-sqlite3              | SQLite 3 backend for pdns                                              | package
  | perl-DBD-SQLite                   | Self-contained RDBMS in a DBI Driver                                   | package
  | perl-DateTime-Format-SQLite       | Parse and format SQLite dates and times                                | package
  | perl-Minion-Backend-SQLite        | SQLite backend for Minion job queue                                    | package
  | perl-Mojo-SQLite                  | Tiny Mojolicious Wrapper for Sqlite                                    | package
  | php7-sqlite                       | SQLite database client for PHP                                         | package
  | proftpd-sqlite                    | SQLite Module for ProFTPD                                              | package
  | python-pysqlite                   | DB-API 2.0 interface for SQLite 3.x                                    | package
  | python2-sqlitedict                | Persistent dict in Python backed by sqlite3                            | package
  | python3-sqlitedict                | Persistent dict in Python backed by sqlite3                            | package
  | qore-sqlite3-module               | Sqlite3 DBI module for Qore                                            | package
  | qore-sqlite3-module-doc           | Documentation and examples for the Qore sqlute3 module                 | package
  | ruby2.5-rubygem-sqlite3           | This module allows Ruby programs to interface with the SQLite3         | package
  | ruby2.5-rubygem-sqlite3-doc       | RDoc documentation for sqlite3                                         | package
  | ruby2.5-rubygem-sqlite3-testsuite | Test suite for sqlite3                                                 | package
  | sqlite3                           | Motor de bases de datos SQL empotrable                                 | package
  | sqlite3-devel                     | Motor de bases de datos SQL empotrable                                 | package
  | sqlite3-doc                       | Documentation for sqlite3                                              | package
  | sqlitebrowser                     | Create, design and edit SQLite Databases                               | package
  | sqliteman                         | An Sqlite3 manager                                                     | package
  | sqliteodbc                        | ODBC driver for SQLite                                                 | package
  | sqliteodbc-doc                    | Documentation for sqliteodbc                                           | package
  | strongswan-sqlite                 | OpenSource IPsec-based VPN Solution                                    | package
  | tntdb-sqlite                      | SQLite plugin for tntdb                                                | package
  | ulogd-sqlite3                     | SQLite3 output target for ulogd                                        | package
  | uwsgi-sqlite3                     | SQLite3 Plugin for uWSGI                                               | package
  | vsqlite++-devel                   | Development files for vsqlite++                                        | package
  | wxsqlite3-devel                   | C++ wrapper around SQLite 3.x - Development Files                      | package
  | zabbix-proxy-sqlite               | Zabbix proxy with SQLite support                                       | package
  | zabbix-server-sqlite              | Zabbix server with SQLite support                                      | package

La letra "i" en la primer columna indica que el paquete ya esta instalado en el sistema. Para ver todas las versiones de los paquetes se usa la opci贸n "--details/-s":

lunia:~ # zypper se -s --match-exact wget
Loading repository data...
Reading installed packages...

S | Name | Type    | Version      | Arch   | Repository
--+------+---------+--------------+--------+------------------
i | wget | package | 1.20.3-3.9.2 | x86_64 | (System Packages)
  

La letra "v" en la primer columna indica que hay otra versi贸n disponible diferente a la instalada en el sistema.

Otros ejemplos:

zypper se -dC --match-words RSI   # busca por acr贸nimos RSI (distingue may煤sculas de min煤sculas), tambi茅n en sumarios y descripciones
zypper se 'yast*'                 # muestra todos los paquetes que comienzan con 'yast' (OJO con la expansi贸n del shell, 隆usar comillas en caso de duda!)
zypper se -r packman              # muestra todos los paquetes del repositorio 'packman'
zypper se -i sqlite               # muestra todos los paquetes instalados que contienen 'sqlite' en su nombre
zypper se -t pattern -r repo-oss  # muestra todos los patrones disponibles en el repositorio 'repo-oss'
zypper se -t product              # muestra todos los productos disponibles

Obtener informaci贸n acerca de un paquete

info o if

lunia:~ # zypper if nginx
Loading repository data...
Reading installed packages...


Information for package nginx:
------------------------------
Repository     : openSUSE Leap 15.3 SLE Updates
Name           : nginx
Version        : 1.19.8-3.3.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed      : Yes
Status         : up-to-date
Source package : nginx-1.19.8-3.3.1.src
Summary        : A HTTP server and IMAP/POP3 proxy server
Description    : 
    nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
    It has been running on many heavily loaded Russian sites for more than two years.

Este comando muestra informaci贸n detallada del paquete 'nginx'.

Otros ejemplos:

zypper info -t patch MozillaFirefox    # muestra informaci贸n del parche 'MozillaFirefox'
zypper patch-info MozillaFirefox       # igual que arriba
zypper info -t pattern lamp_server     # muestra informaci贸n del patr贸n 'lamp_server'
zypper info -t product openSUSE-FTP    # muestra informaci贸n de producto especificado

Que paquete provee cierto ejecutable o archivo

Previamente se usaba el comando what-provides o wp, pero en versiones recientes de zypper ha sido reemplazado por search --provides --match-exact.

Este comando es similar a rpm -q --whatprovides wget, pero rpm es s贸lo capaz de consultar la base de datos de RPM (base de datos de paquetes instalados). zypper, por otro lado, revisar谩 en los repositorios los paquetes no instalados ademas de los instalados.

lunia:~ # zypper se -s --match-exact yast2
Loading repository data...
Reading installed packages...

S | Name  | Type    | Version      | Arch   | Repository
--+-------+---------+--------------+--------+------------------
i | yast2 | package | 4.3.62-3.5.1 | x86_64 | (System Packages)

Otras consultas

Los comandos patches, packages, patterns y products son similares a search -s -t [patch,package,pattern,product], excepto que muestran alguna informaci贸n adicional especifica al tipo del paquete. Por ejemplo patches muestra tambi茅n el estado del parche (Needed/Security/Not Applicable).

Los comandos list-updates y patch-check se ven en Manejo de actualizaciones.

Tiempo de soporte del sistema y/o paquetes

Se pueden consultar las fechas hasta las que se tiene soporte mediante el subcomando lifecycle

lunia:~ # zypper lifecycle
Product end of support                                  
Codestream: openSUSE Leap 15                            2024-11-30
    Product: openSUSE Leap 15.3                         2022-11-30

Package end of support if different from product:
cpp                                      Now, installed 7-3.3.22, update available 7-3.6.1 
libX11-6                                 Now, installed 1.6.5-3.18.1, update available 1.6.5-3.21.1 
libX11-data                              Now, installed 1.6.5-3.18.1, update available 1.6.5-3.21.1 
libX11-xcb1                              Now, installed 1.6.5-3.18.1, update available 1.6.5-3.21.1 
libopenmpt0                              Now, installed 0.3.19-2.10.1, update available 0.3.28-2.13.1 
libxml2-2                                Now, installed 2.9.7-3.34.1, update available 2.9.7-3.37.1 
libxml2-tools                            Now, installed 2.9.7-3.34.1, update available 2.9.7-3.37.1 

Log

Un log de los comandos utilizados con zypper puede ser consultado mediante el subcomando log

lunia:~ # zypper log      
================================================================================
Collect from /var/log/zypper.log ... 

TIME                PID      VER  CMD
2021-06-11 20:15   4758  1.14.45  zypper pchk
2021-06-11 20:16   4781  1.14.45  zypper lp
2021-06-11 20:16   4807  1.14.45  zypper if -t patch SUSE-2021-1926
2021-06-11 20:17   5027  1.14.45  zypper lp
2021-06-11 20:18   5054  1.14.45  zypper if -t patch SUSE-2021-538
2021-06-11 20:20   5077  1.14.45  zypper lu
2021-06-11 20:21   5105  1.14.45  zypper lu -a
2021-06-11 20:21   5128  1.14.45  zypper up
2021-06-11 20:22   5151  1.14.45  zypper dup
2021-06-11 20:23   5371  1.14.45  zypper inr
2021-06-11 20:24   5396  1.14.45  zypper
2021-06-11 20:25   5402  1.14.45  zypper lifecycle
2021-06-11 23:25   5405  1.14.45  zypper --no-refresh -x lr
2021-06-11 23:25   5409  1.14.45  zypper --no-refresh -x pd --xmlfwd codestream
2021-06-11 23:25   5435  1.14.45  zypper --no-refresh -x se -s -t package
2021-06-11 23:25   5461  1.14.45  zypper --no-refresh -x lu
2021-06-11 20:28   5488  1.14.45  zypper log

Bloqueo de paquetes

locks o ll addlock o al removelock o rl cleanlocks o cl

El bloqueo de paquetes sirve para prevenir cambios en los paquetes del sistema. Los paquetes bloqueados no pueden cambiar su estado, si esta instalado no se puede desinstalar o actualizar, si no esta instalado no se puede instalar.

Para bloquear todos los paquetes que comienzan con 'PackageKit':

lunia:~ # zypper al 'PackageKit*'
Specified lock has been successfully added.

Una vez mas, cuidado con las expansiones del shell, ante la duda usar comillas si hay posibilidad de que packagekit* coincida con alg煤n archivo o directorio en el directorio de trabajo.

Para ver los bloqueos activos:

lunia:~ # zypper ll              
# | Name        | Type    | Repository
--+-------------+---------+-----------
1 | PackageKit* | package | (any)

Para quitar un bloqueo:

lunia:~ # zypper rl 'PackageKit*'
1 lock has been successfully removed.

Otros ejemplos:

zypper al zypper                   # bloquea el paquete 'zypper'
zypper al -r repo-oss virtualbox*  # restringe el bloqueo al repositorio 'repo-oss' (permitiendo instalaciones desde otros)
zypper rl 3                        # quita el bloqueo 3

Utilidades

Verificar dependencias

verify o ve

Ocasionalmente se puede terminar con un sistema roto en lo que respecta a dependencias de paquetes. Si alguna aplicaci贸n falla al iniciar con alg煤n mensaje que indique la falta de alg煤n paquete, esto se puede reparar con zypper:

lunia:~ # zypper ve
Loading repository data...
Reading installed packages...

The following NEW package is going to be installed:
  libatomic1

1 new package to install.
Overall download size: 23.2 KiB. Already cached: 0 B. After the operation, additional 26.1 KiB will be used.
Some of the dependencies of installed packages are broken. In order to fix these dependencies, the following actions need to be taken:
Continue? [y/n/v/...? shows all options] (y): n

Instalar paquetes nuevos recomendados

install-new-recommends o inr

Este comando instala paquetes recomendados recientemente agregados para paquetes que est茅n instalados en el sistema. Esto provee una manera f谩cil de instalar nuevos lenguajes para el software o controladores para hardware reci茅n agregado.

lunia:~ # zypper inr
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 4 NEW packages are going to be installed:
  libdca0 libfaad2 vlc-codecs vlc-lang

4 new packages to install.
Overall download size: 4.6 MiB. Already cached: 0 B. After the operation, additional 31.4 MiB will be used.
Continue? [y/n/v/...? shows all options] (y):

Control de procesos

ps

Este comando muestra los procesos que est谩n usando archivos que han sido borrados por una actualizaci贸n o desinstalaci贸n reciente.

Hay algunos programas en ejecuci贸n que utilizan archivos eliminados producto de una reciente actualizaci贸n. Deber铆a considerar reiniciar algunos. Ejecute 'zypper ps' para listarlos

lunia:~ # zypper ps -s
The following running processes use deleted files:

PID   | PPID  | UID | User       | Command             | Service
------+-------+-----+------------+---------------------+-----------------
1     | 0     | 0   | root       | systemd             | 
384   | 1     | 0   | root       | systemd-journald    | systemd-journald
406   | 1     | 0   | root       | udevadm             | systemd-udevd
846   | 1     | 499 | messagebus | dbus-daemon         | dbus
848   | 1     | 0   | root       | python3.6 (deleted) | firewalld
932   | 1     | 0   | root       | VBoxService         | vboxadd-service
951   | 1     | 0   | root       | systemd-logind      | systemd-logind
953   | 1     | 0   | root       | rsyslogd            | rsyslog
960   | 1     | 0   | root       | wickedd-auto4       | wickedd-auto4
961   | 1     | 0   | root       | wickedd-dhcp4       | wickedd-dhcp4
962   | 1     | 0   | root       | wickedd-dhcp6       | wickedd-dhcp6
966   | 1     | 0   | root       | wickedd             | wickedd
976   | 1     | 0   | root       | wickedd-nanny       | wickedd-nanny
1843  | 1     | 476 | chrony     | chronyd             | chronyd
1871  | 1     | 0   | root       | sshd                | sshd
1971  | 1     | 0   | root       | master              | postfix
1973  | 1971  | 51  | postfix    | pickup              | postfix
1974  | 1971  | 51  | postfix    | qmgr                | postfix
2125  | 1     | 0   | root       | cron                | cron
14000 | 1871  | 0   | root       | sshd                | 
14004 | 1     | 0   | root       | systemd             | 
14005 | 14004 | 0   | root       | systemd             | 
14021 | 14000 | 0   | root       | bash (deleted)      | 
15798 | 1     | 0   | root       | snapperd            | snapperd

You may wish to restart these processes.
See 'man zypper' for information about the meaning of values in the above table.

No core libraries or services have been updated since the last system boot.
Reboot is probably not necessary.

Tambien es posible listar que servicios deberian ser reiniciados, incluso imprimir el comando listo para copiar y pegar

lunia:~ # zypper ps --print "systemctl restart %s"
systemctl restart chronyd
systemctl restart cron
systemctl restart dbus
systemctl restart firewalld
systemctl restart postfix
systemctl restart rsyslog
systemctl restart sshd
systemctl restart systemd-journald
systemctl restart systemd-logind
systemctl restart systemd-udevd
systemctl restart vboxadd-service
systemctl restart wickedd
systemctl restart wickedd-auto4
systemctl restart wickedd-dhcp4
systemctl restart wickedd-dhcp6
systemctl restart wickedd-nanny

Manejo de actualizaciones

Hay dos enfoques para mantener su sistema al d铆a. Uno de ellos es mediante paquetes, el otro es mediante parches.

El enfoque mediante parches es especialmente 煤til para la gente que est茅 usando publicaciones estables y quiere actualizar su sistema con parches publicados en el repositorio de actualizaciones en l铆nea. Los repositorios de actualizaciones se a帽aden por defecto durante la instalaci贸n o actualizaci贸n del sistema, o tambi茅n se pueden a帽adir por medio de Configuraci贸n de la actualizaci贸n en l铆nea en la pesta帽a Software del Centro de control YaST, o de forma manual utilizando zypper. Aqu铆 puede ver la lista de repositorios de actualizaci贸n disponibles para openSUSE.

La funci贸n equivalente de esta caracter铆stica en YaST es el m贸dulo Actualizaci贸n en l铆nea.

El segundo enfoque, actualizaci贸n mediante paquetes, est谩 descrito en la secci贸n Actualizar paquetes y servidores para actualizaciones generales de paquetes desde cualquier repositorio con sus versiones m谩s nuevas.

Listando parches necesarios

list-patches o lp

Para ver todos los parches necesarios:

lunia:~ # zypper lp
Loading repository data...
Reading installed packages...

Needed software management updates will be installed first:

Repository                | Name              | Category    | Severity | Interactive | Status | Since | Summary
--------------------------+-------------------+-------------+----------+-------------+--------+-------+----------------------------------------
openSUSE Leap 15.3 Update | openSUSE-2021-863 | recommended | moderate | restart     | needed | -     | Recommended update for openSUSE-release

The following updates are also available:

Repository                     | Name           | Category    | Severity  | Interactive | Status | Since      | Summary
-------------------------------+----------------+-------------+-----------+-------------+--------+------------+---------------------------------------------
openSUSE Leap 15.3 SLE Updates | SUSE-2021-1499 | security    | important | ---         | needed | 2021-06-10 | Security update for webkit2gtk3
openSUSE Leap 15.3 SLE Updates | SUSE-2021-1897 | security    | important | ---         | needed | -          | Security update for libX11
openSUSE Leap 15.3 SLE Updates | SUSE-2021-1914 | security    | moderate  | ---         | needed | 2021-06-10 | Security update for libopenmpt
openSUSE Leap 15.3 SLE Updates | SUSE-2021-1917 | security    | moderate  | ---         | needed | -          | Security update for libxml2
openSUSE Leap 15.3 SLE Updates | SUSE-2021-1926 | recommended | moderate  | ---         | needed | 2021-06-10 | Recommended update for gcc
openSUSE Leap 15.3 SLE Updates | SUSE-2021-538  | recommended | moderate  | ---         | needed | -          | Recommended update for open-vm-tools
openSUSE Leap 15.3 SLE Updates | SUSE-2021-985  | recommended | moderate  | ---         | needed | -          | Recommended update for the Azure SDK and CLI

Found 8 applicable patches:
8 patches needed (4 security patches)
 

A veces, cuando hay una actualizaci贸n que afecta al manejador de paquetes, se muestra sola, ya que debe aplicarse primero. Una vez aplicada el comando mostrar谩 el resto de las actualizaciones.

Aplicando parches

patch

Para aplicar los parches necesarios:

lunia:~ # zypper patch
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW patch is going to be installed:
  openSUSE-2021-863

The following 2 packages are going to be upgraded:
  openSUSE-release openSUSE-release-dvd

The following product is going to be reinstalled:
  "openSUSE Leap 15.3"

2 packages to upgrade.
Overall download size: 694.9 KiB. Already cached: 0 B. After the operation, additional 234.0 B will be used.

    Note: Package manager restart required. (Run this command once again after the update stack got
    updated)
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package openSUSE-release-dvd-15.3-lp153.146.1.x86_64                                                                       (1/2),   8.1 KiB (   66   B unpacked)
Retrieving delta: ./x86_64/openSUSE-release-dvd-15.3-lp153.143.2_lp153.146.1.x86_64.drpm, 3.8 KiB
Retrieving: openSUSE-release-dvd-15.3-lp153.143.2_lp153.146.1.x86_64.drpm ...........................................................................................[done]
Applying delta: ./openSUSE-release-dvd-15.3-lp153.143.2_lp153.146.1.x86_64.drpm .....................................................................................[done]
Retrieving package openSUSE-release-15.3-lp153.146.1.x86_64                                                                           (2/2), 686.8 KiB (231.6 KiB unpacked)
Retrieving: openSUSE-release-15.3-lp153.146.1.x86_64.rpm ..............................................................................................[done (213.3 KiB/s)]

Checking for file conflicts: ........................................................................................................................................[done]
(1/2) Installing: openSUSE-release-dvd-15.3-lp153.146.1.x86_64 ......................................................................................................[done]
(2/2) Installing: openSUSE-release-15.3-lp153.146.1.x86_64 ..........................................................................................................[done]
Executing %posttrans scripts ........................................................................................................................................[done]
Warning: One of the installed patches affects the package manager itself. Run this command once more to install any other needed patches.

En el caso de aplicarse un parche al sistema de zypper, aparecer谩 la advertencia indicando que se debe ejecutar nuevamente el comando anterior, tambien en caso de actualizarse algun paquete que requiera reinicio del sistema.

Listado de parches

patches

El comando list-updates solo muestra los parches necesarios. Para ver todos los parches disponibles:

lunia:~ # zypper patches
Loading repository data...
Reading installed packages...
Repository                           | Name              | Category    | Severity  | Interactive | Status     | Since      | Summary
-------------------------------------+-------------------+-------------+-----------+-------------+------------+------------+--------------------------------------------------------------------------------------------------------
openSUSE Leap 15.3 SLE Updates       | SUSE-2019-2229    | security    | important | ---         | not needed | -          | Security update for slurm
openSUSE Leap 15.3 SLE Updates       | SUSE-2019-2340    | security    | important | ---         | not needed | -          | Security update for skopeo
openSUSE Leap 15.3 SLE Updates       | SUSE-2020-1280    | recommended | moderate  | ---         | not needed | -          | Recommended update for postgresql, postgresql10, postgresql12
openSUSE Leap 15.3 SLE Updates       | SUSE-2020-1397    | recommended | moderate  | ---         | not needed | -          | Recommended update for pdsh, pmix, slurm 20.02
openSUSE Leap 15.3 SLE Updates       | SUSE-2020-1611    | recommended | moderate  | restart     | applied    | -          | Recommended update for libsolv, libzypp, zypper
...
...
...

Verificando parches

patch-check

Este comando mostrar谩 la cantidad de parches disponibles para el sistema:

lunia:~ # zypper pchk
Loading repository data...
Reading installed packages...

Found 14 applicable patches:
Category    | Patches
------------+--------
security    | 8
recommended | 6

14 patches needed (8 security patches)

Obtener informaci贸n de parches

patch-info
info -t patch

Se puede consultar con el comando info, especificando que el tipo es un parche, los nombres se obtienen mediante 'zypper lp'

lunia:~ # zypper if -t patch SUSE-2021-538 
Loading repository data...
Reading installed packages...


Information for patch SUSE-2021-538:
------------------------------------
Repository  : openSUSE Leap 15.3 SLE Updates
Name        : SUSE-2021-538
Version     : 1
Arch        : noarch
Vendor      : maint-coord@suse.de
Status      : needed
Category    : recommended
Severity    : moderate
Created On  : Mon Feb 22 07:54:16 2021
Interactive : ---
Summary     : Recommended update for open-vm-tools
Description : 
    This update for open-vm-tools fixes the following issues:

    - updated to 11.2.5 (build 17337674) (bsc#1180997)
      * Some potential memory leaks were fixed
      * The SUSE specific vmtoolsd PAM configuration file incorrectly referenced pam_securetty.so

    Some minor issues have been fixed as well. Please refer to the rpm's changelog file in order to
    see the full list of all changes.
Provides    : patch:SUSE-2021-538 = 1
Conflicts   : [41]
    libvmtools-devel.i586 < 11.2.5-4.12.1
    libvmtools-devel.noarch < 11.2.5-4.12.1
    libvmtools0.i586 < 11.2.5-4.12.1
    libvmtools0.noarch < 11.2.5-4.12.1
    libvmtools0-debuginfo.i586 < 11.2.5-4.12.1
    libvmtools0-debuginfo.noarch < 11.2.5-4.12.1
    open-vm-tools.i586 < 11.2.5-4.12.1
    open-vm-tools.noarch < 11.2.5-4.12.1
    open-vm-tools.src < 11.2.5-4.12.1
    open-vm-tools-debuginfo.i586 < 11.2.5-4.12.1
    open-vm-tools-debuginfo.noarch < 11.2.5-4.12.1
    open-vm-tools-debugsource.i586 < 11.2.5-4.12.1
    open-vm-tools-debugsource.noarch < 11.2.5-4.12.1
    open-vm-tools-desktop.i586 < 11.2.5-4.12.1
    open-vm-tools-desktop.noarch < 11.2.5-4.12.1
    open-vm-tools-desktop-debuginfo.i586 < 11.2.5-4.12.1
    open-vm-tools-desktop-debuginfo.noarch < 11.2.5-4.12.1
    open-vm-tools-sdmp.i586 < 11.2.5-4.12.1
    open-vm-tools-sdmp.noarch < 11.2.5-4.12.1
    open-vm-tools-sdmp-debuginfo.i586 < 11.2.5-4.12.1
    open-vm-tools-sdmp-debuginfo.noarch < 11.2.5-4.12.1
    libvmtools-devel.x86_64 < 11.2.5-4.12.1
    libvmtools0.x86_64 < 11.2.5-4.12.1
    libvmtools0-debuginfo.x86_64 < 11.2.5-4.12.1
    open-vm-tools.x86_64 < 11.2.5-4.12.1
    open-vm-tools-debuginfo.x86_64 < 11.2.5-4.12.1
    open-vm-tools-debugsource.x86_64 < 11.2.5-4.12.1
    open-vm-tools-desktop.x86_64 < 11.2.5-4.12.1
    open-vm-tools-desktop-debuginfo.x86_64 < 11.2.5-4.12.1
    open-vm-tools-sdmp.x86_64 < 11.2.5-4.12.1
    open-vm-tools-sdmp-debuginfo.x86_64 < 11.2.5-4.12.1
    libvmtools-devel.aarch64 < 11.2.5-4.12.1
    libvmtools0.aarch64 < 11.2.5-4.12.1
    libvmtools0-debuginfo.aarch64 < 11.2.5-4.12.1
    open-vm-tools.aarch64 < 11.2.5-4.12.1
    open-vm-tools-debuginfo.aarch64 < 11.2.5-4.12.1
    open-vm-tools-debugsource.aarch64 < 11.2.5-4.12.1
    open-vm-tools-desktop.aarch64 < 11.2.5-4.12.1
    open-vm-tools-desktop-debuginfo.aarch64 < 11.2.5-4.12.1
    open-vm-tools-sdmp.aarch64 < 11.2.5-4.12.1
    open-vm-tools-sdmp-debuginfo.aarch64 < 11.2.5-4.12.1

Actualizaci贸n de paquetes

list-updates o lu
update o up

Para actualizar los paquetes con la versi贸n nueva disponible:

lunia:~ # zypper up   
Loading repository data...
Reading installed packages...

The following 2 package updates will NOT be installed:
  vlc-codec-gstreamer vlc-vdpau

The following 7 packages are going to be upgraded:
  cpp libX11-6 libX11-data libX11-xcb1 libopenmpt0 libxml2-2 libxml2-tools

7 packages to upgrade.
Overall download size: 1.9 MiB. Already cached: 0 B. No additional space will be used or freed after the operation.
Continue? [y/n/v/...? shows all options] (y): n

Se puede obtener una lista de actualizaciones con:

lunia:~ # zypper lu
Loading repository data...
Reading installed packages...
S | Repository                     | Name          | Current Version | Available Version | Arch
--+--------------------------------+---------------+-----------------+-------------------+-------
v | openSUSE Leap 15.3 SLE Updates | cpp           | 7-3.3.22        | 7-3.6.1           | x86_64
v | openSUSE Leap 15.3 SLE Updates | libX11-6      | 1.6.5-3.18.1    | 1.6.5-3.21.1      | x86_64
v | openSUSE Leap 15.3 SLE Updates | libX11-data   | 1.6.5-3.18.1    | 1.6.5-3.21.1      | noarch
v | openSUSE Leap 15.3 SLE Updates | libX11-xcb1   | 1.6.5-3.18.1    | 1.6.5-3.21.1      | x86_64
v | openSUSE Leap 15.3 SLE Updates | libopenmpt0   | 0.3.19-2.10.1   | 0.3.28-2.13.1     | x86_64
v | openSUSE Leap 15.3 SLE Updates | libxml2-2     | 2.9.7-3.34.1    | 2.9.7-3.37.1      | x86_64
v | openSUSE Leap 15.3 SLE Updates | libxml2-tools | 2.9.7-3.34.1    | 2.9.7-3.37.1      | x86_64

Los comandos de arriba mostrar谩n o actualizar谩n solo los paquetes que no tengan problemas de dependencias. Para obtener una lista completa de los paquetes para los que exista una versi贸n nueva:

lunia:~ # zypper lu -a
Loading repository data...
Reading installed packages...
S | Repository                     | Name                | Current Version  | Available Version | Arch
--+--------------------------------+---------------------+------------------+-------------------+-------
v | openSUSE Leap 15.3 SLE Updates | cpp                 | 7-3.3.22         | 7-3.6.1           | x86_64
v | openSUSE Leap 15.3 SLE Updates | libX11-6            | 1.6.5-3.18.1     | 1.6.5-3.21.1      | x86_64
v | openSUSE Leap 15.3 SLE Updates | libX11-data         | 1.6.5-3.18.1     | 1.6.5-3.21.1      | noarch
v | openSUSE Leap 15.3 SLE Updates | libX11-xcb1         | 1.6.5-3.18.1     | 1.6.5-3.21.1      | x86_64
v | openSUSE Leap 15.3 SLE Updates | libopenmpt0         | 0.3.19-2.10.1    | 0.3.28-2.13.1     | x86_64
v | openSUSE Leap 15.3 SLE Updates | libxml2-2           | 2.9.7-3.34.1     | 2.9.7-3.37.1      | x86_64
v | openSUSE Leap 15.3 SLE Updates | libxml2-tools       | 2.9.7-3.34.1     | 2.9.7-3.37.1      | x86_64
v | Packman Repository             | vlc-codec-gstreamer | 3.0.13-bp153.1.1 | 3.0.13-pm153.2.2  | x86_64
v | Packman Repository             | vlc-vdpau           | 3.0.13-bp153.1.1 | 3.0.13-pm153.2.2  | x86_64

Esto mostrar谩 una lista de todos los candidatos, sean o no instalables, requieran o no interacci贸n con el usuario para resolver problemas de dependencias.

Actualizaci贸n de la distribuci贸n

dist-upgrade o dup

Este comando utiliza el algoritmo de actualizaci贸n de distribuci贸n, el cual maneja paquetes rotos, discontinuados, etc. Se usa para cambiar a otra versi贸n de la distribuci贸n.

lunia:~ # zypper dup

Se recomienda habilitar solo los repositorios principales de la versi贸n mas unos pocos importantes que se usen (y a煤n mejor - la versi贸n correspondiente al repositorio principal) durante la actualizaci贸n. Tambi茅n se puede especificar el repositorio a usar mediante la opcion --repo: zypper dup -r repo1 -r repo2 ....

P: 驴Es cierto que "zypper up" solo actualiza paquetes cuando la versi贸n nueva est谩 en el mismo repositorio y "zypper dup" actualiza todo, sin importar en que repositorio est茅 el paquete nuevo?
R: "zypper up" actualiza los paquetes si una versi贸n nueva est谩 disponible pero no cambia de "distribuidor" (Nota: El Build Service entero tiene el mismo distribuidor). "zypper dup" tratar谩 de sincronizar los paquetes actualmente instalados con una disponible de cualquier repositorio habilitado. Esto significa que tambi茅n desactualizar谩 paquetes instalados si no hay versi贸n m谩s nueva o igual.

Dialogo informacion 64x64.png

Uso de zypper en aplicaciones y scripts

Zypper soporta numerosas opciones globales las cuales lo hacen adecuado para su uso dentro de procesos autom谩ticos como por ejemplo scripts. Tambi茅n, varios c贸digos de salida diferentes est谩n listados en la p谩gina de manual que pueden ser revisados para el uso de zypper en procesos autom谩ticos.


Modo no interactivo

--non-interactive

En este modo zypper no preguntara nada al usuario y usar谩 respuestas por defecto. Cuando se usa esta opci贸n se garantiza que zypper no se quedar谩 esperando una respuesta en el dispositivo de entrada est谩ndar (stdin) o en un bucle infinito.

Por ejemplo, para actualizar el sistema autom谩ticamente sin confirmaci贸n se usa:

lunia:~ # zypper --non-interactive update

Este comando no requiere confirmaci贸n del usuario para proseguir con la actualizaci贸n, salta los paquetes o parches que sean interactivos y necesiten alguna confirmaci贸n adicional y responde autom谩ticamente cualquier otra consulta.

Modo sin chequeo GPG

--no-gpg-checks

Si esta opci贸n es usada, zypper siempre elegir谩 continuar si alg煤n control GPG falla, ej. un archivo de repositorio no esta firmado y deber铆a estarlo, el archivo esta firmado y el control falla, etc.


Auto-aceptar licencias

--auto-agree-with-licenses

Esta opci贸n es para los comandos install, remove y update. Us谩ndola, el usuario declara que ley贸 y acept贸 los t茅rminos de licencias del software que el comando instalar谩, y zypper autom谩ticamente contestara 'S铆' a la confirmaci贸n de la licencia. Esto es 煤til para quienes instalan el mismo conjunto de paquetes en varios equipos mediante alg煤n proceso autom谩tico y ya han le铆do todas las licencias.

Silenciar salida

--quiet

Evita que se muestre texto como barras de progreso o informaci贸n, solo muestra los resultados de las operaciones y errores.


Salida XML

--xmlout

Esta opci贸n hace que zypper hable en XML. Esto permite a scripts y otro tipo de aplicaciones procesar la salida de zypper en un est谩ndar bien definido. El esquema RNC de la salida XML de zypper esta disponible aqu铆 y en /usr/share/zypper/xml/xmlout.rnc.

No toda (pero s铆 la mayor铆a) de la salida est谩 actualmente en XML; el objetivo es tener toda la salida posible en XML.

Indicaciones

La siguiente deber铆a ser una lista completa de los casos donde zypper interacci贸n con el usuario junto con las respuestas utilizadas en el modo no interactivo. Todas las opciones adicionales mencionadas ac谩 tienen prioridad sobre --non-interactive, as铆 que, si se usan, las respuestas que implican se usan autom谩ticamente aunque no se indique --non-interactive.


Indicaciones respecto a GPG

Donde no se use --no-gpg-checks, un mensaje o una advertencia son mostradas en la salida de error est谩ndar (stderr) y en el archivo de registro (log).

prompt default answer with --no-gpgp-checks note
accept unsigned file? N Y
accept new key (reject the key, trust temporarily, or trust always? [r/t/a]) R R a new key can be trusted or imported in the interactive mode only
accept unknown key? N Y
verification of signed file failed, continue? N Y
no digest for a file, continue? N Y
accept unknown digest? N Y

Otras indicaciones

prompt default answer other answer note
proceed with installation/removal/update? Y in addition, the --no-confirm option can be used with the install/remove/update commands even without the global --non-interactive
confirm 3rd party license N Y if --auto-agree-with-licenses is used in addition, for zypper update, --skip-interactive option can be used to exclude interactive patches from to-be-installed list (a heritage of rug)
confirm a patch message Y
problem while installing/removing a resolvable, Abort/Retry/Ignore? ABORT this is ugly and can be improved in future
problem while downloading a package, Abort/Retry/Ignore? ABORT this is also ugly, can be enhanced somehow in the future
dependency conflict, #/s/r/c (solution number, skip, retry, or cancel) c always cancel, user interaction is needed to resolve dependencies
media change request ABORT
remove problematic lock? Y

Compatibilidad con rug

La sintaxis de zypper es similar a la de rug, aunque sus 贸rdenes y opciones han comenzado a divergir, como sucede tambi茅n con la informaci贸n de salida y su comportamiento. Sin embargo, zypper es capaz de trabajar en un modo compatible con rug (usando la opci贸n global -r o --rug-compatible) y admite la mayor铆a de las 贸rdenes de rug. Para obtener m谩s detalles vea man zypper, secci贸n COMPATIBILITY WITH RUG.