Home Wiki > Zypper/Uso
Sign up | Login

Zypper/Uso

tagline: Da openSUSE

Este artigo é sobre como usar o zypper, o gerenciador de pacotes em linha de comando usando a biblioteca Libzypp. Ele contém informações complementares à página do manual do zypper (man zypper). O que você não encontrar aqui, você deverá encontrar na página do manual e vice versa.
Susemini.png
Versão:
11.0
Este artigo é sobre a versão 0.11.6 do Zypper incluida no openSUSE 11.0. Para outras versões consulte Zypper/Versões


Referência rápida


Isto é o que você provavelmente irá usar mais frequentemente:

zypper                 # exibir a lista de opções e comandos globais
zypper help search     # exibir a ajuda para o comando search
zypper lu              # ver quais correções são necessárias
zypper up              # aplicar as correções
zypper se sqlite       # procurar por 'sqlite'
zypper rm sqlite2      # remover o 'sqlite2'
zypper in sqlite3      # instalar o 'sqlite3'
zypper in yast*        # instalar todos os pacotes que coincidam com 'yast*'
zypper up -t package   # atualizar todos os pacotes instalados com versões novas, onde for possível


Uso geral


A sintaxe geral do zypper é:

zypper [opções_globais] comando [opções_do_comando] [argumentos] ...

Os componentes dentro dos colchetes não são necessários, o jeito mais simples de executar o zypper é digitar seu nome seguido de um comando. Por exemplo, para aplicar as correções necessárias ao sistema digite:

zypper update

Adicionalmente você pode escolher entre uma ou mais opções globais digitando-as antes do comando: (executar o comando, mas não me pergunte nada, decida sozinho)

zypper --non-interactive update

Para usar as opções específicas de um comando em particular, digite-o após o comando: (aplicar as correções necessárias ao sistema mas não me pergunte para confirmar nenhuma licença, eu já as li antes)

zypper update --auto-agree-with-licenses

Alguns dos comandos requerem um ou mais argumentos: (instalar ou atualizar o pacote 'mplayer')

zypper install mplayer

Algumas das opções também necessitam de um argumento: (atualizar o sistema com pacotes novos)

zypper update -t package

Todos os acima combinados: (instalar o 'mplayer' e o 'amarok' usando somente o repositório factory e com a saída do comando detalhada)

zypper -v install --repo factory mplayer amarok


Vocabulário


  • repositório - diretório local ou remoto que contém pacotes e várias informações de pacotes (metadados de pacote). Os repositórios foram conhecidos antigamente como fontes de instalação , serviços ou catálogos).
  • apelido - o apelido do repositótio é uma versão curta do nome do repositório para usar nos comandos de manejo de repositório e em opções como removerepo ou --repo.
  • pacote - pacote de software (pacote RPM, pacote fonte). Correções, padrões e produtos também são comumente referidos como sendo tipos diferentes de pacotes.
  • correção - representa um pacote ou um grupo de pacotes necessários para instalar uma atualização (uma correção de erro geralmente).
  • padrão - representa um grupo de pacotes. Por exemplo um padrão Servidor Http tem as dependências definidas de tal modo que todos os pacotes necessários para rodar e gerenciar um servidor http são selecionados para a instalação quando se instalar esse padrão.
  • produto - representa o produto total (ex.: 'openSUSE 11.0').


Comandos


O zypper fornece um número de comando que podem ser agrupados nas seguintes categorias:

  • gerenciamento de repositórios
    refresh, repos, addrepo, removerepo, modifyrepo, namerepo
  • gerenciamento de pacotes
    install, remove, update, dist-upgrade, source-install
  • pesquisa
    search, info, what-provides, list-updates, patch-check, patches, packages, patterns, products
  • travas
    locks, addlock, removelock
  • utilitários
    verify, install-new-recommends
  • outros
    help

Adicionalmente, os comandos update, list-updates, patch-check, e patches também podem ser referidos como comandos de gerenciamento de atualizações.

Exibindo a ajuda

Primeiro, é bom saber como conseguir ajuda. Para exibir uma ajuda geral (lista de comandos e opções globais), digite apenas zypper sem qualquer opção ou argumento. Para exibir a ajuda para um comando específico, use:

# zypper help [comando]

zypper -h [comando] e zypper [comando] -h também é possível por conveniência.

Gerenciamento de repositórios

Você pode especificar os repositórios existente pelo seu número na lista produzida por zypper lr, pelo seu apelido ou pela URL. Quando usar números, tenha a certeza de sempre verificar zypper lr primeiro, pois os números podem mudar após algumas alterações que você tenha feito nos repositórios.

Listando os repositórios definidos

repos

Exemplo de saída:

$ zypper lr
# | Apelido               | Nome                  | Habilitado | Atualizar
--+-----------------------+-----------------------+------------+--------
1 | packman               | Packman Repository    | Sim        | Sim
2 | updates               | openSUSE-11.0-Updates | Sim        | Sim
3 | oss                   | openSUSE-11.0-Oss     | Sim        | Não
4 | non-oss               | openSUSE-11.0-Non-Oss | Sim        | Não
4 | freetype2             | freetype2             | Não        | Não

Outros exemplos:

zypper lr -u       # incluir também a URL do repositório na tabela
zypper lr -d       # incluir várias outras propriedades dos repositórios na tabela
zypper lr -P       # incluir também a prioridade do repositório e ordenar a lista por ela
zypper lr -e meu   # exportar todas as definições dos repositórios num arquivo chamado 'meu.repo'

Adicionando repositórios

addrepo

Antes que qualquer pacote possa ser instalado, pelo menos um repositório deve ser definido. Para adicionar um repositório, use o comando addrepo:

Exemplo de saída:

$ zypper ar http://download.videolan.org/pub/vlc/SuSE/11.0 vlc
Adicionando repositório 'vlc' [concluído]
O repositório 'vlc' foi adicionado com sucesso
Habilitado: Sim
Atualização automática: Não
URI: http://download.videolan.org/pub/vlc/SuSE/11.0

Outros exemplos:

zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.0/X11:XGL.repo  # através de um arquivo .repo
zypper ar -c ftp://algum.site.de.download meuapelido   # testar o repositório antes de adicionar
zypper ar meu/diretório/com/rpms local                # adicionar seu diretório local de arquivos rpm como um repositório

Veja também Libzypp/URI para a lista de tipos de mídia e URLs suportadas.

Atualizando repositórios

refresh

Após adicionar um repositório ou quando um repositório se tornar desatualizado, ele precisa ser atualizado. Isto significa baixar os metadados dos pacotes do repositório e pré processar os dados em um cache .solv para uma rápida leitura.

$ zypper refresh
Baixando os metadados do repositório 'Packman Repository' [concluído]
Construindo cache do repositório 'Packman Repository' [concluído]
Baixando os metadados do repositório 'openSUSE-11.0-Updates' [concluído]
Construindo cache do repositório 'openSUSE-11.0-Updates' [concluído]
O repositório 'openSUSE-11.0-Oss' está atualizado.
Todos os repositórios foram atualizados.

Se a atualização automática estiver habilitada para um repositório, você não precisa se preocupar com atualizações, elas acontecerão automaticamente quando forem necessárias. No entanto, algumas pessoas preferem controlar quando a atualização ocorrerá (ex.: para evitar ter que esperar a atualização completar quando você deseja somente ver 'zypper info krusader'), então eles desabilitam a atualização automática. Veja man zypper para maiores detalhes.

Outros exemplos:

zypper ref packman         # você também pode especificar qual repositório atualizar
zypper ref -f updates      # forçar a atualização do repositório 'updates'

Removendo repositórios

removerepo

$ zypper rr 23 foo 4 vlc
O repositório 23 não foi encontrado pelo apelido, número ou URL.
O repositório foo não foi encontrado pelo apelido, número ou URL.
Removendo repositório 'freetype2' [concluído]
O repositório 'freetype2' foi removido.
Removendo repositório 'vlc' [concluído]
O repositório 'vlc' foi removido.

Modificando repositórios

modifyrepo

Desabilitar o repositório #6:

$ zypper mr -d 6
O repositório 'repo-non-oss' foi desabilitado com sucesso.

Habilitar a atualização automática e o cache de arquivos rpm do repositório 'packman' e definir sua prioridade em 70:

$ zypper mr -rk -p 70 packman
A atualização automática para o repositório'packman' foi ativada.
O cache dos arquivos RPM foi habilitado para o repositório 'packman'.
A prioridade do repositório 'packman' foi alterada para 70.

Desabilitar o cache dos arquivos RPM para todos os repositórios:

$ zypper mr -Ka
Nada a alterar para o repositório 'local'.
O cache dos arquivos RPM foi desabilitado para o repositório 'packman'.
Nada a alterar para o repositório 'upd'.
Nada a alterar para o repositório 'repo-oss'.
Nada a alterar para o repositório 'repo-non-oss'.

Habilitar o cache dos arquivos RPM para todos os repositórios:

$ zypper mr -ka
O cache dos arquivos RPM foi habilitado para o repositório  'repo-non-oss'.
O cache dos arquivos RPM foi habilitado para o repositório  'repo-oss'.
O cache dos arquivos RPM foi habilitado para o repositório  'upd'.
O cache dos arquivos RPM foi habilitado para o repositório  'packman'.

Renomeando repositórios

namerepo

$ zypper nr 3 upd
O repositório 'openSUSE-11.0-Updates' foi renomeado para 'upd'.

Este comando atualmente só é capaz de renomear o apelido do repositório. Se você quiser alterar o nome do repositório, dê uma olhada no comando mr.

Mantenha os apelidos curtos e simples para um uso fácil como argumento dos comandos e opções --repo. Usar um apelido é mais seguro que utilizar o número do repositório (pois os números podem mudar e levar você facilmente a um erro) e ainda mais fácil que usar a URL (já que elas são longas, deixando você com o copiar e colar).

Exportar/importar

repos -e

Você pode exportar sua lista completa de repositórios para um arquivo e importá-lo mais tarde em outra máquina.

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

Gerenciamento de pacotes

Instalando pacotes

install

Você pode instalar pacotes pelo nome:

$ zypper install git
Lendo os pacotes instalados...

Os seguintes pacotes NOVOS serão instalados:
  subversion-perl sqlite3 perl-DBD-SQLite git-svn git-cvs git


Tamanho total do download: 1,1 M. Após a operação, 4,6 M adicionais serão utilizados.
Continuar? [SIM/não]:
Baixando pacote subversion-perl-1.5.0-96.1.i586 (1/6), 950,0 K (4,1 M descomprimido)
Baixando: subversion-perl-1.5.0-96.1.i586.rpm [concluído (97,5 K/s)]
Instalando: subversion-perl-1.5.0-96.1 [concluído]
Baixando pacote sqlite3-3.5.7-17.1.i586 (2/6), 30,0 K (40,0 K descomprimido)
Baixando: sqlite3-3.5.7-17.1.i586.rpm [concluído (88,8 K/s)]
Instalando: sqlite3-3.5.7-17.1 [concluído]
Baixando pacote perl-DBD-SQLite-1.14-41.1.i586 (3/6), 44,0 K (103,0 K descomprimido)
Baixando: perl-DBD-SQLite-1.14-41.1.i586.rpm [concluído (91,2 K/s)]
Instalando: perl-DBD-SQLite-1.14-41.1 [concluído]
Baixando pacote git-svn-1.5.4.5-26.1.i586 (4/6), 66,0 K (195,0 K descomprimido)
Baixando: git-svn-1.5.4.5-26.1.i586.rpm [concluído (63,3 K/s)]
Instalando: git-svn-1.5.4.5-26.1 [concluído]
Baixando pacote git-cvs-1.5.4.5-26.1.i586 (5/6), 63,0 K (205,0 K descomprimido)
Baixando: git-cvs-1.5.4.5-26.1.i586.rpm [concluído (99,1 K/s)]
Instalando: git-cvs-1.5.4.5-26.1 [concluído]
Baixando pacote git-1.5.4.5-26.1.i586 (6/6), 10,0 K (3,0 K descomprimido)
Baixando: git-1.5.4.5-26.1.i586.rpm [concluído (87,6 K/s)]
Instalando: git-1.5.4.5-26.1 [concluído]

...ou pelo recurso que ele fornecer:

$ zypper in MozillaFirefox \< 3
Lendo os pacotes instalados...
'MozillaFirefox' que fornece 'MozillaFirefox<3' já está instalado.
Nada a fazer.
$ zypper in MozillaFirefox \>= 3
Lendo os pacotes instalados...

Os seguintes pacotes serão atualizados:
  mozilla-xulrunner190-translations MozillaFirefox mozilla-xulrunner190-gnomevfs
mozilla-xulrunner190 MozillaFirefox-translations


O seguinte pacote será REMOVIDO:
  mozilla-xulrunner190-lang


Tamanho total do download: 11,0 M. Após a operação, 12,9 M será liberado.
Continuar? [SIM/não]:
$ zypper in 'libqtiff.so'
Lendo os pacotes instalados...
'libqt4-x11' que fornece 'libqtiff.so' já está instalado.
Nada a fazer.

Outros exemplos:

zypper in yast*                     # instalar todos os módulos do YaST
zypper in -t pattern lamp_server    # instalar o padrão 'lamp_server' (pacotes necessários para um servidor LAMP)
zypper in vim -emacs                # instalar o 'vim' e remover o 'emacs' ao mesmo tempo
zypper in amarok packman:libxine1   # instalar o 'libxine1' do repositório do Packman e o 'amarok' de qualquer um
zypper in bitchx-1.1-81.x86_64.rpm  # instalar o rpm do 'bitchx' do diretório local
zypper in -f subversion             # forçar a reinstalação do pacote 'subversion'

Removendo pacotes

remove

O comando remove é muito parecido com o comando install, exceto que o efeito é o contrario :O)

$ zypper remove sqlite
Lendo os pacotes instalados...

Os seguintes pacotes serão REMOVIDOS:
  sqlite3 perl-DBD-SQLite git-cvs git


Após a operação, 351,0 K será liberado.
Continuar? [SIM/não]: n

Pacotes fonte e dependências de compilação

source-install

$ zypper si zypper
Lendo os pacotes instalados...

Os seguintes pacotes NOVOS serão instalados:
  libzypp-devel libsatsolver-devel


O seguinte pacote fonte será instalado:
  zypper


Tamanho total do download: 1,5 M. Após a operação, 6,7 M adicionais serão utilizados.
Continuar? [SIM/não]:

Você também pode instalar somente as dependências de compilação ou o pacote fonte:

zypper in -D zypper    # somente os pacotes fontes (sem as dependências de compilação)
zypper in -d zypper    # somente as dependências de compilação (sem pacote fonte)

Atualizando pacotes

update -t package
dist-upgrade

Os seguintes comandos são sobre atualizar pacotes com as versões mais novas disponíveis. Veja também Gerenciamento de atualizações para uma outra forma de atualização.

zypper dup                          # usar o algoritmo de atualização da distribuição (maneja a quebra de pacotes, pacotes não mantidos e similares)
zypper up -t package                # atualiza todos os pacotes instalados com novas versões se possível
zypper up -t package libzypp zypper # atualizar o 'libzypp' e o 'zypper'
zypper in libzypp sqlite3           # atualizar o 'sqlite3' e o 'libzypp' ou instalar se ainda não estiverem instalados

Pesquisa

Pesquisando por pacotes

search

Por padrão, o comando search procura por pacotes de qualquer tipo, status e repositório, tendo os nomes contendo a string especificada (comparando sem sensibilidade a maiúsculas):

$ zypper se sqlite
Lendo os pacotes instalados...

S | Nome                     | Resumo                                                         | Tipo
--+--------------------------+----------------------------------------------------------------+--------
  | libapr-util1-dbd-sqlite3 | DBD driver for SQLite 3                                        | pacote
i | libgda-3_0-sqlite        | Sqlite Provider for GNU Data Access (GDA)                      | pacote
  | libqt4-sql-sqlite        | Qt 4 sqlite plugin                                             | pacote
i | libsqlite3-0             | Shared libraries for the Embeddable SQL Database Engine        | pacote
  | libsqlite3-0-32bit       | Shared libraries for the Embeddable SQL Database Engine        | pacote
  | mediatomb-sqlite         | UPnP AV MediaServer                                            | pacote
i | mono-data-sqlite         | Database connectivity for Mono                                 | pacote
  | pdns-backend-sqlite2     | SQLite 2 backend for pdns                                      | pacote
  | pdns-backend-sqlite3     | SQLite 3 backend for pdns                                      | pacote
i | perl-DBD-SQLite          | The DBD::SQLite is a self contained RDBMS in a DBI driver      | pacote
i | php5-sqlite              | PHP5 Extension Module                                          | pacote
  | python-sqlite2           | Python bindings for sqlite 2                                   | pacote fonte
  | qt3-sqlite               | SQLite Database Plug-In for Qt                                 | pacote
  | rekall-sqlite            | Rekall sqlite Database Backend                                 | pacote
  | rubygem-sqlite3          | A Ruby interface for the SQLite3 database engine               | pacote
i | sqlite2                  | Embeddable SQL Database Engine                                 | pacote
  | sqlite2-32bit            | Embeddable SQL Database Engine                                 | pacote
  | sqlite2-devel            | Embeddable SQL Database Engine                                 | pacote
i | sqlite3                  | Embeddable SQL Database Engine                                 | pacote
  | sqlite3-devel            | Embeddable SQL Database Engine                                 | pacote
  | sqlite3-tcl              | Tcl binding for SQLite                                         | pacote
  | tntdb1-sqlite            | Tntdb is a c++-class-library for easy database-access - sqlite | pacote
  | ulogd-sqlite             | SQLite output plugin for ulogd                                 | pacote

O i na primeira coluna significa que o pacote já está instalado. Para ver todas as versões disponíveis de um pacote exato, utilize a opção --details/-s:

$ zypper search -s --match-exact virtualbox-ose
Lendo os pacotes instalados...

S | Nome           | Tipo    | Versão     | Arquitetura   | Repositório
--+----------------+---------+------------+---------------+------------------------------------
v | virtualbox-ose | pacote  | 1.6.2-2.1  | x86_64        | VirtualBox OSE (OBS, openSUSE 11.0)
i | virtualbox-ose | pacote  | 1.5.6-33.1 | x86_64        | openSUSE-11.0-Oss
v | virtualbox-ose | pacote  | 1.5.6-20.5 | x86_64        | VirtualBox OSE (OBS, openSUSE 11.0)
v | virtualbox-ose | pacote  | 1.6.2-2.1  | i586          | VirtualBox OSE (OBS, openSUSE 11.0)
v | virtualbox-ose | pacote  | 1.5.6-33.1 | i586          | openSUSE-11.0-Oss
v | virtualbox-ose | pacote  | 1.5.6-20.3 | i586          | VirtualBox OSE (OBS, openSUSE 11.0)

O i significa que esta versão em particular está instalada, o v significa que outra versão deste pacote está atualmente instalada.

Outros exemplos:

zypper se -dC --match-words RSI   # pesquisar pelo acrônimo RSI (sensível a maiúsculas), também em resumos e descrições
zypper se 'yast*'                 # exibir todos os pacotes que iniciam com 'yast' 
zypper se -r packman              # listar todos os pacotes do repositório 'packman'
zypper se -i sqlite               # exibir todos os pacotes instalados contendo 'sqlite' no nome do pacote
zypper se -t pattern -r repo-oss  # listar todos os padrões disponíveis no repositório 'repo-oss'
zypper se -t product              # listar todos os produtos disponíveis

Obtendo informações sobre pacotes

info

$ zypper info amarok
Lendo os pacotes instalados...

Informação para pacote amarok:

Repositório: Packman 11.0
Nome: amarok
Versão: 1.4.9.1-104.pm.1
Arquitetura: i586
Fornecedor: packman.links2linux.de
Instalados: Yes
Status: up-to-date
Tamanho Após a Instalação: 9,1 M
Resumo: Media Player for KDE
Descrição:
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 exibe informações detalhadas sobre o pacote chamado 'amarok'.

Outros exemplos:

zypper info -t patch MozillaFirefox    # exibe informações sobre a correção 'MozillaFirefox'
zypper patch-info MozillaFirefox       # o mesmo que o anterior
zypper info -t pattern lamp_server     # exibe informações sobre o padrão 'lamp_server'
zypper info -t product openSUSE-FTP    # exibe informações sobre o produto especificado

Dependências

what-provides

Para listar todos os fornecedores de um recurso específico, faça:

$ zypper wp firefox
Lendo os pacotes instalados...
S | Nome           | Tipo    | Versão      | Arquitetura | Repositório
--+----------------+---------+-------------+-------------+-----------------
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 é similar a rpm -q --whatprovides firefox, mas o rpm só é capaz de pesquisar o banco de dados de RPMs (banco de dados de pacotes instalados). O zypper, por outro lado, informará a você os fornecedores do recurso de qualquer repositório, não apenas dos pacotes instalados.

Outras pesquisas

Os comandos patches, packages, patterns e products são similares ao search -s -t [patch,package,pattern,product], exceto que eles exibem informações adicionais específicas ao tipo correspondente de pacote. Por exemplo patches exibe também o status das correções (Necessárias/Segurança/Não Aplicável).

Os comandos list-updates e patch-check são discutidos no Gerenciamento de atualizações.

Travas de pacotes

locks
addlock
removelock

As travas de pacotes servem para prevenir alterações nos pacotes do sistema. Os pacotes que coincidem com uma trava ativa não poderão mudar seu status de instalação; pacotes instalados não poderão ser removidos ou atualizados, pacotes ainda não instalados não poderão ser instalados.

Para travar todos os pacotes que começam com 'yast2', faça:

$ zypper al 'yast2*'
Lendo os pacotes instalados...
A trava especificada foi adicionada com sucesso.

Novamente, tenha cuidade com a expansão do shell, utilize aspas se existe a possibilidade que yast2* coincida com algum arquivo ou pasta no diretório de trabalho.

Para listar as travas ativas:

$ zypper ll
# | Nome             | Tipo    | Repositório
--+------------------+---------+-----------
1 | libpoppler3      | pacote  | (qualquer)
2 | libpoppler-glib3 | pacote  | (qualquer)
3 | yast2*            | pacote  | (qualquer)

Para remover uma trava faça:

$ zypper rl yast2-packager
Lendo os pacotes instalados...
This query locks some of objects, wich you want unlock:

type: package
match_type: glob
case_sensitive: on
solvable_name: yast2*

Do you want remove this lock? [SIM/não]: s
Lock count has been succesfully decreased by: 1

Outros exemplos:

zypper al zypper                   # trava o pacote 'zypper' (coincidência exata)
zypper al -r repo-oss virtualbox*  # restringir a trava do pacote 'virtualbos' ao repositório 'repo-oss' (permitindo a instalação de outros)
zypper rl 3                        # remove a trava pelo número

Você pode manipular as travas também editando diretamente o arquivo de travas.

Utilitários

Verificar dependências

verify

Você pode acabar ocasionalmente com um sistema quebrado quando se trata de dependências de pacotes. Se algum dos seus aplicativos falha ao iniciar com uma mensagem indicando que algo está faltando, isto é algo para o zypper verificar:

$ rpm -e --nodeps mozilla-xulrunner190
$ firefox
Could not find compatible GRE between version 1.9.0 and 1.9.0.
$ zypper ve
Lendo os pacotes instalados...
Algumas das dependências dos pacotes instalados estão quebradas. Para resolver estas dependências, as seguintes ações precisam ser tomadas:

O seguinte pacote NOVO será instalado:
  mozilla-xulrunner190


Tamanho total do download: 6,5 M. Após a operação, 23,5 M adicionais serão utilizados.
Continuar? [SIM/não]: s

Instalar pacotes novos recomendados

install-new-recommends

Este comando encontra e instala pacotes novos recomendados para pacotes que você já tenha instalado, por exemplo ao se adicionar um novo repositório. Isto fornece um jeito fácil de instalar pacotes de idioma para o seu software ou drivers para novo hardware adicionado.

$ zypper inr
Lendo os pacotes instalados...

Os seguintes pacotes NOVOS serão instalados:
  kdebase4-openSUSE-lang bundle-lang-common-pt


Tamanho total do download: 534,0 K. Após a operação, 1,9 M adicionais serão utilizados.
Continuar? [SIM/não]:

Gerenciamento de atualizações

O seguinte é particularmente útil para pessoas que utilizam versões estáveis e querem atualizar seus sistemas com correções lançadas através dos repositórios de atualização online (para atualizações de pacotes, veja Atualizando pacotes). Repositóros de atualização são adicionados por padrão durante a instalação ou atualização do sistema, ou podem ser adicionados através da Configuração da Atualização Online na aba Software no Centro de Controle YaST, ou manualmente usando o zypper. Aqui está a lista de repositórios de atualização do openSUSE disponíveis.

O recurso do YaST equivalente é o módulo Atualização online.

Listando as atualizações

list-updates

Para listar todas as correções necessárias, faça:

$ zypper lu
Lendo os pacotes instalados...
Correções

Repositório      | Nome               | Versão  | Categoria   | Status
-----------------+--------------------+---------+-------------+-----------
Updates for 11.0 | KDE4-fixes         | 38      | recommended | Necessário
Updates for 11.0 | MozillaFirefox     | 50      | recommended | Necessário
Updates for 11.0 | NetworkManager-kde | 49      | recommended | Necessário
Updates for 11.0 | libxcrypt          | 109     | security    | Necessário

Algumas vezes somente as atualizações que afetam o gerenciador de pacotes são listadas, já que elas precisam ser aplicadas primeiro. Uma vez aplicadas, todas as outras atualizações disponíveis serão listadas por este comando.

O padrão deste comando é -t patch. Para lista todas as atualizações de pacotes disponíveis, use:

zypper lu -t package

Aplicando as correções

update

Para aplicar as correções necessárias, faça:

$ zypper up
Lendo os pacotes instalados...

Os seguintes pacotes serão atualizados:
  NetworkManager-kde mozilla-nss mozilla-nspr kde4-korganizer


As seguintes correções NOVAS serão instaladas:
  NetworkManager-kde MozillaFirefox KDE4-fixes


Tamanho total do download: 2,9 M. Após a operação, 283,0 K adicionais serão utilizados.
Continuar? [SIM/não]:

Listando as correções

patches

O comando list-updates lista somente as correções necessárias. Para listar todas as correções disponíveis, use:

$ zypper patches
Lendo os pacotes instalados...
Catálogo         | Nome               | Versão  | Categoria   | Status
-----------------+--------------------+---------+-------------+---------------
Updates for 11.0 | KDE4-fixes         | 38      | recommended | Instalado
Updates for 11.0 | MozillaFirefox     | 50      | recommended | Instalado
Updates for 11.0 | NetworkManager-kde | 49      | recommended | Instalado
Updates for 11.0 | autoyast2          | 37      | recommended | Instalado
Updates for 11.0 | courier-authlib    | 42      | security    | Não Aplicável
Updates for 11.0 | insserv            | 47      | recommended | Instalado
Updates for 11.0 | opera              | 43      | security    | Instalado
Updates for 11.0 | libxcrypt          | 109     | security    | Instalado

Verificando por correções

patch-check

Este comando irá mostrar quando existem correções importantes disponíveis para o seu sistema e a quantidade de tais correções:

$ zypper pchk
Lendo os pacotes instalados...
4 correções necessárias (1 correção de segurança)

Obtendo informações sobre as correções

patch-info
info -t patch

$ zypper info -t patch MozillaFirefox
Lendo os pacotes instalados...


Informação para correção MozillaFirefox:

Nome: MozillaFirefox
Versão: 50
Arquitetura: noarch
Fornecedor: maint-coord@suse.de
Status: Instalado
Categoria: recommended
Criado Em: Qui 01 Jan 1970 01:00:00 AM BRT
Reinicialização Necessária: Não
Reinício do Gerenciador de Pacotes Necessário: Não
Interativo: Não
Resumo: Mozilla Firefox 3.0
Descrição:
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.


Usando o zypper em scripts e aplicativos


O zypper suporta várias opções globais o que o torna adequado para o uso em processos automatizados como scripts. Também, vários códigos de saída diferentes listados na 'man page' do zypper podem ser verificados quando se usar o zypper em um processo automatizado.

Modo não interativo

--non-interactive

Neste modo, o zypper não pergunta por nada ao usuário e usa as respostas padrão. Quando usar esta opção, é garantido que o zypper não irá parar para perguntar nada.

Por exemplo, para atualizar o seu sistema automaticamente sem confirmação, você pode digitar:

# zypper --non-interactive update

Este comando não requer confirmação do usuário para proceder com a atualização, ignorando todas as correções interativas que possam necessitar confirmação e também responde automaticamente qualquer outro prompt.

Modo sem verificação GPG

--no-gpg-checks

Se esta opção for usada, o zypper sempre escolherá continuar se algumas verificações do gpg falharem, por exemplo, um arquivo de um repositório deveria ter sido assinado e não foi, o arquivo foi assinado mas a verificação gpg falha, etc.

Concordar automaticamente com as licenças

--auto-agree-with-licenses

Esta é uma opção especial para os comandos 'install', 'remove' e 'update'. Usando ela, o usuário declara que concorda com os termos das licenças que o comando irá instalar, e o zypper dirá automaticamente 'sim' no prompt de confirmação de licenças. Isto é útil para pessoas que instalam o mesmo conjunto de pacotes em várias máquinas (usando um processo automatizado) e tenha lido todas as licenças antes.

Saída silenciosa

--quiet

Previne a exibição de muitos textos como informações de progresso e somente exibe o resultado da operação e mensagens de erros.

Saída XML

--xmlout

Esta opção faz o zypper falar em XML. Isto permite scripts, interfaces gráficas ou outros tipos de aplicativos que gostariam de usar o zypper para analisar a saída do zypper de um jeito padronizado e bem definido. O esquema RNC da saída XML do zypper está disponível aqui e em /usr/share/zypper/xml/xmlout.rnc.

Nem todas (mas a maioria) da saída é atualmente em XML; a meta é ter todas as saídas possíveis em XML.

Prompts

As seguintes tabelas devem ser uma lista completa de casos onde o zypper necessita da interação do usuário junto com as respostas usadas no modo não interativo. Todas as opções adicionais mencionadas aqui tem prioridade maior que a opção --non-interactive, então, se usadas, as respostas que elas implicarem serão automaticamente usadas mesmo que a opção --non-interactive não for usada.

Prompts relacionados ao GPG

Onde a opção --no-gpg-checks for aplicada, uma mensagem é exibida ou um aviso é escrito em stderr e registrado.

Prompt Resposta padrão Com --no-gpgp-checks Nota
Aceitar arquivo não assinado? N S
Importar chave para o chaveiro? N N Uma chave nova só pode ser importada no modo interativo
Aceitar chave desconhecida? N S
Confiar na chave? N S
A verificação do arquivo assinado falhou, continuar? N S
Sem digest para o arquivo, continuar? N S
Aceitar digest desconhecido? N S

Outros prompts

Prompt Resposta padrão Outra resposta Note
Proceder com a instalação/remoção/atualização? S Adicionalmente, a opção --no-confirm pode ser utilizada com os comandos install/remove/update mesmo que sem a opção global --non-interactive
Confirmar licença de terceiros N S se --auto-agree-with-licenses for usado Adicionalmente, para zypper update, a opção --skip-interactive pode ser utilizada para excluir correções interativas da lista a ser instalada (uma herança do rug)
Confirmar uma mensagem de correção S
Problema ao instalar/remover um resolvível, Abortar/Repetir/Ignorar? ABORTAR Isto é feio e pode ser aprimorado no futuro
Problema ao baixar o pacote, Abortar/Repetir/Ignorar? ABORTAR Isto também é feio e pode ser aprimorado no futuro
Conflito de dependências, #/i/r/c (número da solução, ignorar, repetir ou cancelar) c Sempre cancela, a interação do usuário é necessária para resolver problemas de dependências
Requisição de alteração de mídia ABORTAR
Remover trava problemática? S

Na saída XML, os prompts são indicados pela tag <prompt>, contendo o atributo id. A enumeração de todos os ids disponíveis está no arquivo prompt.h incluído no pacote do zypper em (/usr/include/zypper/prompt.h).

Compatibilidade com o rug

A sintaxe do zypper é similar a do rug mas os comandos e opções começaram a diferir do rug, assim como a saída e o comportamento. No entanto, o zypper é capaz de trabalhar em modo de compatibilidade com o rug e suporta a maioria dos comandos do rug. Para maiores detalhes veja man zypper, na seção COMPATIBILIDADE COM O RUG.