Zypper/Usage/11.1

Da Wikipedia, l'enciclopedia libera.

< Zypper | Usage(Reindirizzamento da Zypper/Usage)
Geeko 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.



Image:susemini.png
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.