h1

Zypper (OpenSUSE)

18/10/2011

Este artículo describe el uso de Zypper, el administrador de paquetes para OpenSUSE de línea de comandos que usa la librería Libzypp. Contiene información complementaria a la página del manual de Zypper (man zypper).

Referencia rápida


Esto es lo que probablemente usarás más a menudo.

zypper                 # muestra la lista de parámetros y opciones globales
zypper help search     # muestra ayuda para el comando de búsqueda, search
zypper lu              # muestra los parches actualizados que se necesitan
zypper up              # aplica (instala) los parches actualizados
zypper se sqlite       # busca sqlite
zypper rm sqlite2      # desinstala sqlite2
zypper in sqlite3      # instala sqlite3
zypper in yast*        # instala todos los paquetes que coincidan con 'yast*'
zypper up -t package   # actualiza todos los paquetes instalados con nuevas versiones, cuando sea posible

Uso general


La sintaxis general de zypper es:

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

Los componentes encerrados entre corchetes no son obligatorios, por lo que la forma más simple de ejecutar zypper es teclear su nombre seguido de un comando. Por ejemplo, para aplicar los parches pendientes al sistema, teclea:

zypper update

Por otra parte, puedes elegir una o varias opciones globales escribiéndolas justo antes del comando: (ejecuta el comando, pero no me preguntes nada, decide tú mismo)

zypper --non-interactive update

Para usar las opciones específicas de un comando en particular, escríbelas justo después de éste: (aplica los parches necesarios al sistema sin pedirme que confirme ninguna licencia, las he leído todas antes)

zypper update --auto-agree-with-licenses

Algunos comandos requieren uno o más argumentos: (instalar o actualizar el paquete mplayer)

zypper install mplayer

Algunas de las opciones también requieren de argumentos: (actualiza el sistema con paquetes más recientes)

zypper update -t paquete

Todo lo anterior de forma combinada: (instala mplayer y amarok usando sólo el repositorio factory, y muéstrame los detalles)

zypper -v install --repo factory mplayer amarok


Vocabulario


  • repositorio – directorio local o remoto que contiene paquetes e información variada sobre ellos (metadatos de paquetes). Los repositorios son también denominados formalmente fuentes de instalación , servicios o catálogos).
  • alias – un alias de repositorio es una versión abreviada de su nombre para ser usada en comandos de manejo de repositorios y opciones como --removerepo o --repo.
  • paquete – paquete de software (paquete RPM, paquete fuente). Parches, patrones, y productos son tambien referidos a menudo como distintos tipos de paquetes.
  • parche – representa un paquete o un grupo de paquetes necesarios para instalar una actualización (casi siempre de corrección de errores).
  • patrón – representa un conjunto de paquetes. Por ejemplo un patrón Servidor Http tendría definidas las dependencias necesarias a todos aquellos paquetes necesarios para ejecutar y administrar un servidor http, de tal forma que la instalación de dicho patrón desencadenaría la instalación del conjunto correspondiente.
  • producto – representa el producto al completo (por ejemplo ‘openSUSE 10.3’).

Comandos


zypper proporciona una cierta cantidad de comandos, que podemos agrupar en las siguientes categorías:

  • administración de repositorios
    refresh, repos, addrepo, removerepo, modifyrepo, namerepo
  • administración de paquetes
    install, remove, update, dist-upgrade, source-install
  • consulta
    search, info, what-provides, list-updates, patch-check, patches, packages, patterns, products
  • bloqueo
    locks, addlock, removelock
  • utilidades
    verify, install-new-recommends
  • otros
    help

Además, los comandos update, list-updates, patch-check, y patches pueden considerarse como comandos de administración de actualizaciones.

Mostrar la ayuda

Antes que nada, siempre es bueno saber cómo obtener ayuda. Para mostrar una ayuda general (un listado de comandos y opciones globales), teclea zypper sin ninguna opción o argumento. Para imprimar la ayuda de un comando en particular, usa:

# zypper help [comando]

Por comodidad también se puede usar zypper -h [command] y zypper [comando] -h.

Administración de repositorios

Puedes referirte a los repositorios existentes a través del número que los acompaña en la lista que se muestra en zypper lr, o bien por el alias, o la URI. Cuando uses los números, asegúrate de comprobar siempre antes zypper lr, ya que los números pueden cambiar si has hecho cambios en la lista de repositorios.

Listar los repositorios definidos

repos

Salida de ejemplo:

$ zypper lr
# | Alias                 | Nombre                | Activo  | Actualizar
--+-----------------------+-----------------------+---------+--------
1 | packman               | Packman 11.0          | Yes     | No
2 | fate                  | fate                  | No      | No
3 | openSUSE-11.0-Updates | Updates for 11.0      | Yes     | Yes
4 | repo-oss              | openSUSE-11.0-Oss     | Yes     | No
5 | repo-non-oss          | openSUSE-11.0-Non-Oss | Yes     | No
6 | repo-debug            | openSUSE-11.0-Debug   | No      | No

Otros ejemplos:

zypper lr -u       # incluye las URI de los repositorios en la tabla
zypper lr -d       # incluye alguna que otra propiedad más de los repositorios en la tabla
zypper lr -P       # incluye también la prioridad de cada repositorio y ordena la lista por ella
zypper lr -e my    # exporta todas las definición de repositorios a un archivo llamado 'my.repo'

Añadir repositorios

addrepo

Antes de poder instalar ningún paquete debe definirse al menos un repositorio. Para añadir uno, usa el comando addrepo:

Salida de ejemplo:

$ zypper ar http://download.videolan.org/pub/vlc/SuSE/11.0 vlc
Adding repository 'vlc' [done]
Repository 'vlc' successfully added
Enabled: Yes
Autorefresh: No
URI: http://download.videolan.org/pub/vlc/SuSE/11.0

Otros ejemplos:

zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.0/X11:XGL.repo  # via un archivo .repo
zypper ar -c ftp://some.download.site myalias   # prueba el repositorio una vez añadido
zypper ar my/dir/with/rpms local                # añade tu propio directorio local con paquetes rpm como un repositorio

Mira también Libzypp/URI  para ver la lista de tipos de medios soportados y URIs.

Refresco de repositorios

refresh

Después de añadir un repositorio o cuando un repositorio parece obsoleto, necesitas refrescarlo. Esto significa descargar de él un paquete de metadatos y preprocesar los datos en un archivo de caché .solv para una lectura rápida.

$ zypper refresh
Downloading repository 'Packman 11.0' metadata [done]
Building repository 'Packman 11.0' cache [done]
Downloading repository 'Updates for 11.0' metadata [done]
Building repository 'Updates for 11.0' cache [done]
Repository 'openSUSE-11.0-Oss' is up to date.
All repositories have been refreshed.

Si el autorefresh está activado para un repositorio, no necesitas preocuparte de refrescarlo, ocurre automáticamente cuando es necesario. Sin embargo, algunos prefieren mantener el control de esta decisión (por ejemplo, para evitar esperar por el refresco cuando sólo querías ver ‘zypper info krusader’), por lo que deshabilitan el autorefresco. Mira la página man zypper para más detalles.

Otros ejemplos:

zypper ref packman main  # también puedes especificar qué repositorio refrescas
zypper ref -f upd        # forzar el refresco del repositorio 'upd'

Eliminación de repositorios

removerepo

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

Modificar repositorios

modifyrepo

Deshabilitar el repositorio #6:

$ zypper mr -d 6
Repository 'repo-non-oss' has been sucessfully disabled.

Habilitar el autorefresco y el caché de archivos rpm para el repositorio ‘packman’ y definir su prioridad a 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.

Deshabilitar el caché de archivos RPM en 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'.

Renombrado de repositorios

namerepo

$ zypper nr 3 upd
Repository 'openSUSE-11.0-Updates' renamed to 'upd'.

Este comando sólo es capaz actualmente de cambiar el alias de un repositorio. Si lo que quieres es cambiar el nombre a mostrar, echa un vistazo al comando mr.

Usa alias cortos y simples para un uso cómodo como argumentos de los comandos y las opciones –repo. Usar un alias es más seguro que usar el número (ya que eśte puede cambiar y puede llevar fácilmente a errores) y más simple que usar la URI (ya que son largas, déjalas para usarlas con el copiar-y-pegar).

Exportar/Importar

repos -e

Puedes exportar a un archivo la lista entera de repositorios a fin de importarla luego en otra máquina.

zypper lr --export backups/repos/foo.repo
zypper ar backups/repos/foo.repo

Administracion de paquetes

Instalación de paquetes

install

Puedes instalar paquetes por su nombre o por las capacidades que proporcionan:

$ 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 las capacidades que proporcionan:

$ 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*                     # instala todos los módulos de yast
zypper in -t pattern lamp_server    # instala el patrón lamp_server (los paquetes necesarios para un servidor LAMP)
zypper in vim -emacs                # instala vim y elimina emacs de un plumazo
zypper in amarok packman:libxine1   # instala libxine1 desde packman y amarok desde cualquier repositorio
zypper in bitchx-1.1-81.x86_64.rpm  # instala el rpm bitchx desde el directorio local
zypper in -f subversion             # fuerza la reinstalación de subversion

Desinstalar paquetes

remove

El comando remove es muy similar al comando install, sólo que produce el efecto 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 fuente y dependencias de compilación

source-install

$ 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]:

También puedes instalar solamente las dependencias de compilación o los paquetes fuente:

zypper in -D zypper    # sólo los paquetes fuente (sin dependencias de compilación)
zypper in -d zypper    # sólo las dependencias de compilación (sin paquetes fuente)

Actualización de paquetes

update -t package
dist-upgrade

Lo que sigue trata sobre actualizar paquetes con nuevas versiones disponibles. Mira también Administración de actualización para otros tipos de actualización.

zypper dup     # usa el algoritmo de actualización de la distribución entera (maneja paquetes sustituidos, paquetes no mantenidos, etcétera)
zypper up -t package                # actualiza todos los paquetes instalados con nuevas versiones tanto como sea posible
zypper up -t package libzypp zypper # actualiza libzypp y zypper
zypper in libzypp sqlite3           # actualiza sqlite3 o lo instala si aún no lo está

Consulta

Búsqueda de paquetes

search

Por defecto, el comando search busca paquetes de cualquier tipo, estado o repositorio, que tengan nombres contenidos en la cadena de búsqueda (compara sin distinguir 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 i en la primera columna indica que el paquete ya está instalado. Para ver todas las versiones disponibles de paquetes que concuerdan, usa 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 (OBS, openSUSE 11.0)
i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.0-Oss
v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE (OBS, openSUSE 11.0)
v | virtualbox-ose | package | 1.6.2-2.1  | i586   | VirtualBox OSE (OBS, openSUSE 11.0)
v | virtualbox-ose | package | 1.5.6-33.1 | i586   | openSUSE-11.0-Oss
v | virtualbox-ose | package | 1.5.6-20.3 | i586   | VirtualBox OSE (OBS, openSUSE 11.0)

La i significa esta versión en particular está instalada, v significa otra versión de este paquete está instalada actualmente.

Otros ejemplos:

zypper se -dC --match-words RSI   # busca el acrónimo RSI (distinguiendo mayúsculas y minúsculas), buscando también en las descripciones y resúmenes
zypper se 'yast*'                 # muestra todos los paquetes que empiezan con 'yast' (¡vigila la expansión de la shell, entrecomilla las cadenas si no estás seguro!)
zypper se -r packman              # lista todos los paquetes del repositorio 'packman'
zypper se -i sqlite               # muestra todos los paquetes instalados que contienen 'sqlite' en el nombre
zypper se -t pattern -r repo-oss  # lista todos los patrones disponibles e el repositorio 'repo-oss'
zypper se -t product              # lista todos los productos disponibles

Obtener información acerca de los paquetes

info

$ zypper info amarok
Reading installed packages...

Information for package amarok:

Repository: Packman 11.0
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 acerca del paquete llamado ‘amarok’.

Otros ejemplos:

zypper info -t patch MozillaFirefox    # muestra información sobre el parche 'MozillaFirefox'
zypper patch-info MozillaFirefox       # lo mismo que arriba
zypper info -t pattern lamp_server     # muestra información sobre el patrón 'lamp_server'
zypper info -t product openSUSE-FTP    # muestra información sobre el producto especificado

Dependencias

what-provides

Para listar todos los proveedores de una característica determinada:

$ zypper wp firefox
Reading installed packages...
S | Name           | Type    | Version     | Arch   | Repository
--+----------------+---------+-------------+--------+------------------
i | MozillaFirefox | package | 3.0-0.1     | x86_64 | Updates for 11.0
v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.0-Oss
v | MozillaFirefox | package | 3.0-0.1     | i586   | Updates for 11.0
v | MozillaFirefox | package | 2.9.95-25.1 | i586   | openSUSE-11.0-Oss

Este comando es similar a rpm -q --whatprovides firefox, pero rpm sólo es capaz de interrogar la base de datos de RPM (base de datos de los paquetes instalados). Zypper, por otro lado, te hablará también de los proveedores existentes en cualquier repositorio, no solo de los instalados.

Otras consultas

Los comandos patches, packages, patterns, y products son similares a search -s -t [patch,package,pattern,product], excepto que muestran información adicional específica al tipo de paquetes correspondiente. Por ejemplo patches muestra además el estado de los parches (Necesario/Seguridad/No aplicable).

Los comandos list-updates y patch-check se discuten en Administración de actualización.

Bloqueo de paquetes

locks addlock removelock

Los bloqueos de paquetes responden al propósito de evitar cambios a los paquetes en el sistema. Los paquetes objeto de un bloqueo no pueden cambiar de estado; los instalados no serán desinstalados ni actualizados, los no instalados no podrán instalarse.

Para bloquear todos los paquetes que comienzan por ‘yast2’, haz:

$ zypper al 'yast2*'
Reading installed packages...
Specified lock has been successfully added.

De nuevo ten cuidado con las expansiones de la consola, usa comillas si existe la posibilidad de que la cadena yast* coincida con archivos o directorios de la ruta activa.

Para mostrar 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, ejecuta:

$ 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                   # bloquea el paquete 'zypper' (coincidencia exacta)
zypper al -r repo-oss virtualbox*  # restringe el bloqueo al repositorio 'repo-oss' (permitiendo la instalación desde otros)
zypper rl 3                        # elimina el bloqueo usando el número

También puedes manipular los bloqueos editando directamente el fichero de bloqueos.

Utilidades

Verificar dependencias

verify

A veces puedes terminar con un sistema roto a causa de las dependencias de paquetes. Si alguna de tus aplicaciones falla al arrancar, mostrando algún mensaje que indique la falta de algún componente, zypper puede comprobarlo:

$ 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

Este comando encuentra e instala paquetes recomendados añadidos recientemente para paquetes que ya hayas instalado. Esto proporciona una forma fácil de obtener nuevos paquetes de idiomas para tu software o drivers para el hardware añadido recientemente.

$ 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 actualización

Lo siguiente es particularmente útil para la gente que usa versiones estables y quiere actualizar su sistema con parches liberados a través de los repositorios de actualizaciones (para actualizar paquetes, ver Actualización de paquetes). Los repositorios de actualización se añaden por defecto durante la instalación o cambio del sistema, o pueden añadirse via Configuración de la actualización en línea desde la pestaña Software en el Centro de Control de YaST, o manualmente usando zypper. Aquí está la lista de repositorios de actualización disponibles en openSUSE.

El equivalente en YaST de esto es el módulo Actualización en línea.

Mostrar actualizaciones

list-updates

Para listar todos los parches de actualización necesarios, ejecuta:

$ zypper lu
Reading installed packages...
Patches

Repository       | Name               | Version | Category    | Status
-----------------+--------------------+---------+-------------+-------
Updates for 11.0 | KDE4-fixes         | 38      | recommended | Needed
Updates for 11.0 | MozillaFirefox     | 50      | recommended | Needed
Updates for 11.0 | NetworkManager-kde | 49      | recommended | Needed

A veces se muestran sólo los parches que afectan al sistema de actualización, ya que estos deben aplicarse antes que el resto. Una vez aplicados, se muestran el resto de parches disponibles.

Este comando, por defecto, se refiere a -t patch (parches). Para mostrar todos las actualizaciones de paquetes disponibles, usa:

zypper lu -t package

Aplicar actualizaciones

update

Para aplicar todos los parches necesarios, lanza:

$ zypper up
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]:

Mostrar parches

patches

El comando list-updates sólo muestra los parches necesarios. Para mostrar todos los disponibles, usa:

$ zypper patches
Reading installed packages...
Catalog          | Name               | Version | Category    | Status
-----------------+--------------------+---------+-------------+---------------
Updates for 11.0 | KDE4-fixes         | 38      | recommended | Installed
Updates for 11.0 | MozillaFirefox     | 50      | recommended | Installed
Updates for 11.0 | NetworkManager-kde | 49      | recommended | Installed
Updates for 11.0 | autoyast2          | 37      | recommended | Installed
Updates for 11.0 | courier-authlib    | 42      | security    | Not Applicable
Updates for 11.0 | insserv            | 47      | recommended | Installed
Updates for 11.0 | opera              | 43      | security    | Installed

Comprobar parches

patch-check

Este comando te dirá si es que hay parches importantes disponibles para tu sistema y el número de estos:

$ zypper pchk
Reading installed packages...
0 patches needed (0 security patches)

Obtener información sobre 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.

Usar Zypper en scripts y aplicaciones


Zypper soporta varias opciones globales que lo hacen apto para su uso en procesos automatizados como los scripts. Además, dispone de bastantes códigos de salida distintos que pueden comprobarse cuando se usa de forma automatizada. Puedes consultarlos en la página del manual.

Modo no interactivo

–non-interactive

En este modo zypper no hace preguntas al usuario y usa en su lugar las respuestas por defecto. Cuando se usa esta opción, se garantiza que zypper no se colgará esperando una respuesta desde la entrada estándar, o entrando en un bucle infinito.

Por ejemplo, para actualizar tu sistema automáticamente sin confirmación, puedes teclear

# zypper --non-interactive update

Este comando no requiere confirmación por parte del usuario para proceder con la actualización, se saltaría todos los parches interactivos que necesitaran confirmación adicional y responde automáticamente también a cualquier otra pregunta.

Modo sin chequeo de firmas GPG

–no-gpg-checks

Si se usa esta opción, zypper continuará siempre si alguna de las comprobaciones gpg falle. Por ejemplo, si un archivo de repositorio no está firmado y debería estarlo, si un archivo está firmado y la comprobación falla, etc.

Auto-agree with Licenses

–auto-agree-with-licenses

Esta es una opción especial para los comandos install, remove y update. Usándola, el usuario declara su conformidad con los términos de las licencias que el comando instale, y zypper dirá automáticamente ‘sí’ a los diálogos de confirmación de licencias. Esto resulta práctico para los que instalan el mismo conjunto de paquetes en múltiples máquinas (mediante un proceso automatizado) y ya han leído las licencias.

Salida silenciosa

–quiet

Evita mostrar demasiados textos como información de progreso, y muestra sólo el resultado de la operación y los mensajes de error.

Salida XML

–xmlout

Esta opción hace que zypper hable en XML. Esto permite a los scripts, interfaces gráficas u otros tipos de aplicaciones que quieran usar zypper, analizar la salida de zypper de una manera estándar, bien definida. El esquema RNC de la salida XML de zypper está disponible aquí y en /usr/share/zypper/xml/xmlout.rnc.

No toda (aunque sí la mayoría) de la salida está actualmente en XML; el objetivo es tenerla toda.

Confirmaciones

Lo siguiente debería ser una lista completa de casos en los que zypper necesita de la interacción del usuario, junto con las respuestas que se usan en modo-no-interactivo. Todas las opciones adicionales mencionadas aquí tienen prioridad sobre –non-interactive, por lo que si se usan, las respuestas que ellas implican serían usadas automáticamente incluso sin el modo-no-interactivo de por medio.

Fuente: Opensuse

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: