Zypper/Usage/11.1

De openSUSE, la enciclopedia libre.

Geeko 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.


Image:susemini.png
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.