Zypper/Uso
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 |
Índice
- 1 Referência rápida
- 2 Uso geral
- 3 Vocabulário
- 4 Comandos
- 5 Usando o zypper em scripts e aplicativos
- 6 Compatibilidade com o rug
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.