SDB:Utilizzo di Zypper in openSUSE 12.2
Indice
- 1 Guida rapida
- 2 Uso Generale
- 3 Dizionario
- 4 Comandi
- 5 Usare zypper in script e applicazioni
- 6 Compatibilità con Rug
- 7 Vedi anche
Guida rapida
Questi sono i comandi probabilmente 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, ove possibile
Cheat sheet
Le informazioni contenute in questo articolo, e altre, sono anche disponibili sotto forma di cheat sheet, ma solo per il wiki di openSUSE in lingua inglese. Se interessati visitare la pagina in inglese.
Uso Generale
La sintassi generale di zypper è:
Le parti racchiuse tra parentesi quadre non sono richieste, 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:
In aggiunta puoi scegliere tra una o più opzioni globali digitandole subito prima del comando: (avvia il comando, ma non chiedermi nulla, decidi da solo)
Per usare le opzioni specifiche di un particolare comando, digitale dopo il comando: (applica le patch necessarie al sistema ma non chiedermi la conferma di ogni licensa, le ho già lette tutte)
Qualche comando richiede uno o più argomenti: (installa o aggiorna il pacchetto mplayer)
Alcune delle opzioni richiedono anche un argomento: (cerca per pattern/modelli)
Combinando tutto quello elencato qui sopra: (installa mplayer e amarok usando solo il repository factory, visualizza informazioni dettagliate sul processo)
Richieste Utente
Ogni volta che necessita di qualche intervento da parte dell'utente, zypper 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.
Dizionario
- repository - directory locale o remota contenente pacchetti e varie informazioni sugli stessi (metadati del pacchetto). I repository erano precedentemente conosciuti come sorgenti di installazione , servizi o cataloghi).
- alias - l'alias di un repository è una versione abbreviata 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 sorgente). Comunemente si fa anche riferimento a patch, pattern (modelli), e prodotti 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 (modello) - rappresenta un gruppo di pacchetti. Per esempio un pattern Server Http dovrebbe avere le dipendenze definite in modo tale che tutti i pacchetti necessari per avviare e gestire un server http vengano attivati per l'installazione al momento di installare il modello (pattern).
- product (prodotto) - rappresenta il prodotto completo (p.es. 'openSUSE 12.2').
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 a video la guida
Per prima cosa, è utile sapere come ricevere aiuto. Per stampare a video 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:
Nota che, per praticità, è anche possibile usare -h al posto di --help come opzione.
Gestione dei repository
Puoi specificare i repository esistenti per mezzo dei numeri ad essi associati nell'elenco generato da zypper lr, tramite i corrispettivi alias, o gli indirizzi URI. Quando usi i numeri, assicurati sempre di controllare prima con zypper lr, poiché il numero potrebbe cambiare dopo alcune modifiche fatte alla lista dei repository.
Elenco dei repository impostati
repos o lr
Output d'esempio (i comandi se lanciati da root probabilmente visualizzeranno l'output in inglese):
# | Alias | Name | Enabled | Refresh ---+----------------------------------+------------------------------------+---------+-------- 1 | Mewtwo:KDE:Extra | KDE:Extra | Yes | Yes 2 | Mewtwo:repo-ati | repo-ati | Yes | Yes 3 | Mewtwo:repo-debug | openSUSE-12.2-Debug | No | Yes 4 | Mewtwo:repo-debug-update | openSUSE-12.2-Update-Debug | No | Yes 5 | Mewtwo:repo-debug-update-non-oss | openSUSE-12.2-Update-Debug-Non-Oss | No | Yes 6 | Mewtwo:repo-libdvdcss | repo-libdvdcss | Yes | Yes 7 | Mewtwo:repo-non-oss | openSUSE 12.2 Oss | No | Yes 8 | Mewtwo:repo-oss | openSUSE-12.2-Oss | Yes | Yes 9 | Mewtwo:repo-packman | packman | Yes | Yes 10 | Mewtwo:repo-source | openSUSE-12.2-Source | Yes | Yes 11 | Mewtwo:repo-update | openSUSE-12.2-Update | Yes | Yes 12 | Mewtwo:repo-update-non-oss | openSUSE-12.2-Update-Non-Oss | Yes | Yes 13 | Mewtwo:security | security | Yes | Yes
Alias : Mewtwo:repo-debug-update-non-oss Name : openSUSE-12.2-Update-Debug-Non-Oss URI : http://download.opensuse.org/debug/update/12.2-non-oss/ Enabled : No Priority : 99 Auto-refresh : On Keep Packages : Off Type : rpm-md GPG Check : On GPG Key URI : Path Prefix : Parent Service : Mewtwo MD Cache Path : /var/cache/zypp/raw/Mewtwo:repo-debug-update-non-oss Alias : Mewtwo:repo-debug-update Name : openSUSE-12.2-Update-Debug URI : http://download.opensuse.org/debug/update/12.2/ Enabled : No Priority : 99 Auto-refresh : On Keep Packages : Off Type : rpm-md GPG Check : On GPG Key URI : Path Prefix : Parent Service : Mewtwo MD Cache Path : /var/cache/zypp/raw/Mewtwo:repo-debug-update
Altri esempi:
zypper lr -u # per includere anche gli URI dei repository nella tabella
zypper lr -d # per includere molte altre proprietà dei repository nella tabella
zypper lr -P # per includere anche la priorità dei repository e ordinare la lista secondo tale parametro
zypper lr -e my # esporta tutte le definizioni dei repository nel file my.repo
Aggiungere repository
addrepo o ar
Prima che qualunque pacchetto possa essere installato, deve essere impostato almeno un repository. Per aggiungere un repository, usa il comando addrepo:
Output d'esempio:
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 # controlla il repository prima di aggiungerlo zypper ar mia/dir/con/rpm locale # aggiunge come repository una directory locale contenente file rpm
Consulta anche Libzypp per l'elenco dei supporti di installazione (o media nella versione inglese) e degli URI supportati.
Aggiornare i epository
refresh o ref
Dopo aver aggiunto un repository o quando un repository diventa vecchio, deve essere aggiornato (ovvero rinfrescato, in base alla terminologia usata da libzypp). Questo significa effettuare il download dei metadati dei pacchetti e pre-processare i dati nella cache .solv, per poterne fare poi una lettura veloce.
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 l'aggiornamento, in quanto quest'ultimo avviene automaticamente quando richiesto. Comunque, alcune persone preferiscono avere il controllo di quando effettuare l'aggiornamento (p.es. per evitare di attendere che termini l'aggiornamento 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 aggiornare zypper ref -f upd # forza l'aggiornamento del repository "upd"
Rimuovere i repository
removerepo o rr
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 n.6:
Repository 'repo-non-oss' has been sucessfully disabled.
Abilita aggiornamento automatico (autorefresh) e memorizzazione su disco (caching) dei file rpm per il repository 'packman' e imposta la sua priorità a 70:
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 salvataggio su cache (caching) dei file RPM per tutti i repository:
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 salvataggio su cache (caching) dei file rpm per tutti i repository:
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
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.
Mantieni gli alias semplici e brevi per usarli con facilità come argomenti dei comandi e delle opzioni --repo
. L'utilizzo di un alias è più sicuro che usare il numero di repository (dato che può cambiare ed è facile confondersi) e più semplice che servirsi degli URI (dato che sono lunghi, costringendo a ricorrere al copia e incolla).
Importare ed esportare i repository
repos --export oppure lr -e
Puoi esportare la lista completa dei repository in un file e importarla successivamente su un'altra macchina.
Gestione dei servizi
I servizi si collocano al livello immediatamente superiore ai repository e servono a gestire i repository. Invero Libzypp supporta (almeno per ora) un solo tipo di servizio: il Repository Index Service, anche noto come RIS.
Aggiungere un servizio
addservice oppure as
Per aggiungere un servizio digita addservice
Esempio:
El servicio 'Mewtwo' se agregó correctamente.
Aggiornare un servizio
refresh-services oppure refs
Subito dopo aver aggiunto un servizio, lo si deve aggiornare per impostare i repository che esso fornisce:
Actualizando servicio 'Mewtwo'. Añadiendo el repositorio 'KDE:Extra' .......................................................[hecho] Añadiendo el repositorio 'repo-ati' ........................................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Debug' .............................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Update-Debug' ......................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Update-Debug-Non-Oss' ..............................[hecho] Añadiendo el repositorio 'repo-libdvdcss' ..................................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Oss' ...............................................[hecho] Añadiendo el repositorio 'packman' .........................................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Source' ............................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Update' ............................................[hecho] Añadiendo el repositorio 'openSUSE-12.2-Update-Non-Oss' ....................................[hecho] Añadiendo el repositorio 'security' ........................................................[hecho] Todos los servicios fueron actualizados.
La prima volta che si aggiorna un servizio, si devono abilitare i repository con il comando zypper mr -e -a
Rimuovere un servizio
removeservice oppure rs
Si può rimuovere un servizio usando il comando rs.
Esempio:
Eliminado servicio 'Mewtwo': Eliminado el repositorio 'KDE:Extra' .......................................................[hecho] Eliminado el repositorio 'repo-ati' ........................................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Debug' .............................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Update-Debug' ......................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Update-Debug-Non-Oss' ..............................[hecho] Eliminado el repositorio 'repo-libdvdcss' ..................................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Oss' ...............................................[hecho] Eliminado el repositorio 'packman' .........................................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Source' ............................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Update' ............................................[hecho] Eliminado el repositorio 'openSUSE-12.2-Update-Non-Oss' ....................................[hecho] Eliminado el repositorio 'security' ........................................................[hecho] Se eliminó el servicio 'Mewtwo'.
Gestione pacchetti
Selezionare i pacchetti
Ci sono diversi modi con cui è possibile scegliere i pacchetti per l'installazione o la rimozione.
- in base al nome della capacità (capability, in breve il nome della funzionalità richiesta)
zypper in eclipse
zypper in qt - in base al nome della capacità o all'architettura o alla versione, o a combinazioni di questi tre parametri
zypper in 'zypper<0.12.10'
zypper in zypper.i586=0.12.11 - in base al nome esatto del pacchetto (--name)
zypper in -n ftp - in base al nome esatto del pacchetto e al repository (implica --name)
zypper in factory:zypper - in base al nome del pacchetto usando i caratteri jolly
zypper in yast*ftp* - specificando un pacchetto .rpm da installare. Il percorso può essere relativo o assoluto
zypper in foo.rpm #Relative path.
zypper in /path/to/somewhere/foo.rpm #Absolute path
Installare i pacchetti
install o in
Puoi installare i pacchetti in base al nome...
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 alla capacità (capability) che forniscono:
Reading installed packages... 'MozillaFirefox' providing 'MozillaFirefox<3' is already installed. Nothing to do.
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/?]:
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 modello (''pattern'') "lamp_server" (i pacchetti necessari per un server LAMP) zypper in emacs pattern:lamp_server # installa il pacchetto emacs e il pattern lamp_server 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 produce l'effetto contrario.
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 sorgente e dipendenze di build
source-install o si
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 (compilazione e creazine pacchetti) o solo i pacchetti sorgente:
zypper si -D zypper # solo i pacchetti sorgente (senza dipendenze di build) zypper si -d zypper # solo le dipendenze di build (senza pacchetti sorgente)
Aggiornare i pacchetti
update o up
I seguenti comandi servono ad aggiornare i pacchetti alle loro versioni disponibili più recenti. Vedi 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
Cercare tra i pacchetti
search o se
Per impostazione predefinita, il comando search ricerca i pacchetti di ogni tipo, stato o repository, i cui nomi contengano la stringa specificata (il confronto ignora la differenza tra maiscule e minuscle, non essendo case-sensitive):
Loading repository data... Reading installed packages... S | Name | Summary | Type --+-----------------------------+----------------------------------------------------------------+----------- | dovecot21-backend-sqlite | SQLite support for Dovecot | package | go-gosqlite | Trivial SQLite binding for Go | package | go-gosqlite | Trivial SQLite binding for Go | srcpackage | go-gosqlite-doc | API documenation | package | libapr-util1-dbd-sqlite3 | DBD driver for SQLite 3 | package | libdbi-drivers-dbd-sqlite3 | SQLite3 driver for libdbi | package | libgda-3_0-sqlite | Sqlite Provider for GNU Data Access (GDA) | package | libgda-5_0-sqlite | Sqlite Provider for GNU Data Access (GDA) | package i | libqt4-sql-sqlite | Qt 4 sqlite plugin | package i | libqt4-sql-sqlite-32bit | Qt 4 sqlite plugin | package i | libsqlite3-0 | Shared libraries for the Embeddable SQL Database Engine | package i | libsqlite3-0-32bit | Shared libraries for the Embeddable SQL Database Engine | package | mono-data-sqlite | Database connectivity for Mono | package | pdns-backend-sqlite2 | SQLite 2 backend for pdns | package i | perl-DBD-SQLite | Self-contained RDBMS in a DBI Driver | package | perl-DBD-SQLite | Self-contained RDBMS in a DBI Driver | srcpackage | perl-DBD-SQLite-devel | Development files for perl-DBD-SQLite | package i | php5-sqlite | PHP5 Extension Module | package | proftpd-sqlite | SQLite Module for ProFTPD | package | python-pysqlite | DB-API 2.0 interface for SQLite 3.x | package | python-pysqlite | DB-API 2.0 interface for SQLite 3.x | srcpackage | python-pysqlite-debuginfo | Debug information for package python-pysqlite | package | python-pysqlite-debugsource | Debug sources for package python-pysqlite | package | qt3-sqlite | SQLite Database Plug-In for Qt | package | rubygem-sqlite3 | A Ruby interface for the SQLite3 database engine | package | rubygem-sqlite3 | A Ruby interface for the SQLite3 database engine | srcpackage | rubygem-sqlite3-doc | RDoc documentation for sqlite3 | package | rubygem-sqlite3-testsuite | Test suite for sqlite3 | package i | sqlite2 | Embeddable SQL Database Engine | package | sqlite2 | Embeddable SQL Database Engine | srcpackage | sqlite2-32bit | Embeddable SQL Database Engine | package | sqlite2-devel | Embeddable SQL Database Engine | package | sqlite3 | Embeddable SQL Database Engine | package | sqlite3 | Embeddable SQL Database Engine | srcpackage i | sqlite3-devel | Embeddable SQL Database Engine | package | sqlite3-tcl | Tcl binding for SQLite | package | strongswan-sqlite | OpenSource IPsec-based VPN Solution | package | tntdb3-sqlite | Tntdb is a c++-class-library for easy database-access - sqlite | package | tntdb3-sqlite-debuginfo | Debug information for package tntdb3-sqlite | package | ulogd2-sqlite3 | SQLite3 output target for ulogd2 | package
La lettera i nella prima colonna indica che il pacchetto è già installato sulla macchina locale. Per vedere tutte le versioni disponibili dei pacchetti corrispondenti alla ricerca, usa l'opzione "--details/-s":
Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository --+------------+------------+--------------+--------+--------------------- | virtualbox | package | 4.1.18-1.3.1 | x86_64 | openSUSE-12.2-Oss | virtualbox | package | 4.1.18-1.3.1 | i586 | openSUSE-12.2-Oss | virtualbox | srcpackage | 4.1.18-1.3.1 | noarch | openSUSE-12.2-Source
La lettera i nella prima colonna indica che il programma selezionato è già installato sulla macchina locale, mentre la lettera v nella prima colonna indica che sono disponibili altre versioni del prodotto installato sulla macchina locale.
Altri esempi:
zypper se -dC --match-words RSI # cerca l'acronimo RSI (in modfo case-sensitive, sensibile alle maiuscole), anche nel sommario e nella descrizione zypper se 'yast*' # visualizza tutti i pacchetti che cominciano con 'yast' (attenzione all'espansione di shell, in caso di dubbi proteggi le stringhe con le virgolette!) zypper se -r packman # elenca tutti i pacchetti dal repository packman zypper se -i sqlite # mostra tutti i pacchetti installati i cui nomi contengolo la parola 'sqlite' zypper se -t pattern -r repo-oss # elenca tutti i modelli (''pattern'') disponibili nel repository 'repo-oss' zypper se -t product # elenca tutti i prodotti disponibili
Ottenere informazioni sui pacchetti
info o if
Loading repository data... Reading installed packages... Information for package amarok: Repository: packman Name: amarok Version: 2.6.0-7.3 Arch: x86_64 Vendor: http://packman.links2linux.de Installed: Yes Status: out-of-date (version 2.6.0-6.9 installed) Installed Size: 31.0 MiB Summary: Media Player for KDE Description: Amarok is a media player for all kinds of media. This includes MP3, Ogg Vorbis, audio CDs, podcasts and streams. Play lists can be stored in .m3u or .pls files.
Questo comando visualizza informazioni dettagliate sul pacchetto che si chiama '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 modello (''pattern'') 'lamp_server' zypper info -t product openSUSE-FTP # mostra informazioni sul prodotto specificato
Dipendenze
what-provides o wp
Per elencare tutti fornitori di una specificata capacità (funzionalità di pacchetto, nella versione inglese capabilty), usa:
Loading repository data... Reading installed packages... S | Name | Type | Version | Arch | Repository --+----------------+---------+---------------+--------+--------------------- i | MozillaFirefox | package | 15.0.1-2.11.1 | x86_64 | openSUSE-12.2-Update v | MozillaFirefox | package | 15.0-2.7.1 | x86_64 | openSUSE-12.2-Update v | MozillaFirefox | package | 14.0.1-2.4.1 | x86_64 | openSUSE-12.2-Oss v | MozillaFirefox | package | 15.0.1-2.11.1 | i586 | openSUSE-12.2-Update v | MozillaFirefox | package | 15.0-2.7.1 | i586 | openSUSE-12.2-Update v | MozillaFirefox | package | 14.0.1-2.4.1 | i586 | openSUSE-12.2-Oss
Questo comando è simile a rpm -q --whatprovides firefox, ma rpm è solo in grado di interrogare il database RPM (il database dei pacchetti installati). Zypper, al contrario, ti informerà dei fornitori che rendono disponibile quella capacità da ogni repository, non solo da 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 del corrispondente tipo di pacchetto. Per esempio patches mostra anche lo 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 ha lo scopo di prevenire cambiamenti ai pacchetti nel sistema. Ai pacchetti cui si applica un blocco attivo non è possibile cambiare il proprio stato di installazione; 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, usa:
Reading installed packages... Specified lock has been successfully added.
Di nuovo, fai attenzione all'espansione di shell, usa le virgolette se c'è la possibilità che a yast* corrispondano qualche file o directory nella directory di lavoro.
Per elencare i blocchi correntementi attivi:
# | Name | Type | Repository ---+-------------------------------+---------+----------- 1 | PackageKit-gstreamer-plugin | package | (any) 2 | PackageKit-backend-zypp | package | (any) 3 | PackageKit-branding-openSUSE | package | (any) 4 | apper | package | (any) 5 | PackageKit-browser-plugin | package | (any) 6 | libpackagekit-glib2-14 | package | (any) 7 | PackageKit-gtk3-module | package | (any) 8 | libpackagekit-qt2-2 | package | (any) 9 | pk-update-icon | package | (any) 10 | libpackagekit-qt2-2-32bit | package | (any) 11 | libpackagekit-qt2-devel-32bit | package | (any) 12 | gnome-packagekit | package | (any) 13 | libpackagekit-qt2-devel | package | (any) 14 | PackageKit | package | (any)
To remove a lock, do:
1 lock has been successfully removed.
Altri esempi:
zypper al zypper # blocca il pacchetto 'zypper' (corrispondenza esatta) zypper al -r repo-oss virtualbox* # limita il blocco al repository 'repo-oss' (consente l'installazione da altri repo) zypper rl 3 # rimuove il blocco in base al numero
Puoi agire sui blocchi modificando direttamente il file dei blocchi.
Utilità
Verificare le dipendenze
verify o ve
Occasionalmente può succedere di ritrovarsi con il sistema che presenti dei problemi per quanto concerne le dipendenze dei pacchetti. Se qualcuna delle tue applicazioni fallisce l'avvio con un messaggio che indica la mancanza di qualcosa, questo è allora un problema da verificare con zypper:
Could not find compatible GRE between version 1.9.0 and 1.9.0.
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 che hai già installato. Questo fornisce un modo semplice per ottenere nuovi pacchetti di traduzione per il proprio software o driver per l'hardware recentemente aggiunto.
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]:
Controllo dei processi
ps
Questo comando mostra i processi che stanno usando i file eliminati dall'aggiornamento recente dei pacchetti, o dalla loro rimozione recente di questi.
There are some running programs that use files deleted by recent upgrade. You may wish to restart some of them. Run 'zypper ps' to list these programs.
The following running processes use deleted files: PID | PPID | UID | Login | Command | Service | Files ------+------+------+---------+-------------------------------+---------+----------------------------- 1 | 0 | 0 | root | systemd | | /lib64/libudev.so.0.13.1 759 | 1 | 0 | root | systemd-logind | | /lib64/libudev.so.0.13.1 1827 | 1696 | 0 | root | Xorg | | /lib64/libudev.so.0.13.1 You may wish to restart these processes. See 'man zypper' for information about the meaning of values in the above table.
Gestione aggiornamenti
Ci sono due approcci per mantenere il sistema sempre aggiornato. Il primo è basato su patch, il secondo basato su pacchetti.
L'approccio basato su patch è particolarmente utile per le persone che usano il rilascio stabile e vogliono aggiornare i loro sistemi con le patch rilasciate attraverso i repository di aggiornamento online. I repository di aggiornamento vengono aggiunti durante l'installazione o l'aggiornamento del sistema, oppure possono essere aggiunti attraverso la Configurazione Aggiornamenti in linea dalla scheda Gestione pacchetti nel Centro di controllo di YaST, o manualmente usando zypper. Qui è disponibile l'elenco dei repository di aggiornamento di openSUSE disponibili.
La funzione di YaST equivalente è data dal modulo Aggiornamenti in linea.
Il secondo tipo, quello basato su pacchetti, è descritto nella sezione Aggiornamento pacchetti ed è usato per l'aggiornamento globale dei pacchetti forniti da ogni repository, alle loro versioni recenti.
Elencare le patch necessarie
list-patches o lp
Per elencare tutte le patch necessarie, usa:
Loading repository data... Reading installed packages... Repository | Name | Version | Category | Status | Summary ---------------------+-------------------+---------+-------------+--------+--------------------------------------------------------------------- openSUSE-12.2-Update | openSUSE-2012-651 | 1 | recommended | needed | udev: create /dev/root symlink with dynamic rule for systemd openSUSE-12.2-Update | openSUSE-2012-655 | 1 | recommended | needed | clamav: update to version 0.97.6 openSUSE-12.2-Update | openSUSE-2012-657 | 1 | recommended | needed | NetworkManager: Several Bug fixes openSUSE-12.2-Update | openSUSE-2012-659 | 1 | recommended | needed | timezone: update to 2012f openSUSE-12.2-Update | openSUSE-2012-660 | 1 | security | needed | security update for tor openSUSE-12.2-Update | openSUSE-2012-662 | 1 | recommended | needed | coreutils: re-enable multithreaded sort(1) if OMP_NUM_THREADS is set openSUSE-12.2-Update | openSUSE-2012-663 | 1 | recommended | needed | suspend: Fixed double suspend issue openSUSE-12.2-Update | openSUSE-2012-665 | 1 | recommended | needed | mdadm update for openSUSE 12.2 openSUSE-12.2-Update | openSUSE-2012-666 | 1 | recommended | needed | module-init-tools: Fix modprobe when /usr/local is managed by AutoFS
A volte sono elencati solo gli aggiornamenti che riguardano il sistema di gestione dei pacchetti, in quanto questi devono essere applicati per primi. 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 di pacchetto disponibili, usa:
Applicare le patch
patch
Per applicare le patch necessarie, usa:
Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW patches are going to be installed: openSUSE-2012-651 openSUSE-2012-655 openSUSE-2012-657 openSUSE-2012-659 openSUSE-2012-660 openSUSE-2012-662 openSUSE-2012-663 openSUSE-2012-665 openSUSE-2012-666 The following packages are going to be upgraded: NetworkManager NetworkManager-devel clamav coreutils libgudev-1_0-0 libnm-glib-vpn1 libnm-glib4 libnm-util2 libudev-devel libudev0 mdadm module-init-tools suspend timezone timezone-java tor typelib-1_0-NMClient-1_0 typelib-1_0-NetworkManager-1_0 udev 19 packages to upgrade. Overall download size: 9.2 MiB. After the operation, additional 4.3 KiB will be used. Continue? [y/n/?] (y):
Elencare tutte le patch
patches
Il comando list-updates elenca solo le patch necessarie. Per elencare tutte le patch disponibili, usa:
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 riporterà se ci sono importanti patch disponibili per il sistema e il numero di tali patch:
Loading repository data... Reading installed packages... 9 patches needed (1 security patch)
Ottenere informazioni sulle Patch
patch-info
info -t patch
Loading repository data... Reading installed packages... Information for patch openSUSE-2012-651: Name: openSUSE-2012-651 Version: 1 Arch: noarch Vendor: maint-coord@suse.de Status: Installed Category: recommended Created On: Wed Sep 19 14:03:20 2012 Reboot Required: No Package Manager Restart Required: No Interactive: No Summary: udev: create /dev/root symlink with dynamic rule for systemd Description: This update fixes the following issue for udev: - bnc#776882: create /dev/root symlink with dynamic rule for systemd Provides: patch:openSUSE-2012-651 == 1 Conflicts: libgudev-1_0-0.i586 < 182-4.17.1 libgudev-1_0-0-32bit.x86_64 < 182-4.17.1 libgudev-1_0-0-debuginfo.i586 < 182-4.17.1 libgudev-1_0-0-debuginfo-32bit.x86_64 < 182-4.17.1 libgudev-1_0-devel.i586 < 182-4.17.1 libudev-devel.i586 < 182-4.17.1 libudev0.i586 < 182-4.17.1 libudev0-32bit.x86_64 < 182-4.17.1 libudev0-debuginfo.i586 < 182-4.17.1 libudev0-debuginfo-32bit.x86_64 < 182-4.17.1 typelib-1_0-GUdev-1_0.i586 < 182-4.17.1 udev.i586 < 182-4.17.1 srcpackage:udev < 182-4.17.1 udev-debuginfo.i586 < 182-4.17.1 udev-debugsource.i586 < 182-4.17.1 libgudev-1_0-0.x86_64 < 182-4.17.1 libgudev-1_0-0-debuginfo.x86_64 < 182-4.17.1 libgudev-1_0-devel.x86_64 < 182-4.17.1 libudev-devel.x86_64 < 182-4.17.1 libudev0.x86_64 < 182-4.17.1 libudev0-debuginfo.x86_64 < 182-4.17.1 typelib-1_0-GUdev-1_0.x86_64 < 182-4.17.1 udev.x86_64 < 182-4.17.1 udev-debuginfo.x86_64 < 182-4.17.1 udev-debugsource.x86_64 < 182-4.17.1
Aggiornamenti di pacchetto
list-updates or lu
update or up
Per aggiornare semplicemente i pacchetti installati con le loro versioni più recenti disponibili, eseguire:
Puoi ottenere l'elenco degli aggiornamenti disponibili con:
I comandi qui sopra elencheranno o aggiorneranno solo quei pacchetti i cui aggiornamenti non hanno problemi di dipendenze. Per ottenere l'elenco dei pacchetti con le versioni più recenti rispetto a quelli installati, esegui:
Questo elencherà tutti gli aggiornamenti candidati, indipendentemente dal fatto che siano installabili o meno, o che abbiano bisogno dell'intervento dell'utente per risolvere alcuni problemi.
Aggiornamento di distribuzione (Upgrade)
dist-upgrade or dup
Questo comando usa l'algoritmo di upgrade della distribuzione, che gestisce suddivisioni di pacchetti, pacchetti non mantenuti, e altre situazioni del genere. Usalo per passare ad un differente rilascio della distribuzione.
Durante un aggiornamento di distribuzione (dist-upgrade) si raccomanda 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). Puoi ottenere ciò disabilitando i vecchi repository con il comando zypper mr -da; aggiungere i nuovi repository per mezzo di 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 ...
.
Domanda: È vero che "zypper up" aggiorna i pacchetti solo quando una nuova versione è disponibile nello stesso repository del vecchio pacchetto e "zypper dup" aggiorna qualsiasi cosa, indipendentemente dal repository in cui si trovi il nuovo pacchetto?
Risposta: "zypper up" aggiorna il pacchetto se una nuova versione è disponibile ma non cambierà il fornitore (Nota: L'intero build service attualmente ha lo stesso fornitore). "zypper dup" cercherà di sincronizzare i pacchetti correntemente installati con quelli disponibili da tutti i repository che hai abilitato. Questo significa che effettuerà anche il downgrade dei pacchetti se la versione installata è più recente di quella disponibile nel repository.
Usare zypper in script e applicazioni
Zypper supporta diverse opzioni globali che lo rendono adatto per l'uso all'interno di processi automatizzati, come gli script. Inoltre, numerosi dei differenti codici di output, elencati nella pagina di manuale di zypper, possono essere controllati durante 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 si è certi che zypper non stallerà per chiedere una risposta dallo standard input, o in un loop infinito.
Per esempio, per aggiornare il tuo sistema automaticamente senza conferme, puoi digitare:
Questo comando non richiede la conferma da parte dell'utente per procedere con l'aggiornamento, salta tutte le patch interattive che avrebbero bisogno di ulteriori conferme e inoltre risponde automaticamente a tutte le altre richieste.
Modalità senza verifica GPG
--no-gpg-checks
Se viene usata questa opzione, zypper sceglierà sempre di continuare se qualche verifica gpg fallisce, per esempio un file di un repository non è firmato e dovrebbe esserlo, un file è firmato e il controllo gpg fallisce, ecc.
Accetta automaticamente le 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 per quanto il comando installerà, e zypper risponderà automaticamente 'sì' alla richiesta di conferma della licenza. Questa opzione è utile per coloro che installano lo stesso insieme di pacchetti su più macchine (con un procedimento automatico) e hanno precedentemente letto tutte le licenze.
Output silenzioso
--quiet
Evita la visualizzazione di eccessivo testo di output, come le 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 e ben definita. Lo schema RNC dell'output XML di zypper è disponibile qui e sotto /usr/share/zypper/xml/xmlout.rnc.
Non tutto, ma la maggior parte dell'output è attualmente disponibile in XML; l'obiettivo è di avere tutto l'output possibile in XML.
Richieste
Quello che segue mira ad essere l'elenco completo di casi in cui zypper necessita di interagire con l'utente, insieme alle risposte usate nella modalità non-interattiva. Tutte le opzioni aggiuntive menzionate qui hanno priorità più elevata rispetto a --non-interactive, quindi, se queste vengono usate, le risposte da esse implicate vengono usate automaticamente anche se non si fa uso di--non-interactive.
Richieste relative a GPG
Quando si applica l'opzione --no-gpg-checks, viene visualizzato un messaggio oppure viene scritto un avviso sullo standard error e nel file di log (registro).
richiesta | risposta predefinita | con --no-gpgp-checks | nota |
---|---|---|---|
accettare file non firmati? | N | S | |
accettare la nuova chiave (rifiutare la chiave, fidarsi temporaneamente, fidarsi definitivamente? [r/t/a]) | R | R | una nuova chiave può essere resa affidabile o importata solo in modalità interattiva |
accettare la chiave sconosciuta? | N | S | |
verifica del file firmato fallita, continuare? | N | S | |
nessun sommario disponibile per un file, continuare? | N | S | |
accettare il sommario sconosciuto? | N | S |
Altre richieste
richiesta | risposta predefinita | altra risposta | nota |
---|---|---|---|
procedere con l'installazione/rimozione/aggiornamento? | S | 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 | S se si utilizza --auto-agree-with-licenses | in aggiunta, per l'aggiornamento di zypper, l'opzione --skip-interactive può essere usata per escludere le patch interattive dall'elenco delle cose da installare (to-be-installed list, un'eredità di rug) |
confermare un messaggio di patch | S | ||
problema durante l'installazione/rimozione di un risolvibile, Interrompi/Riprova/Ignora? | INTERROMPI | è brutto e si può migliorare in futuro | |
problema durante lo scaricamento di un pacchetto, Interrompi/Riprova/Ignora? | INTERROMPI | è brutto e si può migliorare in futuro | |
conflitto di dipendenze, #/s/r/c (numero della soluzione, salta, riprova, o annulla) | c | annulla sempre, è richiesto l'intervento dell'utente per risolvere le dipendenze | |
richiesta di cambiare il supporto | INTERROMPI | ||
rimuovere il blocco problematico? | Y |
Nell'output in XML le richieste all'utente sono indicate dal tag <prompt>, contenente l'attributo id. L'enumerazione di tutti gli id noti è disponibile nel file di include prompt.h, impacchettato con zypper (/usr/include/zypper/prompt.h).
Compatibilità con Rug
La sintassi di Zypper è simile a quella di Rug ma il suo corredo di comandi e opzioni ha cominciato a diversificarsi da quello di rug, così come il suo output e il suo comportamento. Comunque, zypper è in grado di lavorare anche in modalità compatibilità con rug e supporta la maggior parte dei comandi di rug. Per maggiori dettagli si veda man zypper, nella sezione "COMPATIBILITY WITH RUG", dedicata alla compatibilità con rug.