Zypper/Usage/11.1
De openSUSE, la enciclopedia libre.
| Este articulo trata sobre el uso de Zypper, el administrador de paquetes desde linea de comando que utiliza la libreria Libzypp. Este articulo contiene informacion complamentaria a la pagina man de Zypper (man zypper). Lo que no encuentres aquí, debería estar en la pagina del man y viceversa. |
| Versión: 11.1
| Este articulo se basa en zypper 1.0.2 que apareció en openSUSE 11.1. Para otras versiones consultar Zypper/Versions |
Tabla de contenidos
|
Referencia Rápida
Esto es lo que probablemente usarás con más frecuencia.
zypper # muestra la lista de opciones globales y comandos disponibles zypper help search # muestra la ayuda para el comando search zypper lp # para ver que actualizaciones de parches son necesarias 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 que coincidan con el patrón 'yast*' zypper up # para actualizar todos los paquetes instalados, para los qu e hay actualización
Nota:
PREGUNTA: ¿Es cierto que "zypper up" solo actualiza paquetes cuando existe una nueva versión en el mismo repositorio del que se instalo la versión actual y "zypper dup" actualiza todo sin importar en que repositorio este el nuevo paquete?
RESPUESTA: "zypper up" actualiza los paqutes si existe una nueva version, pero no cambia el proveedor del paquete. "zypper dup" intentará sincronizar los paquetes instalados con todos los que encuentre en los repositorios que tienes activados. Esto significa que tambien puede hacer un downgrade de paquetes si tienes instalada una version superior a la que se encuentra en los repositorios.
Uso General
La sintaxis general de zypper es:
zypper [opciones-globales] comando [opciones-del-comando] [argumentos] ...
Los componentes entre corchetes son opcionales, por lo que la forma mas sencilla de ejecutar zypper es escribir el comando seguido de un comando.
Además, es posible elegir una o más opciones globales simplemente escribiéndolas justo antes del comando: (ejecutar el comando, pero no me preguntes nada, decidelo tu)
zypper --non-interactive patch
Para usar opciones específicas de un comando en particular, escríbelas justo detras del comando: (aplica los parches necesarios al sistema, pero no me pidas confirmación de ninguna licencia, ya las he leido antes)
zypper patch --auto-agree-with-licenses
Algunos de los comandos requieren uno o mas argumentos: (instalar o actualizar mplayer)
zypper install mplayer
Algunas de las opciones también requieren un argumento: (buscar patrones)
zypper search -t pattern
Todos los anteriores combinados: (instalar mplayer y amarok utilizando sólo el repositorio, se detallado)
zypper -v install --repo factory mplayer amarok
Interaccion con el Usuario
Cuando zypper necesite interacción del usuario, listará las posibles respuestas entre paréntesis junto al texto con la pregunta. Para elegir la respuesta por defecto, simplemente presiona <enter> (la respuesta por defecto se muestra en mayúsculas (con la excepción de los carácteres no ascii)). Algunas preguntas tienen disponible ayuda, en ese caso aparece un símbolo de interrogación '?' entre las posibles respuestas. Para hacer que zypper utilice la opción por defecto para todas las preguntas sin intervención del usuario, utiliza la opción global --non-interactive.
Vocabulario
- repositorio - directorio local o remoto que contienen paquetes e información de los paquetes (package metadata).
- alias - un alias de un repositorio, es una versión corta del nombre del repositorio para utilizarlo con los comandos de administración de repositorios y opciones como removerepo or --repo.
- package - contenedor de Software (paquete RPM, paquete de fuentes).
- patch - representa un paquete o grupo de paquetes necesarios para instalar una actualización.
- pattern - representa un grupo de packages. Por ejemplo el pattern Http Server tendría definidas las dependencias con todos los paquetes que hay que instalar para poder ejecutar y administrar un servidor http server.
- product - representa el producto completo (p.e. 'openSUSE 11.1').
Comandos
zypper ofrece una varios comandos que se pueden agrupar en las siguientes categorias:
- Administración de repositorios
refresh, repos, addrepo, removerepo, modifyrepo, namerepo
refresh-services, services, addservice, removeservice, modifyservice - Administración package
install, remove, source-install - Administración 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 - bloqueos
locks, addlock, removelock, cleanlocks - utilidades
verify, install-new-recommends - otros
help, licenses, versioncmp, targetos
Mostrando Ayuda
Para mostrar la ayuda general, simplemente escribe zypper sin opciones ni argumentos. Para mostrar la ayuda de un comando específico, usa:
# zypper help [comando]
Se puede utilizar zypper -h [comando] o zypper [comando] -h.
Administración de repositorios
Es posible especificar repositorios existentes por su número en la lista creada por zypper lr, alias, o URI. Cuando se usan los numeros, asegúrate de que siempre haces antes un zypper lr, ya que los numeros podrian cambiar despues de hacer cambios en los repositorios.
Listando los Repositorios Definido
repos o lr
Ejemplo :
$ zypper lr # | Alias | Name | Enabled | Refresh --+-----------------------+-----------------------+---------+-------- 1 | packman | Packman 11.1 | Yes | No 2 | fate | fate | No | No 3 | openSUSE-11.1-Updates | Updates for 11.1 | Yes | Yes 4 | repo-oss | openSUSE-11.1-Oss | Yes | No 5 | repo-non-oss | openSUSE-11.1-Non-Oss | Yes | No 6 | repo-debug | openSUSE-11.1-Debug | No | No
Otros ejemplos:
zypper lr -u # para incluir la URI del repositorio también en la tabla zypper lr -d # para incluir otras propiedades de los repos en la tabla zypper lr -P # para incluir tambien la prioridad de los repos y ordenarlos por la misma zypper lr -e my # exporta todos los repositorios definidos en el archivo 'my.repo'
Agregando Repositorios
addrepo o ar
Antes de que se pueda instalar cualquier paquete, al menos debemos configurar un repositorio. Para agregar un repositorio, usa el comando addrepo :
Ejemplo:
$ zypper ar http://download.videolan.org/pub/vlc/SuSE/11.1 vlc Adding repository 'vlc' [done] Repository 'vlc' successfully added Enabled: Yes Autorefresh: No URI: http://download.videolan.org/pub/vlc/SuSE/11.1
Otros ejemplos:
zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.1/X11:XGL.repo # via archivo .repo zypper ar -c ftp://some.download.site myalias # agrega y prueba el repositorio zypper ar my/dir/with/rpms local # agrega un directorio local con archivos rpm como repositorio
Consultar también Libzypp/URI para ver una lista de los tipos de medios y URIs.
Actualizando Repositorios
refresh o ref
Después de agregar un repositorio o cuando un repositorio se queda anticuado, tiene que ser actualizado. Esto significa descargar el paquetede de metadata del repositorio y preprocesar la información en la cache .solv.
$ zypper refresh Downloading repository 'Packman 11.1' metadata [done] Building repository 'Packman 11.1' cache [done] Downloading repository 'Updates for 11.1' metadata [done] Building repository 'Updates for 11.1' cache [done] Repository 'openSUSE-11.1-Oss' is up to date. All repositories have been refreshed.
Si la opción autorefresh esta activada para un repositorio, no tienes que preocuparte de actualizarlo, esto se hace automaticamente cuando haga falta. Sin embargo, algunas personas prefieren controlar cuando se actualizan los repositorios, asi que desactivan la opción de autorefresh. Ver man zypper para más detalles.
Otros ejemplos:
zypper ref packman main # se puede especificar que repositorios actualizar zypper ref -f upd # fuerza la actualización para el repositorio 'upd'
Borrando Repositorios
removerepo o rr
$ zypper rr vlc 1 23 foo Repository 23 not found by alias, number or URI. Repository foo not found by alias, number or URI. Removing repository 'repo-debug' [done] Repository 'repo-debug' has been removed. Removing repository 'vlc' [done] Repository 'vlc' has been removed.
Modificando Repositorios
modifyrepo o mr
Desactivar el repositorio #6:
$ zypper mr -d 6 Repository 'repo-non-oss' has been sucessfully disabled.
Activar el autorefresh y el cacheo de archivos rpm para el repositorio 'packman' y establecer su prioridad en 70:
$ 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.
Desactivar el cacheo de archivos RPM para todos los repositorios:
$ zypper mr -Ka Nothing to change for repository 'local'. RPM files caching has been disabled for repository 'packman'. Nothing to change for repository 'fate'. Nothing to change for repository 'upd'. Nothing to change for repository 'repo-oss'. Nothing to change for repository 'repo-non-oss'.
Activar el cacheo de archivos RPM para todos los repositorios:
$ zypper mr -ka RPM files caching has been enabled for repository 'repo-non-oss'. RPM files caching has been enabled for repository 'Main Repository (OSS)'. RPM files caching has been enabled for repository 'Main Repository (NON-OSS)'. RPM files caching has been enabled for repository 'openSUSE-11.1-Updates'.
Renombrando Repositorios
namerepo o nr
$ zypper nr 3 upd Repository 'openSUSE-11.1-Updates' renamed to 'upd'.
Este comando solo permite cambiar el alias del repositorio. Si se quiere cambiar el nombre mostrado del repositorio, mira el comando mr.
Manten los alias cortos y simples para facilitar su uso como argumentos de comandos y opciones de --repo. Utilizar un alias es más seguro que utilizar el número de repositorio y más fácil que usar la URI.
Exportar/Importar Repositorios
repos --export o lr -e
Puedes exportar la lista completa de repositorios a un archivo para importarla más tarde en la misma o en otra máquina.
zypper lr --export backups/repos/foo.repo zypper ar backups/repos/foo.repo
Service Management
<falta en el artículo original>
Administración de Paquetes
Eligiendo Paquetes
Hay varias formas de elegir paquetes para instalar o eliminar.
- por nombre de prestación
zypper in eclipse
zypper in qt - por nombre de prestación y/o arquitectura y/o version
zypper in 'zypper<0.12.10'
zypper in zypper.i586=0.12.11 - por nombre exacto del paquete (--name)
zypper in -n ftp - por nombre exacto del paquete y repositorio (implica --name)
zypper in factory:zypper - por nombre de paquete usando comodines
zypper in yast*ftp* - especificando un archivo .rpm package para instalar
Instalando Paquetes
install o in
Se pueden instalar paquetes por nombre...
$ zypper install git Reading installed packages... The following NEW packages are going to be installed: subversion-perl sqlite3 perl-DBD-SQLite git-svn git-cvs git Overall download size: 1.1 M. After the operation, additional 4.6 M will be used. Continue? [YES/no]: Downloading package subversion-perl-1.5.0-96.1.x86_64 (1/6), 950.0 K (4.1 M unpacked) Downloading: subversion-perl-1.5.0-96.1.x86_64.rpm [done] Installing: subversion-perl-1.5.0-96.1 [done] Downloading package sqlite3-3.5.7-17.1.x86_64 (2/6), 30.0 K (40.0 K unpacked) Downloading: sqlite3-3.5.7-17.1.x86_64.rpm [done] Installing: sqlite3-3.5.7-17.1 [done] Downloading package perl-DBD-SQLite-1.14-41.1.x86_64 (3/6), 44.0 K (103.0 K unpacked) Downloading: perl-DBD-SQLite-1.14-41.1.x86_64.rpm [done] Installing: perl-DBD-SQLite-1.14-41.1 [done] Downloading package git-svn-1.5.4.5-26.1.x86_64 (4/6), 66.0 K (195.0 K unpacked) Downloading: git-svn-1.5.4.5-26.1.x86_64.rpm [done] Installing: git-svn-1.5.4.5-26.1 [done] Downloading package git-cvs-1.5.4.5-26.1.x86_64 (5/6), 63.0 K (205.0 K unpacked) Downloading: git-cvs-1.5.4.5-26.1.x86_64.rpm [done] Installing: git-cvs-1.5.4.5-26.1 [done] Downloading package git-1.5.4.5-26.1.x86_64 (6/6), 10.0 K (3.0 K unpacked) Downloading: git-1.5.4.5-26.1.x86_64.rpm [done] Installing: git-1.5.4.5-26.1 [done]
...o por la prestación que ofrecen:
$ zypper in MozillaFirefox \< 3 Reading installed packages... 'MozillaFirefox' providing 'MozillaFirefox<3' is already installed. Nothing to do.
$ zypper in MozillaFirefox \>= 3 Reading installed packages... The following packages are going to be upgraded: mozilla-xulrunner190-translations MozillaFirefox mozilla-xulrunner190-gnomevfs mozilla-xulrunner190 MozillaFirefox-translations The following package is going to be REMOVED: mozilla-xulrunner190-lang Overall download size: 11.0 M. After the operation, 12.9 M will be freed. Continue? [Y/n/p/?]:
$ zypper in 'libqtiff.so()(64bit)' Reading installed packages... 'libqt4-x11' providing 'libqtiff.so()(64bit)' is already installed. Nothing to do.
Otros ejemplos:
zypper in yast* # instalar todos los modulos de yast zypper in -t pattern lamp_server # instalar el patrón lamp_server zypper in vim -emacs # instalar vim y eliminar emacs en al misma orden zypper in amarok packman:libxine1 # instalar libxine1 desde packman y amarok desde cualquier repo zypper in bitchx-1.1-81.x86_64.rpm # instalar bitchx de un rpm en un directorio local zypper in -f subversion # forzar la reinstalacion de subversion
Eliminando Paquetes
remove o rm
El comando remove es igual que install, pero su efecto es el contrario :O)
$ zypper remove sqlite Reading installed packages... The following packages are going to be REMOVED: sqlite3 perl-DBD-SQLite git-cvs git After the operation, 351.0 K will be freed. Continue? [YES/no]: n
Paquetes de Fuentes y Build Dependencies
source-install o si
$ zypper si zypper Reading installed packages... The following NEW packages are going to be installed: libzypp-devel libsatsolver-devel The following source package is going to be installed: zypper Overall download size: 1.5 M. After the operation, additional 6.7 M will be used. Continue? [YES/no]:
Es posible instalar solo los build deps o solo el paquete fuente:
zypper in -D zypper # solo el paquete fuente (sin build deps) zypper in -d zypper # solo los build deps (sin paquete fuente)
Actualizando Paquetes
update o up
Los siguientes comandos actualizan paquetes con las nuevas versiones disponibles. Para más información vea también Administración de Actualizaciones.
zypper up # actualiza todos los paquetes instalados con la ultima versión disponible zypper up libzypp zypper # actualiza libzypp y zypper zypper in sqlite3 # actualiza sqlite3 o lo instala si no estaba instalado
Consultas
Buscando Paquetes
search o se
Por defecto, el comando search' busca paquetes de cualquier tipo, estado o repositorio, que tengan nombres que contengan la cadena especificada (no distingue entre mayúsculas y minúsculas):
$ zypper se sqlite Reading installed packages... S | Name | Summary | Type --+--------------------------+----------------------------------------------------------------+-------- | libapr-util1-dbd-sqlite3 | DBD driver for SQLite 3 | package i | libgda-3_0-sqlite | Sqlite Provider for GNU Data Access (GDA) | package | libqt4-sql-sqlite | Qt 4 sqlite plugin | package i | libsqlite3-0 | Shared libraries for the Embeddable SQL Database Engine | package | libsqlite3-0-32bit | Shared libraries for the Embeddable SQL Database Engine | package | mediatomb-sqlite | UPnP AV MediaServer | package i | mono-data-sqlite | Database connectivity for Mono | package | pdns-backend-sqlite2 | SQLite 2 backend for pdns | package | pdns-backend-sqlite3 | SQLite 3 backend for pdns | package i | perl-DBD-SQLite | The DBD::SQLite is a self contained RDBMS in a DBI driver | package i | php5-sqlite | PHP5 Extension Module | package | python-sqlite2 | Python bindings for sqlite 2 | package | qt3-sqlite | SQLite Database Plug-In for Qt | package | rekall-sqlite | Rekall sqlite Database Backend | package | rubygem-sqlite3 | A Ruby interface for the SQLite3 database engine | package i | sqlite2 | Embeddable SQL Database Engine | package | sqlite2-32bit | Embeddable SQL Database Engine | package | sqlite2-devel | Embeddable SQL Database Engine | package i | sqlite3 | Embeddable SQL Database Engine | package | sqlite3-devel | Embeddable SQL Database Engine | package | sqlite3-tcl | Tcl binding for SQLite | package | tntdb1-sqlite | Tntdb is a c++-class-library for easy database-access - sqlite | package | ulogd-sqlite | SQLite output plugin for ulogd | package
La letra "i" en la primera columna (1), indica que el paquete ya esta instalado. Para ver todas las versiones disponibles de los paquetes coincidentes use la opción "--details/-s" :
$ zypper search -s --match-exact virtualbox-ose Reading installed packages... S | Name | Type | Version | Arch | Repository --+----------------+---------+------------+--------+------------------------------------ v | virtualbox-ose | package | 1.6.2-2.1 | x86_64 | VirtualBox OSE i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.1-Oss v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE ( v | virtualbox-ose | package | 1.6.2-2.1 | i586 | VirtualBox OSE v | virtualbox-ose | package | 1.5.6-33.1 | i586 | openSUSE-11.1-Oss v | virtualbox-ose | package | 1.5.6-20.3 | i586 | VirtualBox OSE
La letra "i" en la primera columna (1), indica que el paquete ya esta instalado, mientras que la letra "v" indica que tenemos instalada una versión distinta a la que aparece listada.
Otros ejemplos:
zypper se -dC --match-words RSI # busca las siglas RSI (en mayúsculas), incluso en resumenes y descripciones zypper se 'yast*' # muestra todos los paquetes que comienzan con 'yast' zypper se -r packman # lista todos los paquetes del repositorio 'packman' zypper se -t pattern -r repo-oss # lista todos los patrones del repo 'repo-oss' zypper se -t product # lista todos los productos disponibles
Obteniendo Informacion de los Paquetes
info o if
$ zypper info amarok Reading installed packages... Information for package amarok: Repository: Packman 11.1 Name: amarok Version: 1.4.9.1-103.pm.1 Arch: x86_64 Vendor: packman.links2linux.de Installed: Yes Status: up-to-date Installed Size: 12.1 M Summary: Media Player for KDE Description: Amarok is a media player for all kinds of media, supported by aRts, GStreamer or Xine (depending on the packages you install). This includes MP3, Ogg Vorbis, audio CDs and streams. It also supports audio effects of all kinds that are provided by aRts. Playlists can be stored in .m3u or .pls files. Amarok also provides audio file collection management, by using either an embedded sqlite3, a MySQL or a PostgreSQL database.
Este comando muestra información detallada sobre el paquete 'amarok'.
Otros ejemplos:
zypper info -t patch MozillaFirefox # muestra informacion sobre el parche 'MozillaFirefox' zypper patch-info MozillaFirefox # lo mismo que arriba zypper info -t pattern lamp_server # muestra informacion sobre el patrón 'lamp_server' zypper info -t product openSUSE-FTP # muestra informacion sobre el producto especificado
Dependencias
what-provides o wp
Para mostrar todos los proveedores de una prestación especificada:
$ zypper wp firefox Reading installed packages... S | Name | Type | Version | Arch | Repository --+----------------+---------+-------------+--------+------------------ i | MozillaFirefox | package | 3.0-0.1 | x86_64 | Updates for 11.1 v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.1-Oss v | MozillaFirefox | package | 3.0-0.1 | i586 | Updates for 11.1 v | MozillaFirefox | package | 2.9.95-25.1 | i586 | openSUSE-11.1-Oss
Este comando es similar a rpm -q --whatprovides firefox, pero rpm sólo puedeis consultar la base de datos RPM (de los paquetes instalados). Zypper, por otro lado, te dira quien te da esa prestación en cualquier repositorio, no solo los instalados.
Otras Consultas
Los comandos patches, packages, patterns, y products son similares a search -s -t [patch,package,pattern,product], excepto que muestran más información sobre el tipo de paquete. Por ejemplo patches muestra también el estado del parche (Needed/Security/Not Applicable).
Los comandos list-updates y patch-check se discuten en Administración de Actualizaciones.
Bloqueos de Paquetes
locks o ll addlock o al removelock o rl cleanlocks o cl
Los bloqueos de paquetes sirven para prevenir cambios en los paquetes del sistema. Los paguetes que tengan un bloqueo no pueden cambiar su estado de instalados; no pueden ser eliminados o actualizados, los paquetes que no esten ya instalados no se podrán instalar.
Para bloquear todos los paquetes cuyo nombre empiece por 'yast2':
$ zypper al 'yast2*' Reading installed packages... Specified lock has been successfully added.
Cuidado con la interpretacion de la shell, usa comillas si existe la posibilidad de que yast* coincida con el nombre de algun archivo o direcotrio en el directorio actual.
Para ver los bloqueos activos:
$ zypper ll # | Name | Type | Repository --+------------------+---------+----------- 1 | libpoppler3 | package | (any) 2 | libpoppler-glib3 | package | (any) 3 | yast* | package | (any)
Para eliminar un bloqueo:
$ zypper rl yast2-packager Reading installed packages... The following query locks some of the objects you want to unlock: type: package match_type: glob case_sensitive: on solvable_name: yast2* Do you want remove this lock? [YES/no]: y Lock count has been succesfully decreased by: 1
Otros ejemplos:
zypper al zypper # bloquear el paquete 'zypper' zypper al -r repo-oss virtualbox* # restringir el bloqueo al repositorios 'repo-oss' (permitiendo la instalación desde otros repos) zypper rl 3 # eliminar un bloque por número
Puede modificar los bloqueos directamente editando el archivo de bloqueos.
Utilidades
Verificar Dependencias
verify o ve
Puede que en ocasisones acabes con un sistema inconsistente en lo que se refiere a la dependencia de paquetes. Si alguna de las aplicaciones no se inicia y muestra un mensaje indicando que le falta algo, zypper lo puede comprobar:
$ rpm -e --nodeps mozilla-xulrunner190 $ firefox Could not find compatible GRE between version 1.9.0 and 1.9.0. $ zypper ve Reading installed packages... Some of the dependencies of installed packages are broken. In order to fix these dependencies, the following actions need to be taken: The following NEW package is going to be installed: mozilla-xulrunner190 Overall download size: 6.5 M. After the operation, additional 23.5 M will be used. Continue? [YES/no]: y
Instalar Nuevos Paquetes Recomendados
install-new-recommends or inr
Este comando encuentra e instala los paquetes nuevos recomendados para los paquetes instalados. Este metodo permite obtener facilmente nuevos lenguajes para tu software o drivers para nuevo hardware.
$ zypper inr Reading installed packages... The following NEW packages are going to be installed: kdebase4-openSUSE-lang bundle-lang-common-cs Overall download size: 534.0 K. After the operation, additional 1.9 M will be used. Continue? [YES/no]:
Administración de Actualizaciones
Hay dos métodos para mantener tu sistema actualizado. Uno es patch-wise, el segundo es package-wise.
El método patch-wise es muy util para la gente que utiliza una versiones estables y quiere actualizar su sistema con los parches lanzados mediante los repositorios Update. Los repositorios Update se añaden durante la instalación o actualización del sistema, o pueden ser añadidos via Online Update Configuration de la pestaña Software en YaST, o manualmente con zypper.
Sería equivalente al módulo de YaST Online Update.
El segundo método, package-wise se describe en la seccion Actiazación de Paquetes y servidores para actualizaciones generales de versiones nuevas de los paquetes desde cualquier repositorio.
Listando los Parches que Necesitamos
list-patches o lp
Para listar todos los parches que necesitamos:
$ zypper lp Reading installed packages... Patches Repository | Name | Version | Category | Status -----------------+--------------------+---------+-------------+------- Updates for 11.1 | KDE4-fixes | 38 | recommended | Needed Updates for 11.1 | MozillaFirefox | 50 | recommended | Needed Updates for 11.1 | NetworkManager-kde | 49 | recommended | Needed
A veces, solo se muestran actualizaciones que afectan al administrador de paquetes, ya que estos se deben aplicar primero. Una vez aplicados, el resto de actualizaciones disponibles aparecerán al usar este comando.
Este comando es equivalente a zypper up -t patch de versiones anteriores de zypper. Para listar todos los paquetes de actualización disponibles usa:
zypper lu
Aplicando Parches
patch
Para aplicar los parches:
$ zypper patch Reading installed packages... The following packages are going to be upgraded: NetworkManager-kde mozilla-nss mozilla-nspr kde4-korganizer The following NEW patches are going to be installed: NetworkManager-kde MozillaFirefox KDE4-fixes Overall download size: 2.9 M. After the operation, additional 283.0 K will be used. Continue? [YES/no]:
Listando Todos los Parches
patches
El comando list-updates solo muestra los parches necesarios. Para ver todos los que estan disponibles usar:
$ zypper patches Reading installed packages... Catalog | Name | Version | Category | Status -----------------+--------------------+---------+-------------+--------------- Updates for 11.1 | KDE4-fixes | 38 | recommended | Installed Updates for 11.1 | MozillaFirefox | 50 | recommended | Installed Updates for 11.1 | NetworkManager-kde | 49 | recommended | Installed Updates for 11.1 | autoyast2 | 37 | recommended | Installed Updates for 11.1 | courier-authlib | 42 | security | Not Applicable Updates for 11.1 | insserv | 47 | recommended | Installed Updates for 11.1 | opera | 43 | security | Installed
Comprobando los Parches
patch-check
Este comando te dira cuantos parches importantes hay disponibles para tu sistema, si es que hay alguno:
$ zypper pchk Reading installed packages... 0 patches needed (0 security patches)
Obteniendo Informacion Sobre los Parches
patch-info
info -t patch
$ zypper info -t patch MozillaFirefox Reading installed packages... Information for patch MozillaFirefox: Name: MozillaFirefox Version: 50 Arch: noarch Vendor: maint-coord@suse.de Status: Installed Category: recommended Created On: Thu 01 Jan 1970 01:00:00 AM CET Reboot Required: No Package Manager Restart Required: No Interactive: No Summary: Mozilla Firefox 3.0 Description: This patch updates Mozilla Firefox to the final 3.0 version. The dependend libraries mozilla-xulrunner190, mozilla-nspr and mozilla-nss were also brought to their release version.
Actualización de Paquetes
list-updates o lu
update o up
Para actualizar los paquetes instalados con su versión disponible mas reciente:
zypper up
Puedes obtener la lista de las actualizaciones disponibles con:
zypper lu
El comando de arriba solo mostrara los paquetes cuya actualización no presenta problemas de dependencias. Para obtener la lista de todos los paquetes que tienen actualización disponible usa:
zypper lu -a
Este comando mostrara todas las actualizaciones aunque no se puedan instalar.
Actualización de la Distribucion
dist-upgrade o dup
Este comando utiliza el algoritmos de actualización de la distribution, el cual gestiona paquetes divididos, paquetes que no se mantienen, y cosas por el estilo. Utilizalo para cambiar a otra distribución superior estable.
Durante un dist-upgrade, se recomienda activar solo el repositorio principal de la distribución que se quiere instalar, más unos pocos repositorios importantes que se estuviesen usando(mejor si se usa la versión correspondiente a la nueva distribución). Esto se puede hacer desabilitando los repositorios antiguos con zypper mr -da, añadiendo los nuevos con zypper ar y haciendo zypper dup. También es posible especificar los repositorios a usar con la opción --repo: zypper dup -r repo1 -r repo2 ....
Nota:
PREGUNTA: Es cierto que "zypper up" sólo actualiza paquetes cuando hay una versión nueva del mismo paquete en el mismo repo del que se instaló y que "zypper dup" actualiza todos los paquetes sin importar desde que repo?
RESPUESTA: "zypper up" actualiza los paquetes si hay una versión nueva, pero no cambia el proveedor. "zypper dup" intentará sincronizar los paquetes instalados con los que haya disponibles de todos los repos activados. Esto significa que también hara un downgrade de paquetes si la versión instalada es superior a las de los repos configurados.
Usando Zypper en Scripts y Aplicaciones
Zypper soporta muchas opciones lo que permite usarlo en procesos automatizados como los scripts. También dispone de diferentes codigos de salida, los cuales estan listados en la página del man de zypper.
Modo No-Interactivo
--non-interactive
En este modo zypper no pedirá confirmación al usuario y utilizará las respuestas por defecto. Usando esta opción, nos aseguramos de que zypper no se quedará esperando una respuesta por stdin.
Por ejemplo, para actualizar tu sistema automáticamente sin confirmación:
# zypper --non-interactive update
Este comando no requiere confirmacion del usuario, evita todos los parches interactivos que puedan necesitar confirmación adicional y responde automáticamente a cualquier pregunta.
Modo No Chequeo de GPG
--no-gpg-checks
Si usamos esta opción, zypper siempre continuará aunque falle algún chequeo de gpg, p.ej. un archivo de un repositorios que no esta firmado y debería estarlo, un archivo firmado en el que falla la comprobación de gpg, etc.
Autoaceptación de Licencias
--auto-agree-with-licenses
Esta opción es espacial para los comandos install, remove y update. Cuando la usamos, el usuario declara que él/ella acepta los términos de la licencia del programa a instalar, por lo que zypper responderá automáticamente 'si' a la confirmación de licencia.
Mensajes Mínimos
--quiet
Evita que se muestren la mayoría de los mensajes como p.ej. el progreso de la instalación y solo muestra el resultado de la operación y los mensajes de error.
Salida en XML
--xmlout
Esta opción hace que zypper muestre su salida en XML. Esto permite a los scripts, interfaces gráficas u otro tipo de aplicaciones que quieran usar zypper, recibir la salida de zypper en un formato estándard. El esquema RNC de la salida XML de zypper se puede consultar aqui y en /usr/share/zypper/xml/xmlout.rnc.
No toda (pero la mayoría) de la salida de zypper esta en XML; el objetivo es tener la mayor cantidad posible.
Preguntas al Usuario
A continuación estan los casos en los que zypper requiere interacción con el usuario junto con las respuestas que se utilizan en el modo non-interactive. Todas las opciones adicionales comentadas aquí, tienen prioridad sobre --non-interactive, así que si las usamos, la respuesta que implican se usará aunque no estemos usando la opción --non-interactive.
Relativas a GPG
Cuando se usa --no-gpg-checks, se muestra un mensaje o se escribe un error en stderr y se guarda en el 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 | una clave nueva solo puede ser aceptada o importada en el modo interactivo |
| 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 Preguntas
| prompt | default answer | other answer | note |
|---|---|---|---|
| proceed with installation/removal/update? | Y | la opción --no-confirm se puede usar con los comandos install/remove/update incluso sin la opción global --non-interactive | |
| confirm 3rd party license | N | Y if --auto-agree-with-licenses is used | además, puede usarse la opción --skip-interactive para excluir de la lista de parches a instalar los parches que necesiten interacción (heredado de rug) |
| confirm a patch message | Y | ||
| problem while installing/removing a resolvable, Abort/Retry/Ignore? | ABORT | esto es molesto y puede mejorarse en el futuro | |
| problem while downloading a package, Abort/Retry/Ignore? | ABORT | esto también es molesto y puede mejorarse en el futuro | |
| 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 |
Cuando la salida es en formato XML, las preguntas se indican con la etiqueta <prompt>, conteniendo el atributo id. Una lista de todos los ids esta disponible en el archivo prompt.h incluido en zypper (/usr/include/zypper/prompt.h).
Compatibilidad con Rug
La sintaxis de Zypper es similar a la de rug pero el funcionamiento y comportamiento de zypper es distinto. Sin embargo, es posible que zypper funcione en modo rug-compatible y soporta la mayoría de los comandos de rug. Para más detalles ver man zypper, sección COMPATIBILITY WITH RUG.

