Zypper/Uso/10.3

De openSUSE, la enciclopedia libre.

Geeko Este artículo explica el uso de zypper, una utilidad de línea de comandos que usa Libzypp, una librería específica para la gestión de paquetes. La sintaxis de zypper es similar a la de rug, aunque añade nuevas opciones y también tiene más prestaciones. En cualquier caso, zypper puede funcionar en modo de compatibilidad con rug


Image:susemini.png
Versión:
10.3
Este artículo describe el uso de zypper 0.8.23 correspondiente a la versión openSUSE 10.3. Hay otro artículo (en inglés) que explica el funcionamiento en openSUSE 10.2 en [Zypper/Usage/10.2]


Tabla de contenidos


Uso General


La sintaxis general para zypper es:

# zypper [opciones-globales] command [opciones-comandos] [argumentos] ...

Los componentes entre corchetes no son obligatorios, por lo que la forma más simple de uso de zypper es escribir su nombre y a continuación un [commando]. Por ejemplo, para aplicar los parches al sistema, teclee:

# zypper update

Adicionalmente, es posible escoger una o varias opciones globales escribiéndolas antes del comando que queremos ejecutar: (ejecuta el comando sin preguntar nada al usuario)

# zypper --non-interactive update

Para usar las opciones especificas de un comando particular, escribirlas inmediatamente despues que el comando:(su aplicacion necesita parches para el sistema pero no me preguntes por confirmar nunguna licencia, las he leido todas con anterioridad)

# zypper update --auto-agree-with-licenses

Algunos de los comands requieren uno o mas argumentos: (instalar o actualizar mplayer paquete)

# zypper install mplayer

Algunas de las opciones tambien necesitan un argumento: (actualizar el sistema con nuevos paquetes)

# zypper update -t package

Todos lo anterior combinado: (instalar mplayer y amarok usando solo el repositorio factory, con descripcion detallada)

# zypper -v install --repo factory mplayer amarok

Vocabulario


  • repository - Directorio local o remoto que contiene paquetes e informacion de varios paquetes (package meta-data). Los repositorios eran antes conocidos como las fuentes de instalacion , servicios o catalogos).
  • alias - un alias de un repositorio es una version corta del nombre del repositorio que es utilizado por los comandos encargados de manejar el repositorio y opciones tales como removerepo o --repo.
  • resolvable - package, patch, pattern, product. Estos son los objetos en el resolvedor de dependencias trabaja, usando el nombre de resolvable. El tipo de resolvedor mas utilizado es package (paquete)y patch (parche).
  • pattern - representa un grupo de paquetes. Por ejemplo un Http Server pattern tendria que tener las dependencias definidas para que todos los paquetes necesario para ejecutar y administrar un servidor http tendrian que ser seleccionados para instalarse cuando se instale el pattern.
  • product - representa el producto completo (ejemplo: openSUSE 10.3)

Opciones Globales


Las siguientes opciones pueden ser aplicadas a cualquier transaccion zypper:

  • -V, --version
    Muestra el numero de version
  • -v, --verbose
    Salida detallada, muestra todas las trazas.
  • -t, --terse
    Terse output. Actualmente no soportado, usado solo internamente por el Updater_Applet.
  • -q, --quiet
    Suprime la impresion de mensajes. Mensajes cortos y de error seran impresos, aunque, si se usa con la opcion --verbose entra en conflicos, la opcion --verbose tiene preferencia.
  • -s, --table-style
    Estilo tabla (numero entero).
  • -r, --rug-compatible
    Activar la compatibilidad con rug.
  • -n, --non-interactive
    Enciende el modo no-interactivo. en este modo no se le pide al usuario que tome alguna desicion, automaticamente utiliza los valores por defecto razonables. Esto es de gran ayuda cuando se utiliza zypper como un trabajo cron, o como parte de un scriptt. Vea la seccion Usando Zypper en Scripts para mas detalles.
  • --no-gpg-checks
    Ignora el fallo en los chequeos GPG y continua. Si ocurre un probema GPG cuando se usa esta opcion zypper imprime y registra una advertencia, y automaticamente continua sin interrumpir la operacion. Utilice esta opcion con precaucion, porque te puedes encontrar facilmente con problemas de seguridad utilizandolo.
  • -R, --root <dir>
    Trabajar en un directorio raiz diferente.

Commandos


zypper provee una cantidad de comandos. El comando comunmente mas usadp es zypper update el cual descarga e instala las actualizaciones (parches necesarios) desde los repositoris que has definido. Si solo se desea actualizar el software, este es el unico comando que necesitas.

Obteniendo ayuda

La Sintaxis general es:

help, -h

Imprime la ayuda. Para imprimir ayuda general, usa:

# zypper -h

PAra imprimir ayuda para un comando, usa:

# zypper -h [comando]

Listar los repositorios configurados

La Sintaxis general es:

repos, lr

Ejemplo de la salida:

# zypper lr
# | Enabled | Refresh | Type   | Alias   | Name
--+---------+---------+--------+---------+--------------------------
1 | Yes     | No      | rpm-md | factory | factory
2 | Yes     | Yes     | yast2  | guru    | guru
3 | Yes     | No      | rpm-md | packman | Packman 10.3
4 | Yes     | No      | rpm-md | updates | openSUSE-10.3-Updates
5 | Yes     | Yes     | yast2  | main-no | Main Repository (NON-OSS)
6 | No      | Yes     | yast2  | main    | Main Repository (OSS)

Para incluir la URL del repositorio en la lista, usa la opcion global -v junto con zypper lr.

Añadir repositorios

Antes de que se pueda instalar cualquier paquete se tiene que definir por lo menos un package repository. Para agregar un repositorio, usa el comando addrepo

addrepo, ar <URI> <alias>

Este comando acepta las siguiente opciones:

  • -r, --repo <FILE.repo> - Agrega el repositorio definido en el archivo especifico .repo f

Ejemplo:

# zypper ar http://packman.iu-bremen.de/suse/10.3 pm
* Adding repository 'pm'
Repository 'pm' successfully added:
Enabled: Yes
Autorefresh: Yes
URL: http://packman.iu-bremen.de/suse/10.3

Eliminar repositorios

removerepo, rr <URI|alias>

Ejemplo:

zypper rr http://packman.iu-bremen.de/suse/10.3

o

zypper rr pm

Renombrar repositorios

La sintaxis general es:

renamerepo, nr <alias> <new-alias>

Este comando esta actualmente disponible para cambiar el alias del repositorio. Si se desea cambiar el nombre mostrado del repositorio, editar el correspondiente archivo .repo en el directorio /etc/zypp/repos.d (la llave name=).

Instalación de solucionables

La Sintaxis General es:

install, in <nombre_paquete> ...
install, in --capability  <capability> ...

La forma normal en que funciona es que selecciona los paquete para la instalacion segun los nombres que se le especifican:

# zypper install subversion gcc

Instala los paquetes llamados subversion y gcc

selecciona los paquetes por capacidad que ellos proveen:

# zypper install -C /usr/bin/svn file

Instala los paquetes que proveen /usr/bin/svn

# zypper install -C subversion=1.4.4

Instala un paquete con la version especificada en subversion

Acepta las siguiente banderas opcionales:

  • -r, --repo <alias> - Considera solo los que puedan resolver desde el repositorio que se especifica por el alias.
  • -t, --type <resolvable> - Tipo de Resolucion (por_defecto: package)
  • -n, --name - Selecciona los que puedan resolver por texto plano, no por capacidad (por_defecto)
  • -C, --capability - Selecciona los que puedan resolver por capacidad que ellos proveen
  • -l, --auto-agree-with-licenses - Automaticamente responde 'yes' a la pregunta de confirmacion de licencias de terceros.
  • Vea 'man zypper' para mas detalles.
  • --debug-solver - Crear una solucion de prueba para chequeo

Eliminación de solucionables

The general syntax is:

remove, rm <packagename> ...
remove, rm --capability <capability> ...

Accepts the same options except of the --force.

Buscando solucionables

La Sintaxis General es:

search, se [pattern] ...

Acepta cualquiera de las siguientes banderas opcionales:

  • --match-all - Busca por un registro que concuerde con todas las cadenas de texto especificadas (por_defecto)
  • --match-any - Busca por un registro que concuerde con cualquiera de las cadenas de etsto especificadas
  • --match-substrings - Matches for search strings may be partial words (default)
  • --match-words - Concuerda con la busqueda de las cadenas de texto pudiendo ser palabras completas
  • --match-exact - Busca por un nombre de paquete exacto
  • -d, --search-descriptions - Busca tambin en las descripciones e informacion del paquete.
  • -c, --case-sensitive - Lleva a cabo una busqueda sensible a minusculas/mayusculas.
  • -i, --installed-only - Muestra solo los paquetes que ya estan instalados.
  • -u, --uninstalled-only - Muestra solo los paquetes que no estan actualmente instalados.
  • -t, --type - Busca solo los paqueres del tipo especificado.
  • --sort-by-name - Ordena lo paquetes por nombre (por_defecto).
  • --sort-by-catalog - Orden los paquetes por catalogo.

Los comodines * y ? tambien son soportados.

Ejemplo:

# zypper se zypper
* Reading installed packages [100%]

S | Repository | Type    | Name   | Version  | Arch
--+------------+---------+--------+----------+-------
  | factory    | package | zypper | 0.8.23-3 | i586
i | factory    | package | zypper | 0.8.23-2 | x86_64

Actualmente, la funcionalidad de busqueda es un poco quebrada debido al redisen_o de libzypp, especialemente en las opciones especiales de busqueda. La busqueda basica ha trabajado bien y rapido de todos modos.

Verificando parches

La Sintaxis general es:

patch-check, pchk

Este comando respondera si hay algun parche importante disponible para tu sistema y la cantidad de esos parches.

Ejemplo:

# zypper pchk
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]

9 patches needed (0 security patches)

Listado de parches

La Sintaxis General es:

patches, pch

Lista todos los posibles parches, incluyendo aquellos que no son necesitados o aplicables

Ejemplo:

# zypper pch
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]

Repository:           | Name               | Version | Category    | Status        
----------------------+--------------------+---------+-------------+---------------
openSUSE-10.3-Updates | amarok             | 4492-0  | recommended | Not Applicable
openSUSE-10.3-Updates | cpio               | 4474-0  | recommended | Needed        
openSUSE-10.3-Updates | evince             | 4465-0  | recommended | Needed        
openSUSE-10.3-Updates | fetchmsttfonts.sh  | 4347-0  | optional    | Not Needed    
openSUSE-10.3-Updates | fvwm2              | 4475-0  | recommended | Needed        
openSUSE-10.3-Updates | glibc              | 4467-0  | recommended | Needed        
openSUSE-10.3-Updates | gnome-main-menu    | 4491-0  | recommended | Needed        
openSUSE-10.3-Updates | gtk2               | 4466-0  | recommended | Needed        
openSUSE-10.3-Updates | jfbterm            | 4460-0  | recommended | Not Applicable
openSUSE-10.3-Updates | ksh                | 4489-0  | recommended | Needed        
openSUSE-10.3-Updates | libiniparser-32bit | 4488-0  | optional    | Not Applicable
openSUSE-10.3-Updates | release-notes      | 4464-0  | recommended | Needed        
openSUSE-10.3-Updates | wvdial             | 4461-0  | recommended | Needed

Obtener información detallada acerca de un Parche

La sintaxis general es:

patch-info [patchname] ...
info -t patch [patchname] ...

Muestra una informacion completa acerca del parche especificado.

Ejemplo:

testicek2:~ # zypper patch-info amarok
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]

Information for patch amarok:

Name: amarok
Version: 4492-0
Arch: noarch
Status: Not Applicable
Category: recommended
Created On: Thu 04 Oct 2007 05:48:07 PM CEST
Reboot Required: No
Package Manager Restart Required: No
Interactive: No
Summary: Fixes to improve stability and playback with yauap
Description: This patch includes fixes to increase the stability of
Amarok when playing  music and improves the collaboration
with the GStreamer/Yauap engine.

Provides:
patch: amarok == 4492-0

Requires:
atom: amarok-yauap == 1.4.7-37.2
atom: amarok-lang == 1.4.7-37.2
atom: amarok-xine == 1.4.7-37.2
atom: amarok == 1.4.7-37.2
atom: yauap == 0.2.1-21.2
atom: amarok-libvisual == 1.4.7-37.2

Listado de actualizaciones

La Sintaxis General es:

list-updates, lu

Lista todas las actualizaciones disponibles. Por defecto este comando lista todos lo parches disponibles necesitados y de seguridad. Usar la opcion -t para escoger cual tipo de resolvedor se quiere trabajar.

Acepta las siguientes banderas opcionales:

  • -t, --type <type> - Tipo de resolvedor (por_defecto: patch)
  • -r, --repo <alias> - Lista solo las actualizaciones de repositorio especificado por el alias.
  • --best-effort - Realiza un 'mejor efuerzo' aprochimandose a la actualizacion, acualiza uno anterior que la version ultimo-y-mejor son tambien posibles.

Ejemplo:

testicek2:~ # zypper lu
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading repository 'factory' cache
* Reading installed packages [100%]
Repository:           | Name            | Version | Category    | Status
----------------------+-----------------+---------+-------------+-------
openSUSE-10.3-Updates | cpio            | 4474-0  | recommended | Needed
openSUSE-10.3-Updates | evince          | 4465-0  | recommended | Needed
openSUSE-10.3-Updates | fvwm2           | 4475-0  | recommended | Needed
openSUSE-10.3-Updates | glibc           | 4467-0  | recommended | Needed
openSUSE-10.3-Updates | gnome-main-menu | 4491-0  | recommended | Needed
openSUSE-10.3-Updates | gtk2            | 4466-0  | recommended | Needed
openSUSE-10.3-Updates | ksh             | 4489-0  | recommended | Needed
openSUSE-10.3-Updates | release-notes   | 4464-0  | recommended | Needed
openSUSE-10.3-Updates | wvdial          | 4461-0  | recommended | Needed

Actualizando

The general syntax is:

update, up

Update the system. By default this command applies all needed patches. To update other types of resolvables (e.g. packages) use the -t option.

  • -t, --type - Type of resolvable (default: patch)
  • -r, --repo <alias> - List only updates from the repository specified by the alias.
  • --skip-interactive - Skip interactive updates.
  • -l, --auto-agree-with-licenses - Automatically say 'yes' to the third party license agreement prompt. See man zypper for more details.
  • --best-effort - Do a 'best effort' approach to update, updates to lower than the latest-and-greatest version are also possible.
  • --debug-solver - Create a solver test case for debugging.


Example:

testicek2:~ # zypper update
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]


The following packages are going to be upgraded:
  cpio fvwm2 evince glibc-i18ndata glibc-locale nscd glibc release-notes wvdial 
gnome-main-menu gtk2 ksh 

The following NEW packages are going to be installed:
  evince-lang gnome-main-menu-lang 

The following NEW patches are going to be installed:
  gnome-main-menu release-notes evince gtk2 glibc ksh fvwm2 wvdial cpio 

Overall download size: 28.0 M. After the operation, additional 2.9 M will be used.
Continue? [yes/no]: y
Downloading package evince-lang-2.20.0-5.2.i586, 519.4 K (2.0 M unpacked)
Downloading: evince-lang-2.20.0-5.2.i586.rpm
* Downloading [100%]
* Installing: evince-lang-2.20.0-5.2 [100%]
Downloading package glibc-i18ndata-2.6.1-18.2.i586, 3.6 M (10.0 M unpacked)
Downloading patch rpm: ./rpm/i586/glibc-i18ndata-2.6.1-18.2.i586.patch.rpm, 111.5 K
Downloading: glibc-i18ndata-2.6.1-18.2.i586.patch.rpm
* Downloading [100%]
* Installing: glibc-i18ndata-2.6.1-18.2 [100%]
Downloading package glibc-2.6.1-18.2.i686, 1.7 M (3.9 M unpacked)
Downloading delta: ./rpm/i686/glibc-2.6.1-18_18.2.i686.delta.rpm, 89.2 K
Downloading: glibc-2.6.1-18_18.2.i686.delta.rpm
* Downloading [100%]
Applying delta: /var/adm/mount/AP_0x00000001/rpm/i686/glibc-2.6.1-18_18.2.i686.delta.rpm
* Installing: glibc-2.6.1-18.2 [100%]
Downloading package release-notes-10.3.17-0.1.noarch, 113.6 K (608.5 K unpacked)
Downloading delta: ./rpm/noarch/release-notes-10.3.16_10.3.17-2_0.1.noarch.delta.rpm, 42.8 K
Downloading: release-notes-10.3.16_10.3.17-2_0.1.noarch.delta.rpm
* Downloading [100%]
Applying delta: /var/adm/mount/AP_0x00000001/rpm/noarch/release-notes-10.3.16_10.3.17-2_0.1.noarch.delta.rpm
* Installing: release-notes-10.3.17-0.1 [100%]
...

Obtener información sobre los paquetes

La sintaxis general es:

info, if [nombre_paquete] ...

Muestra la informacion completa de un paquete especificado.

Ejemplo:

# zypper info suspend
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-DVD 10.3' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading installed packages [100%]


Information for package amarok:

Repository: openSUSE-10.3-Updates
Name: amarok
Version: 1.4.7-37.2
Arch: i586
Installed: No
Status: not installed
Installed Size: 8.3 M
Summary: Media Player for KDE
Description: 
Amarok is a media player for all kinds of media. This includes MP3, Ogg
Vorbis, audio CDs, podcasts and streams. Play lists can be stored in
.m3u or .pls files.



Authors:
--------
    Christian Muehlhaeuser <chris@chris.de>
    Mark Kretschmann <markey@web.de>
    Max Howell <max.howell@methylblue.com>
    Stanislav Karchebny <berk@inbox.ru>

Uso de zypper desde un script


Zypper soporta muchas opciones globales que lo hacen de gran utilidad para usarlo dentro de procesos automatizados como los scripts. Tambien. En el manual de zypper se listan muchas diferentes manera de salir/terminar via codigo, estas pueden ser activadas cuando se usa zypper en un proceso atutomatizado, Ve los siguientes para detallar.

Modo no interactivo

En este modo zypper no pregunta al usuario por respuestas y usa las respuestas por_defecto. Cuando se usa esta opcion se garantiza que zypper no se detendra a preguntar por una respuesta on stdin, o en una busqueda sin fin.

Por ejemplo, para actualizar tu sistema automaticamente sin necesitar confirmacion, se puede utilizar

# zypper --non-interactive update

Este comando no requiere confirmacion del usuario para proceder con la actualizacion, omite todos los parches interactivos que necesiten una confirmacion adiciona; y tambien automaticamente responde algun otra peticion.

--no-gpg-checks

Si esta opcion es utilizada, zypper siempre escogera continuar si falla algun chequeo GPGs, ejemplo: un archivo de un repositorio no esta firmado y deberia de estarlo, entonces el archivo se firma y el chequeo GPG falla, etc.

--auto-agree-with-licenses

Eta es una opcion especial para los comandos install, remove y update. Usando esto,el usuario declara que acepta los terminos de licencias que el comando va a instalar, y zypper va ha decir automaicamente 'yes' a la pregunta de confirmacion de licencia. Esto es de mucha ayuda para las personas instalando el mismo grupo de paquetes en multiples maquinas (por un proceso automatico) y han leido todas las licencias con anterioridad.

Mensajes (Prompt)

Lo siguiente tiene que ser una lista completa de los casos donde zypper necesita interaccion del usuario junto con respuestas en el modo non-interactive. Todas las opciones adicionales mencionadasaqui tienen una mayor prioridad sobre --non-interactive, asi que si se utiliza, la respuesta que implican son automaticamente usadas aun si --non-interactiva no es usado

GPG-related prompts

Donde --no-gpg-checks es aplicado, un mensaje es mostrado o una advertencia es escrita alstderr y registrada (log).

mensaje (prompt) respuesta por defecto utilizando --no-gpgp-checks nota
accept unsigned file? N Y
import key into keyring? N N a new key can be imported in the interactive mode only
accept unknown key? N Y
trust key? N Y
verification of signed file failed, continue? N Y
no digest for a file, continue? N Y
accept unknown digest? N Y

Otros Mensajes(Prompts)

mensaje(prompt) respuesta por defecto otra respuesta nota
proceed with installation/removal/update? Y in addition, the --no-confirm option can be used with the install/remove/update commands even without the global --non-interactive
confirm 3rd party license N Y if --auto-agree-with-licenses is used in addition, for zypper update, --skip-interactive option can be used to exclude interactive patches from to-be-installed list (a heritage of rug)
problem while installing/removing a resolvable, Abort/Retry/Ignore? ABORT this is ugly and can be improved in future
problem while downloading a package, Abort/Retry/Ignore? ABORT this is also ugly, can be enhanced somehow in the future
dependency conflict. Prompt for solution number, (c)ancel, or (r)etry c
media change request ABORT