Zypper/Usage/11.1
Da Wikipedia, l'enciclopedia libera.
| Questo articolo riguarda l'uso di Zypper, il gestore di pacchetti a riga di comando che fa uso della libreria Libzypp. Contiene informazioni complementari alla pagina di manuale di Zypper (man zypper). Quello che non puoi trovare qui dovresti trovare nella pagina di manuale e viceversa. |
| Version: 11.1
| Questo articolo riguarda zypper 1.0.2 presente su openSUSE 11.1. Per le altre versioni guarda Zypper/Versions |
Contents |
Comandi Veloci
Questi sono i comandi usati più di frequente:
zypper # stampa la lista delle opzioni globali e dei comandi disponibili zypper help search # stampa la guida per il comando search zypper lp # per vedere quali patch sono necessarie zypper patch # per applicare le patch necessarie zypper se sqlite # per cercare il pacchetto sqlite zypper rm sqlite2 # per rimuovere il pacchetto sqlite2 zypper in sqlite3 # per installare il pacchetto sqlite3 zypper in yast* # per installare tutti i pacchetti corrispondenti a yast* zypper up # per effettuare l'aggiornamento di tutti i pacchetti installati con le nuove versioni, dove ciò è possibile
Note:
Domanda: È vero che "zypper up" aggiorna i pacchetti solo quando una nuova versione è nello stesso repository del vecchio pacchetto e "zypper dup" aggiorna da qualunque repository il nuovo pacchetto si trova?
Risposta: "zypper up" aggiorna il pacchetto se una nuova versione è disponibile ma non cambierà il fornitore (Nota: L'intero build service correntemente ha lo stesso fornitore). "zypper dup" proverà a sincronizzare i pacchetti correntemente installati con uno tra quelli disponibili in tutti i repository abilitati. Questo significa che effettuerà anche il downgrade dei pacchetti se la versione installata è più recente rispetto a quella disponibile nel repository.
Uso Generale
La sintassi generale di zypper è:
zypper [opzioni-globali] comando [opzioni-comando] [argomenti] ...
I componenti racchiusi tra parentesi quadre non sono richiesti, così il modo più semplice per eseguire zypper è digitare il suo nome seguito da un comando. Per esempio, per applicare le patch necessarie al sistema digita:
zypper update -t patch
In aggiunta puoi scegliere tra una o più opzioni globali digitandole prima del comando: (avvia il comando, ma non chiede nulla, decide da solo)
zypper --non-interactive patch
Per usare le opzioni specifiche di un particolare comando, digitale dopo il comando: (applica le patch necessarie al sistema ma non chiede la conferma di ogni licensa, le ho già lette tutte)
zypper patch --auto-agree-with-licenses
Qualche comando richiede uno o più argomenti: (installa o aggiorna il pacchetto mplayer)
zypper install mplayer
Alcune opzioni richiedono anche un argomento: (cerca per pattern)
zypper search -t pattern
Combinando tutto quello detto precedentemente: (installa mplayer e amarok usando solo il repository factory, con descrizioni sul processo)
zypper -v install --repo factory mplayer amarok
Richieste Utente
Ogni volta che zypper necessita alcune informazioni da te, elenca le possibili risposte tra parentesi quadre vicine al testo della richiesta. Per scegliere la risposta predefinita premi su <invio> (la risposta predefinita è stampata in lettere maiuscole (ad eccezione dei caratteri non ascii)). Per alcune richieste è anche disponibile un aiuto, in quel caso c'è un punto di domanda ? elencato come una possibile risposta. Per far usare a zypper le risposte predefinite senza interazione utente, usa l'opzione globale --non-interactive.
Vocabolario
- repository - directory locale o remota contenente pacchetti e varie informazioni sugli stessi (metadati del pacchetto). I repository sono formalmente conosciuti come sorgenti di installazione , servizi o cataloghi).
- alias - l'alias di un repository è una versione corta del nome di un repository da usare nei comandi e nelle opzioni per la gestione dei repository come removerepo o --repo.
- package (pacchetto) - pacchetto software (pacchetto RPM o pacchetto sorgenti). Patch, pattern, e prodotti sono anche comunemente referenziati come differenti tipi di pacchetti.
- patch - rappresenta un pacchetto o un gruppo di pacchetti necessari per installare un aggiornamento (un bug fix la maggior parte delle volte).
- pattern - rappresenta un gruppo di pacchetti. Per esempio un Server Http dovrebbe avere le dipendenze definite in modo tale che tutti i pacchetti necessari per avviare e gestire un server http verrebbero attivati per l'installazione al momento di installare il pattern.
- product (prodotto) - rappresenta il prodotto completo (p.es. 'openSUSE 11.1').
Comandi
zypper fornisce un numero di comandi che possono essere raggruppati nelle seguenti categorie:
- gestione repository
refresh, repos, addrepo, removerepo, modifyrepo, namerepo
refresh-services, services, addservice, removeservice, modifyservice - gestione pacchetti
install, remove, source-install - gestione aggiornamenti
patch, list-patches, patch-check, patches, update, list-updates, dist-upgrade - interrogazione
search, info, what-provides, list-updates, patch-check, patches, packages, patterns, products - blocco
locks, addlock, removelock, cleanlocks - utilità
verify, install-new-recommends - altro
help, licenses, versioncmp, targetos
Stampare la guida
Per primo, è buono sapere come ricevere aiuto. Per stampare la guida generale (lista dei comandi e opzioni globali), digita solo zypper senza alcuna opzione o argomento. Per stampare la guida per un comando specifico, usa:
# zypper help [command]
zypper -h [command] e zypper [command] -h sono entrambi validi.
Gestione Repository
Puoi specificare repository esistenti dai loro numeri nella lista prodotta da zypper lr, tramite alias, o URI. Quando usi i numeri, assicurati sempre di controllare prima con zypper lr, il numero può cambiare dopo alcuni cambiamenti fatti nella lista dei repository.
Elenco dei repository definiti
repos o lr
Output d'esempio:
$ zypper lr # | Alias | Name | Enabled | Refresh --+-----------------------+-----------------------+---------+-------- 1 | packman | Packman 11.1 | Yes | No 2 | fate | fate | No | No 3 | openSUSE-11.1-Updates | Updates for 11.1 | Yes | Yes 4 | repo-oss | openSUSE-11.1-Oss | Yes | No 5 | repo-non-oss | openSUSE-11.1-Non-Oss | Yes | No 6 | repo-debug | openSUSE-11.1-Debug | No | No
Altri esempi:
zypper lr -u # per includere anche i repository URI nella tabella zypper lr -d # per includere molte altre proprietà del repository nella tabella zypper lr -P # per includere anche la priorità dei repository e ordinare la lista tramite questo parametro zypper lr -e my # esporta tutte le definizioni dei repository nel file my.repo
Aggiungere i Repository
addrepo o ar
Prima che qualunque pacchetto possa essere installato almeno un repository deve essere definito. Per aggiungere un repository, usa il comando addrepo:
Output d'esempio:
$ zypper ar http://download.videolan.org/pub/vlc/SuSE/11.1 vlc Adding repository 'vlc' [done] Repository 'vlc' successfully added Enabled: Yes Autorefresh: No URI: http://download.videolan.org/pub/vlc/SuSE/11.1
Altri esempi:
zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.1/X11:XGL.repo # via file .repo zypper ar -c ftp://some.download.site myalias # sonda il repository prima di aggiungerlo zypper ar my/dir/with/rpms local # aggiunge la directory in locale con i file rpm come repository
Guarda anche la lista dei tipi di media e degli Libzypp/URI supportati.
Rinfrescare i Repository
refresh o ref
Dopo aver aggiunto un repository o quando un repository diventa vecchio, deve essere rinfrescato. Questo significa effettuare il download dei metadati dei pacchetti e processare i dati nella cache .solv per una lettura veloce.
$ zypper refresh Downloading repository 'Packman 11.1' metadata [done] Building repository 'Packman 11.1' cache [done] Downloading repository 'Updates for 11.1' metadata [done] Building repository 'Updates for 11.1' cache [done] Repository 'openSUSE-11.1-Oss' is up to date. All repositories have been refreshed.
Se autorefresh è abilitato per un repository, non devi preoccuparti per il rinfresco in quanto avviene automaticamente quando richiesto. Comunque, alcune persone preferiscono controllare quando il rinfresco prende piede (p.es. per evitare di attendere per il rinfresco da completare quando vuoi solo vedere il risultato di zypper info krusader), così disabilitano l'autorefresh. Guarda man zypper per maggiori dettagli.
Altri esempi:
zypper ref packman main # puoi anche specificare quali repository rinfrescare zypper ref -f upd # forza il rinfresco del repository upd
Rimuovere i Repository
removerepo o rr
$ zypper rr vlc 1 23 foo Repository 23 not found by alias, number or URI. Repository foo not found by alias, number or URI. Removing repository 'repo-debug' [done] Repository 'repo-debug' has been removed. Removing repository 'vlc' [done] Repository 'vlc' has been removed.
Modificare i Repository
modifyrepo o mr
Disabilita il repository #6:
$ zypper mr -d 6 Repository 'repo-non-oss' has been sucessfully disabled.
Abilita l'autorefresh e il caching dei file rpm per il repository 'packman' e imposta la sua priorità 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.
Disabilita il caching dei file rpm per tutti i repository:
$ 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'.
Abilita il caching dei file rpm per tutti i repository:
$ zypper mr -ka RPM files caching has been enabled for repository 'repo-non-oss'. RPM files caching has been enabled for repository 'Main Repository (OSS)'. RPM files caching has been enabled for repository 'Main Repository (NON-OSS)'. RPM files caching has been enabled for repository 'openSUSE-11.1-Updates'.
Rinominare i Repository
namerepo o nr
$ zypper nr 3 upd Repository 'openSUSE-11.1-Updates' renamed to 'upd'.
Questo comando è attualmente in grado di cambiare l' alias del repository. Se desideri cambiare il nome visualizzato del repository, dai uno sguardo al comando mr.
Tenere gli alias corti e semplici per un uso facile come argomenti dei comandi e delle opzioni --repo. L'utilizzo di un alias è più sicuro del numero di repository (dato che può cambiare e si può facilmente fare un errore) e più facile degli URI (dato che sono lunghi, tralasciando la comodità del copy-e-incolla).
Import/Export Repository
repos --export o lr -e
Puoi esportare la lista completa dei repository in un file e importarla successivamente su un'altra macchina.
zypper lr --export backups/repos/foo.repo zypper ar backups/repos/foo.repo
Gestione Pacchetti
<da aggiungere>
Selezionare i Pacchetti
Ci sono diversi modi per cui è possibile scegliere i pacchetti per l'installazione o la rimozione.
- dal possibile nome
zypper in eclipse
zypper in qt - dal possibile nome e/o architettura e/o versione
zypper in 'zypper<0.12.10'
zypper in zypper.i586=0.12.11 - dal nome esatto del pacchetto (--name)
zypper in -n ftp - dal nome esatto del pacchetto e dal repository (implies --name)
zypper in factory:zypper - dal nome del pacchetto usando le wildcard
zypper in yast*ftp* - by specifying an .rpm package file to install
Installare i Pacchetti
install o in
Puoi installare i pacchetti dal nome...
$ 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 dal possibile fornito:
$ 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.
Altri esempi:
zypper in yast* # installa tutti i moduli di Yast zypper in -t pattern lamp_server # installa il pattern ''lamp_server'' (i pacchetti necessari per un server LAMP) zypper in vim -emacs # installa ''vim'' e rimuovi ''emacs'' in un sol colpo zypper in amarok packman:libxine1 # installa ''libxine1'' da packman e ''amarok'' da qualunque repository zypper in bitchx-1.1-81.x86_64.rpm # installa l'rpm di ''bitchx'' dalla directory locale zypper in -f subversion # forza la reinstallazione di ''subversion''
Rimuovere i Pacchetti
remove o rm
Il comando remove è molto simile al comando di installazione, ad eccezione del fatto che l'effetto è il 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
Pacchetti di Sorgenti e Dipendenze di Build
source-install o si
$ zypper si zypper Reading installed packages... The following NEW packages are going to be installed: libzypp-devel libsatsolver-devel The following source package is going to be installed: zypper Overall download size: 1.5 M. After the operation, additional 6.7 M will be used. Continue? [YES/no]:
Puoi anche installare solo le dipendenze di build o solo i pacchetti di sorgenti:
zypper in -D zypper # solo i pacchetti di sorgenti (no dipendenze di build) zypper in -d zypper # solo i pacchetti di dipendenze (no pacchetti sorgenti)
Aggiornare i Pacchetti
update o up
Di seguito come aggiornare i pacchetti con le loro nuove versioni disponibili. Guarda anche il paragrafo gestione degli aggiornamenti per maggiori informazioni.
zypper up # aggiorna tutti i pacchetti installati con la versione più recente, per quanto possibile, zypper up libzypp zypper # aggiorna ''libzypp'' e ''zypper'' zypper in sqlite3 # aggiorna ''sqlite3'' o lo installa se non ancora presente
Interrogazione
Ricercare i Pacchetti
search o se
Per impostazione predefinita, il comando search guarda, per i pacchetti di ogni tipo, stato o repository, avente nome che contiene la stringa specificata (la comparazione non è case-sensitive):
$ 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 lettera i nella prima colonna afferma che il pacchetto è già installato. Per vedere tutte le versioni disponibili del pacchetto corrispondente, usa l'opzione "--details/-s":
$ zypper search -s --match-exact virtualbox-ose Reading installed packages... S | Name | Type | Version | Arch | Repository --+----------------+---------+------------+--------+------------------------------------ v | virtualbox-ose | package | 1.6.2-2.1 | x86_64 | VirtualBox OSE i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.1-Oss v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE ( v | virtualbox-ose | package | 1.6.2-2.1 | i586 | VirtualBox OSE v | virtualbox-ose | package | 1.5.6-33.1 | i586 | openSUSE-11.1-Oss v | virtualbox-ose | package | 1.5.6-20.3 | i586 | VirtualBox OSE
La lettera i nella prima colonna afferma che il programma selezionato è già installato sulla macchina locale, mentre la lettera v nella prima colonna afferma che ci sono altre versioni del programma installate sulla macchina locale
Altri esempi:
zypper se -dC --match-words RSI # guarda l'acronimo RSI (case-sensitive), anche nel sommario e nella descrizione zypper se 'yast*' # mostra tutti i pacchetti che cominciano con yast (attenzione all'espansione della shell, quota le stringhe se non sei sicuro!) zypper se -r packman # elenca tutti i pacchetti presenti sul repository packman zypper se -i sqlite # mostra tutti i pacchetti installati contenenti nel loro nome sqlite zypper se -t pattern -r repo-oss # elenca tutti i pattern disponibili nel repository repo-oss zypper se -t product # elenca tutti i prodotti disponibili
Ottenere Informazioni sui Pacchetti
info o if
$ zypper info amarok Reading installed packages... Information for package amarok: Repository: Packman 11.1 Name: amarok Version: 1.4.9.1-103.pm.1 Arch: x86_64 Vendor: packman.links2linux.de Installed: Yes Status: up-to-date Installed Size: 12.1 M Summary: Media Player for KDE Description: Amarok is a media player for all kinds of media, supported by aRts, GStreamer or Xine (depending on the packages you install). This includes MP3, Ogg Vorbis, audio CDs and streams. It also supports audio effects of all kinds that are provided by aRts. Playlists can be stored in .m3u or .pls files. Amarok also provides audio file collection management, by using either an embedded sqlite3, a MySQL or a PostgreSQL database.
Questo comando visualizza informazioni dettagliate sul pacchetto amarok.
Altri esempi:
zypper info -t patch MozillaFirefox # mostra informazioni sulla patch MozillaFirefox zypper patch-info MozillaFirefox # lo stesso di sopra zypper info -t pattern lamp_server # mostra informazioni sul pattern lamp_server zypper info -t product openSUSE-FTP # mostra informazioni su un prodotto specifico
Dipendenze
what-provides o wp
Per elencare i fornitori di file specifici:
$ zypper wp firefox Reading installed packages... S | Name | Type | Version | Arch | Repository --+----------------+---------+-------------+--------+------------------ i | MozillaFirefox | package | 3.0-0.1 | x86_64 | Updates for 11.1 v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.1-Oss v | MozillaFirefox | package | 3.0-0.1 | i586 | Updates for 11.1 v | MozillaFirefox | package | 2.9.95-25.1 | i586 | openSUSE-11.1-Oss
Questo comando è simile a rpm -q --whatprovides firefox, ma rpm è solo in grado di interrogare il database RPM (database dei pacchetti installati). Zypper, invece, interrogherà i fornitori di qualsiasi repository, non solo di quelli installati.
Altre Interrogazioni
I comandi patches, packages, patterns, e products sono simili a search -s -t [patch,package,pattern,product], ad eccezione del fatto che visualizzano alcune informazioni aggiuntive specifiche al corrispondente tipo di pacchetto. Per esempio patches mostra anche los stato delle patch (Needed/Security/Not Applicable).
I comandi list-updates e patch-check sono discussi nel paragrafo sulla gestione degli aggiornamenti.
Pacchetti Bloccati
locks o ll addlock o al removelock o rl cleanlocks or cl
Il blocco dei pacchetti serve allo scopo di prevenire cambiamenti ai pacchetti nel sistema. Per i corrispondenti pacchetti un blocco attivo non può cambiare il loro stato installato; pacchetti installati non possono essere rimossi o aggiornati, pacchetti non ancora installati non possono essere installati.
Per bloccare tutti i pacchetti che cominciano con yast2:
$ zypper al 'yast2*' Reading installed packages... Specified lock has been successfully added.
Fai ancora attenzione alle espansioni della shell, usa la quotatura se c'è una possibilità che yast* corrisponda qualche file o directory nella directory di lavoro.
Per elencare i blocchi attivi correnti:
$ zypper ll # | Name | Type | Repository --+------------------+---------+----------- 1 | libpoppler3 | package | (any) 2 | libpoppler-glib3 | package | (any) 3 | yast* | package | (any)
Per rimuovere un blocco:
$ 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
Altri esempi:
zypper al zypper # blocca il pacchetto zypper (corrispondenza esatta) zypper al -r repo-oss virtualbox* # restringi il blocco al repository 'repo-oss' (consente l'installazione da altri) zypper rl 3 # rimuove il blocco tramite numero
Puoi manipolare direttamente i blocchi editando direttamente il file dei blocchi.
Utilità
Verifica delle Dipendenze
verify o ve
Occasionalmente può succedere di rimanere con un sistema danneggiato quando si tratta di dipendenze dei pacchetti. Se qualcuna delle tue applicazioni fallisce l'avvio con un messaggio che indica la mancanza di qualcosa, questo è qualcosa da verificare con zypper:
$ 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
Installare i nuovi pacchetti raccomandati
install-new-recommends or inr
Questo comando rileva e installa i pacchetti raccomandati aggiunti recentemente per i pacchetti già installati. Questo fornisce un modo semplice per ottenere nuovi pacchetti di lingua per il software o driver per l'hardware recentemente aggiunto.
$ 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]:
Gestione Aggiornamenti
Ci sono due approcci per mantenere il sistema sempre aggiornato. Una è patch-wise, la seconda è package-wise.
L'approccio patch-wise è particolarmente utile per le persone che usano la release stabile e vogliono aggiornare i loro sistemi con patch rilasciate attraverso i repository di aggiornamento online. I repository di aggiornamento sono aggiunti durante l'installazione o l'upgrade del sistema, oppure possono essere aggiunti attraverso la Configurazione degli Aggiornamenti Online dalla scheda Software in YaST Control Center, o manualmente usando zypper. Qui c'è la lista dei repository di aggiornamento disponibili.
La funzione di YaST equivalente è data dal modulo Aggiornamento Online.
Il secondo tipo, package-wise, è descritto nella sezione Aggiornamento Pacchetti ed è usato per l'aggiornamento generale dei pacchetti da ogni repository con le loro versioni recenti.
Elencare le patch necessarie
list-patches o lp
Per elencare tutte le patch necessarie:
$ zypper lp Reading installed packages... Patches Repository | Name | Version | Category | Status -----------------+--------------------+---------+-------------+------- Updates for 11.1 | KDE4-fixes | 38 | recommended | Needed Updates for 11.1 | MozillaFirefox | 50 | recommended | Needed Updates for 11.1 | NetworkManager-kde | 49 | recommended | Needed
A volte sono elencati solo gli aggiornamenti che riguardano il sistema di gestione dei pacchetti, in quanto questi devono essere applicati prima. Una volta applicati, saranno elencati da questo comando il resto degli aggiornamenti disponibili.
Questo comando è equivalente a zypper up -t patch noto dalle precedenti versioni di zypper. Per elencare tutti gli aggiornamenti ai pacchetti disponibili, usa:
zypper lu
Applicare le Patch
update patch
Per applicare le patch necessarie:
$ zypper patch Reading installed packages... The following packages are going to be upgraded: NetworkManager-kde mozilla-nss mozilla-nspr kde4-korganizer The following NEW patches are going to be installed: NetworkManager-kde MozillaFirefox KDE4-fixes Overall download size: 2.9 M. After the operation, additional 283.0 K will be used. Continue? [YES/no]:
Elencare tutte le Patch
patches
Il comando list-updates elenca solo le patch necessarie. Per elencare tutte le patch disponibili:
$ zypper patches Reading installed packages... Catalog | Name | Version | Category | Status -----------------+--------------------+---------+-------------+--------------- Updates for 11.1 | KDE4-fixes | 38 | recommended | Installed Updates for 11.1 | MozillaFirefox | 50 | recommended | Installed Updates for 11.1 | NetworkManager-kde | 49 | recommended | Installed Updates for 11.1 | autoyast2 | 37 | recommended | Installed Updates for 11.1 | courier-authlib | 42 | security | Not Applicable Updates for 11.1 | insserv | 47 | recommended | Installed Updates for 11.1 | opera | 43 | security | Installed
Controllo delle Patch
patch-check
Questo comando dirà se ci sono importanti patch disponibili per il sistema e il numero di tali patch:
$ zypper pchk Reading installed packages... 0 patches needed (0 security patches)
Ottenere informazioni sulle Patch
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.
Aggiornamenti del pacchetto
list-updates or lu
update or up
Per aggiornare semplicemente i pacchetti installati con le loro versioni più recenti disponibili, eseguire:
zypper up
Puoi ottenere la list degli aggiornamenti disponibili con:
zypper lu
I comandi sopra elencheranno o aggiorneranno solo quei pacchetti i cui aggiornamenti non hanno problemi di dipendenze. Per ottenere la lista dei pacchetti con le versioni più recenti rispetto a quelli installati, esegui:
zypper lu -a
Questo elencherà tutti gli aggiornamenti candidati indipendentemente dal fatto che siano installabili o meno, o se hanno bisogno dell'interazione utente per risolvere alcuni problemi.
Aggiornamento della Distribuzione (Upgrade)
dist-upgrade or dup
Questo comando usa l'algoritmo di upgrade della distribuzione il quale This command uses the distribution upgrade algorithm, che gestisce i pacchetti divisi, non mantenuti, e simili. Usalo per passare ad un'altra release della distribuzione.
Si consiglia di abilitare solo il repository principale della distribuzione che si desidera installare più alcuni importanti repository che si stavano utilizzando (meglio ancora - la loro versione deve essere corrispondente alla versione del Repository principale) durante un dist-upgrade. Puoi disabilitare i vecchi repository usando zypper mr -da, e aggiungere i nuovi attraverso zypper ar e ottenere l'ultima release con zypper dup. È inoltre possibile specificare i repository che devono essere utilizzati tramite l'opzione --repo: zypper dup -r repo1 -r repo2 ....
Nota:
Domanda: È vero che "zypper up" aggiorna i pacchetti solo quando una nuova versione è nello stesso repository del vecchio pacchetto e "zypper dup" aggiorna da qualunque repository il nuovo pacchetto si trova?
Risposta: "zypper up" aggiorna il pacchetto se una nuova versione è disponibile ma non cambierà il fornitore (Nota: L'intero build service correntemente ha lo stesso fornitore). "zypper dup" proverà a sincronizzare i pacchetti correntemente installati con uno tra quelli disponibili in tutti i repository abilitati. Questo significa che effettuerà anche il downgrade dei pacchetti se la versione installata è più recente rispetto a quella disponibile nel repository.
Uso di Zypper negli script e nelle applicazioni
Zypper supporta diverse opzioni globali che lo rendono adatto per l'uso all'interno di processi automatizzati come gli script. Inoltre, diversi codici di output elencati nella pagina di manuale di zypper possono essere controllati per l'utilizzo di zypper in un processo automatizzato.
Modalità non interattiva
--non-interactive
In questa modalità zypper non richiede l'intervento dell'utente e per eventuali risposte utilizza quelle di default. Quando si utilizza questa opzione, è garantito che zypper non disturberà per chiedere una risposta sullo standard input, o in un loop infinito.
Per esempio, per aggiornare il sistema automaticamente senza conferme, puoi digitare:
# zypper --non-interactive update
Questo comando non richiede la conferma da parte degli utenti per procedere con l'aggiornamento; salta tutte le patch che avrebbero bisogno di ulteriori richieste di conferma e automaticamente anche tutte le altre richieste.
Modalità di controllo No GPG
--no-gpg-checks
Se questa opzione è usata, zypper sceglierà sempre di continuare se qualche controllo gpg fallisce, per esempio un file di un repository non è firmato e dovrebbe esserlo, un file è firmato e il controllo gpg fallisce, ecc.
Auto-accettazione delle Licenze
--auto-agree-with-licenses
Questa è un'opzione speciale per i comandi install, remove e update. Usandola l'utente dichiara che accetta i termini di licenza, il comando installerà, e zypper dirà automatcamente 'si' alla richiesta di conferma della licenza. Questa opzione è utile per le persone che installano sempre gli stessi insiemi di pacchetti su macchine multiple (da un processo automatizzato) e hanno letto tutte le licenze precedentemente.
Output Silenzioso
--quiet
Evita la visualizzazione di troppi testi come informazioni sul progresso e visualizza solo il risultato dell'operazione e i messaggi di errore.
Output XML
--xmlout
Questa opzione fa parlare zypper in XML. Permette agli script, alle interfacce grafiche o ad altri tipi di applicazioni che desiderano utilizzare zypper, di analizzare l'output di zypper in una modalità standard ben definita. Lo schema RNC dell'output XML di zypper è disponibile qui e sotto /usr/share/zypper/xml/xmlout.rnc.
Non tutti, ma la maggior parte degli output sono attualmente in XML; l'obiettivo è di avere tutti gli output possibili in XML.
Richieste
Di seguito ci dovrebbe essere una lista completa di casi dove zypper necessita l'interazione dell'utente insieme con le risposte usate nella modalità non-interattiva. Tutte le opzioni aggiuntive menzionate qui hanno priorità più elevata rispetto a --non-interactive, così se usato, le risposte implicite sono automaticamente usate anche se --non-interactive non è usato.
Richieste relativa a GPG
Quando è applicato --no-gpg-checks, un messaggio è visualizzato o un avviso è scritto sullo standard error e loggato.
| richiesta | risposta predefinita | con --no-gpgp-checks | nota |
|---|---|---|---|
| accetta file non firmati? | N | Y | |
| accetta nuove chiavi (respinge la chiave, fiducia temporanea, fiducia per sempre? [r/t/a]) | R | R | una nuova chiave può essere resa affidabile o importata solo nel modo interattivo |
| accetta chiave sconosciuta? | N | Y | |
| verifica del file firmato fallita, continua? | N | Y | |
| un file non assimilato, continua? | N | Y | |
| accetta assimilazione sconosciuta? | N | Y |
Altre Richieste
| richiesta | risposta predefinita | altra risposta | nota |
|---|---|---|---|
| procedere con installazione/rimozione/aggiornamento? | Y | in aggiunta, l'opzione --no-confirm può essere usata con i comandi install/remove/update anche senza l'opzione globale --non-interactive | |
| conferma licenza di terze parti | N | Y se --auto-agree-with-licenses è usato | in aggiunta, per l'aggiornamento di zypper, l'opzione --skip-interactive può essere usata per escludere le patch interattive dall'elenco per-essere-installato (eredità di rug) |
| conferma un messaggio di patch | Y | ||
| problema durante installazione/rimozione di un risolubile, Interrompi/Riprova/Ignora? | INTERROMPI | è brutto e può essere migliorato in futuro | |
| problema durante il download di un pacchetto, Interrompi/Riprova/Ignora? | INTERROMPI | è brutto e può essere migliorato in futuro | |
| conflitti di dipendenze, #/s/r/c (numero della soluzione, salta, riprova, o cancella) | C | sempre cancella, ma l'interazione utente è necessaria per risolvere le dipendenze | |
| il media cambia richiesta | INTERROMPI | ||
| rimuovi blocchi problematici? | Y |
Nell'output XML, le richieste sono indicate dal tag <prompt>, contenente l'attributo id. L'enumerazione di tutti gli id noti è disponibile nel file include prompt.h impacchettati con zypper (/usr/include/zypper/prompt.h).
Compatibilità con Rug
La sintassi di Zypper è simile a quella di rug ma l'insieme dei comandi e delle opzioni hanno cominciato a diversificarsi da rug così come il suo output e il suo comportamento. Comunque, zypper è in grado di lavorare anche in modalità rug-compatibile e supportare la maggior parte dei comandi di rug. Per maggiori dettagli guarda man zypper, nella sezione Compatibilità Con Rug.

