zypper
Contenido
- 1 Referencia r谩pida
- 2 Uso general
- 3 Vocabulario
- 4 Comandos
- 5 Uso de zypper en aplicaciones y scripts
- 6 Compatibilidad con rug
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 ....
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.