Zypper/Usage/11.0

< Zypper‎ | UsageZypper/Usageから転送)
移動先: 案内, 検索
Geeko この記事は、 Libzypp ライブラリを使ったコマンドライン・パッケージ・マネージャであるZypper の使い方紹介を目的としています。この記事に含まれるのは Zypper のマニュアル・ページ(man zypper)の補完情報です。ここで見つけることができる情報はマニュアル・ページにも記載されているべきですし、逆にマニュアル・ページにある記述はこのページにも反映されているべきだと言えます。



Susemini.png
バージョン:
11.0
この記事は openSUSE 11.0 で採用された zypper 0.11.6 についてのものです。他のバージョンについてはZypper/Versionsを参照してください。


クイック・レファレンス


以下は、おそらくあなたが最も頻繁に使うであろう使用例です。

zypper                 # 使用可能なグローバルオプションとコマンドを表示します
zypper help search     # search コマンドのヘルプを表示します
zypper lu              # どんなアップデート・パッチが必要となっているかを見ることができます
zypper up              # アップデート・パッチを適用します
zypper se sqlite       # sqlite を検索します
zypper rm sqlite2      # sqlite2 をアンインストールします
zypper in sqlite3      # sqlite3 をインストールします
zypper in yast*        # 'yast*'にマッチする全てのパッケージをインストールします
zypper up -t package   # 可能なら、全てのインストール済みパッケージを新しいバージョンにアップグレードします

一般的な用法


zypper の一般的な構文は以下の通りです:

zypper [global-options] command [command-options] [arguments] ...

[ ]で囲まれた要素は必須ではありませんから、zypper を実行する最も単純な方法は zypper に続けてコマンドを指定するだけです。例えば、システムに必要なパッチを適用するには、以下のように打ち込みます。

zypper update

加えて、グローバル・オプションの中から一つもしくは複数を選択し、command の前に配置することができます(以下の例では、「私には何も質問しないで、自動で判断して command を実行しなさい」というグローバル・オプションが使われています)。

zypper --non-interactive update

ある特定の command に特化された option を使う場合は、command に続けて打ち込んでください(以下の例では、「ライセンスについては既に全て読んでいるので、いちいち確認を求めずに、システムに必要なパッチを適用してください」というオプションが使われています)。

zypper update --auto-agree-with-licenses

いくつかの command は一つもしくは複数の argument(引数)を必要とします(以下の例では、「mplayer パッケージのインストールもしくはアップデート」を指定しています)。

zypper install mplayer

いくつかの option も argument(引数)を必要とします(以下の例では、「システムを新しいパッケージでアップデートしなさい」と指定しています)。

zypper update -t package

上記は全て組み合わせることができます(以下の例では、「mplayer と amarokを、factory リポジトリのみを使って、詳細を表示しつつインストールしなさい」と指定しています)。

zypper -v install --repo factory mplayer amarok 


語彙


  • repository(リポジトリ) - パッケージと様々なパッケージ情報(パッケージ・メタデータ)が配置されたローカルもしくはリモートのディレクトリ。リポジトリはこれまでインストール・ソースサービスあるいはカタログと呼ばれていたものです。
  • alias(別名、エイリアス) - リポジトリのエイリアスとは、removerepo あるいは --repoといったリポジトリを扱う扱うコマンドやオプションで用いられる、リポジトリ名を短く呼んだものです。
  • package(パッケージ) - ソフトウェア・パッケージ(RPM パッケージ、ソース・パッケージ)。通常、パッチ、パターン、プロダクトも異なるタイプのパッケージとして扱われます。
  • patch(パッチ) - (多くの場合、バグ・フィックス)アップデートをインストールするために必要となるパッケージまたはパッケージのグループのことです。
  • pattern(パターン) - パッケージのグループのことです。例えばHttp サーバというパターンは、依存関係が明確化されていて、このパターンをインストールすることにより http サーバを起動し、管理するのに必要となる全てのパッケージが自動的にインストールされます。
  • product(製品、プロダクト) - 製品全体のことです(例: 'openSUSE 10.3')。


コマンド


zypper には多くのコマンドが用意されていますが、それらは以下のようなカテゴリにグループ分けすることができます。

  • リポジトリ管理
    refresh、repos、addrepo、removerepo、modifyrepo、namerepo
  • パッケージ管理
    install、remove、update、dist-upgrade、source-install
  • クエリー
    search、info、what-provides、list-updates、patch-check、patches、packages、patterns、products
  • ロック
    locks、addlock、removelock
  • ユーティリティ
    verify、install-new-recommends
  • その他
    help

加えて、 updatelist-updatespatch-check、そして patches といったコマンドについてはアップデート管理コマンドで参照できます。


ヘルプの表示

まず最初に、どうやってヘルプが手に入るか知っておくのは良いことです。一般的なヘルプ(コマンドとグローバル・オプションのリスト)を表示するには、オプションも引数も付けずに、単に zypper と打ち込んでください。特定のコマンドに対するヘルプを表示する場合は、以下のようにします。

# zypper help [command]

zypper -h [command] 及び zypper [command] -h といった簡略化された構文も使用することができます。


リポジトリ管理

登録済みリポジトリをzypper lrでリスト表示されるナンバー、エイリアス、URL で特定することができます。もしナンバーを使うなら、リポジトリに対して何らかの変更を加えた後ナンバーが変わってしまっている可能性がありますので、毎回まず最初に zypper lr を実行してナンバーを確認してください。


設定されたリポジトリをリスト表示する

repos

結果表示例:

$ zypper lr
# | Alias                 | Name                  | Enabled | Refresh
--+-----------------------+-----------------------+---------+--------
1 | packman               | Packman 11.0          | Yes     | No
2 | fate                  | fate                  | No      | No
3 | openSUSE-11.0-Updates | Updates for 11.0      | Yes     | Yes
4 | repo-oss              | openSUSE-11.0-Oss     | Yes     | No
5 | repo-non-oss          | openSUSE-11.0-Non-Oss | Yes     | No
6 | repo-debug            | openSUSE-11.0-Debug   | No      | No

その他の例:

zypper lr -u       # リポジトリの URI もテーブルに含める
zypper lr -d       # いくつかの他のリポジトリの詳細についてもテーブルに含める
zypper lr -P       # リポジトリの優先順位も含め、その順にソートしてリスト表示する
zypper lr -e my    # 'my.repo'という名前のファイルに全てのリポジトリ設定をエクスポートする

リポジトリの追加

addrepo

何かパッケージをインストールする前に、少なくとも一つはリポジトリが設定されていなければなりません。リポジトリを追加するには addrepo コマンドを使います。

結果表示例:

$ zypper ar http://download.videolan.org/pub/vlc/SuSE/11.0 vlc
Adding repository 'vlc' [done]
Repository 'vlc' successfully added
Enabled: Yes
Autorefresh: No
URI: http://download.videolan.org/pub/vlc/SuSE/11.0

その他の例:

zypper ar http://download.opensuse.org/repositories/X11:/XGL/openSUSE_11.0/X11:XGL.repo  # .repo ファイルを使って
zypper ar -c ftp://some.download.site myalias   # 追加にあたってリポジトリを調査
zypper ar my/dir/with/rpms local                # rpm ファイルが置かれているローカルディレクトリをリポジトリとして追加

サポートされているメディアのタイプと URI については Libzypp/URI を参照してください。


リポジトリの更新

refresh

リポジトリの追加後またはリポジトリが古くなってしまった場合などは、更新する必要があります。これによってそのリポジトリからパッケージのメタデータをダウンロードし、素早い読み込みのための予備的処理としてデータを .solv のキャッシュに保存します。

$ zypper refresh
Downloading repository 'Packman 11.0' metadata [done]
Building repository 'Packman 11.0' cache [done]
Downloading repository 'Updates for 11.0' metadata [done]
Building repository 'Updates for 11.0' cache [done]
Repository 'openSUSE-11.0-Oss' is up to date.
All repositories have been refreshed.

もしリポジトリに対する autorefresh が有効になっているなら、必要に応じて自動的に更新されますので、気にする必要はありません。とはいえ、更新の実行をコントロールしたい場合(例えば、単に 'zypper info krusader' の結果を見たいだけの時に、全ての更新の完了を待つのを避けたい場合など)もあるでしょうから、自動更新を無効化することもできます。詳しくは man zypper を参照してください。

その他の例:

zypper ref packman main  # どのリポジトリを更新するか指定することもできます
zypper ref -f upd        # 'upd' リポジトリを強制的に更新します


リポジトリの削除

removerepo

$ 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.


リポジトリの修正

modifyrepo

ナンバーが 6 のリポジトリを無効化する:

$ zypper mr -d 6
Repository 'repo-non-oss' has been sucessfully disabled.

自動更新と 'packman' リポジトリにある rpm ファイルのキャッシュを有効化し、その優先度を 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.

全てのリポジトリで RPM ファイルのキャッシュを無効化する:

$ 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'.

全てのリポジトリで RPM ファイルのキャッシュを有効化する:

$ 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.0-Updates'.

リポジトリの名前を変更する

namerepo

$ zypper nr 3 upd
Repository 'openSUSE-11.0-Updates' renamed to 'upd'.

このコマンドで変更できるのは、現状では単にリポジトリのエイリアスだけです。もしリポジトリの表示名を変更したいなら、 mr コマンドの項を参照してください。

エイリアスは短くシンプルにして、コマンドや --repo オプションの引数に指定するとき簡単に使えるようにしましょう。リポジトリを指定する場合、ナンバーで指定するよりエイリアスで指定する方が安全ですし(ナンバーは変わってしまうこともあり、間違ってしてしまいやすいため)、URI で指定するより簡単です(URI は長く、コピー & ペーストする必要があるため)。


リポジトリのエクスポート/インポート

repos -e

完全なリポジトリのリストをファイルにエクスポートしたり、そのファイルから別のマシンにインポートすることもできます。

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

パッケージ管理

パッケージのインストール

install

名前または提供される機能を指定して、パッケージをインストールすることができます。

$ 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]

...提供される機能を指定した場合。

$ 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.

その他の例:

zypper in yast*                     # 全ての yast モジュールをインストール
zypper in -t pattern lamp_server    # lamp_server のパターン(LAMP サーバのために必要とされる複数のパッケージ)をインストール
zypper in vim -emacs                # vim のインストールと emacs の削除をいっぺんに指定
zypper in amarok packman:libxine1   # libxine1 を packman から、amarok をリポジトリを指定せずにインストール
zypper in bitchx-1.1-81.x86_64.rpm  # ローカルディレクトリから bitchx rpm をインストール
zypper in -f subversion             # 強制的に subversion を再インストール


パッケージの削除

remove

remove コマンドの使い方は、その効果が逆になることを除いて、install コマンドの使い方と非常によく似ています。 :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


ソースパッケージとビルド依存関係

source-install

$ 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]:

ビルド依存関係もしくはソースパッケージのみを指定してインストールすることも可能です。

zypper in -D zypper    # ソースパッケージのみ (ビルド依存関係は除く)
zypper in -d zypper    # ビルド依存関係のみ (ソースパッケージは除く)


パッケージのアップデート

update -t package
dist-upgrade

以下は、パッケージを更新可能なバージョンへアップデートする場合の例です。この他のタイプのアップデートについてはアップデート管理の項も参照してください。

zypper dup     # ディストリビューションのアップグレードアルゴリズムを使う(パッケージの分割や、メンテナンス終了などを考慮する)
zypper up -t package                # 可能な限り全てのインストール済みパッケージを新しいバージョンにアップデートする
zypper up -t package libzypp zypper # libzypp と zypper をアップデート
zypper in libzypp sqlite3           # sqlite3 をアップデートするか、インストールされていないようならインストールする


クエリー

パッケージの検索

search

既定では、search コマンドはタイプ、ステータスあるいはリポジトリのいずれかに指定した文字列を含む名前がないかを探します(大文字小文字は区別されません)。

$ 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

最初の列にあるi は、そのパッケージが既にインストールされていることを示しています。該当するパッケージの全ての可能なバージョンを見るためには --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 (OBS, openSUSE 11.0)
i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.0-Oss
v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE (OBS, openSUSE 11.0)
v | virtualbox-ose | package | 1.6.2-2.1  | i586   | VirtualBox OSE (OBS, openSUSE 11.0)
v | virtualbox-ose | package | 1.5.6-33.1 | i586   | openSUSE-11.0-Oss
v | virtualbox-ose | package | 1.5.6-20.3 | i586   | VirtualBox OSE (OBS, openSUSE 11.0)

iこのバージョンがインストールされていることを、v現在は異なるバージョンがインストールされていることを示しています。

その他の例:

zypper se -dC --match-words RSI   # サマリ及び記述内も含め、RSI という頭字語を探す(大文字、小文字を区別)
zypper se 'yast*'                 # 'yast' から始まる全てのパッケージを表示(シェル拡張に注意してください。もし不確かなら、文字列を' 'で囲んでください)
zypper se -r packman              # 'packman' リポジトリにある全てのパッケージをリスト表示
zypper se -i sqlite               # 名前に 'sqlite' を含むインストール済みのパッケージを全て表示
zypper se -t pattern -r repo-oss  # 'repo-oss' リポジトリ内にある全ての可能なパターンをリスト表示
zypper se -t product              # 全ての可能な製品をリスト表示


パッケージに関する情報を取得する

info

$ zypper info amarok
Reading installed packages...


Information for package amarok:

Repository: Packman 11.0
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.

このコマンドは、'amarok' という名前のパッケージについての詳細情報を表示します。

その他の例:

zypper info -t patch MozillaFirefox    # MozillaFirefox' のパッチについての情報を表示
zypper patch-info MozillaFirefox       # 同上
zypper info -t pattern lamp_server     # 'lamp_server' パターンに関する情報を表示
zypper info -t product openSUSE-FTP    # 指定した製品に関する情報を表示


依存関係

what-provides

特定の機能について全ての供給元をリスト表示するには、以下を実行してください。

$ zypper wp firefox
Reading installed packages...
S | Name           | Type    | Version     | Arch   | Repository
--+----------------+---------+-------------+--------+------------------
i | MozillaFirefox | package | 3.0-0.1     | x86_64 | Updates for 11.0
v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.0-Oss
v | MozillaFirefox | package | 3.0-0.1     | i586   | Updates for 11.0
v | MozillaFirefox | package | 2.9.95-25.1 | i586   | openSUSE-11.0-Oss

このコマンドは rpm -q --whatprovides firefox と同じものとして使えますが、rpm では RPM のデータベース(インストール済みパッケージのデータベース)をクエリーすることしかできません。一方、Zypper を使えば、インストール済みのものだけでなく、同じ機能を供給するリポジトリにある情報も知ることができます。


その他のクエリー

patchespackagespatterns、及び products コマンドは、対応するパッケージタイプに特化されたいくつかの追加情報を表示することを除いて search -s -t [patch,package,pattern,product] と同じ意味になります。例えば、patches はパッチの(Needed/Security/Not Applicable)というステータスも合わせて表示します。

list-updatespatch-check コマンドについてはアップデート管理で議論されています。


パッケージのロック

locks
addlock
removelock

パッケージのロックが必要となるのは、システム上のパッケージが変更されないようにしておきたい場合です。ロックがかかっているパッケージについては、インストール状態が変更されることはありません。つまり、インストールされているものが削除されたりアップグレードされたりすることはありませんし、まだインストールされていないパッケージならば勝手にインストールされてしまうこともありません。

'yast2' から始まる全てのパッケージにロックをかけるには、以下を実行します。

$ zypper al 'yast2*'
Reading installed packages...
Specified lock has been successfully added.

ここでも、シェル拡張に注意し、yast* がワーキングディレクトリ内のファイルやディレクトリにマッチする可能性がある場合は ' ' で囲んでください。

現在かかっているロックをリスト表示するには:

$ zypper ll
# | Name             | Type    | Repository
--+------------------+---------+-----------
1 | libpoppler3      | package | (any)
2 | libpoppler-glib3 | package | (any)
3 | yast*            | package | (any)

ロックを解除するには、以下を実行します:

$ 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

その他の例:

zypper al zypper                   # 'zypper' パッケージにロックをかける(完全に一致したもののみ)
zypper al -r repo-oss virtualbox*  # ロックをかけて 'repo-oss' リポジトリを禁止する(その他のリポジトリからのインストールは許可)
zypper rl 3                        # ナンバーを指定してロックを解除

なお、ロックファイルを直接編集することで、ロック状態を操作することも可能です。


ユーティリティー

依存関係の確認

verify

時として、パッケージ依存関係がもつれてシステムがおかしくなってしまうことがあるかもしれません。何かが見つからないという内容のメッセージが表示されてお使いのアプリケーションが起動できなくなってしまったりしたら、その時は 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


新規推奨パッケージのインストール

install-new-recommends

このコマンドは、あなたが既にインストールしているパッケージに対する推奨パッケージが新規に追加されていないか探し出し、インストールするためのものです。これによってお使いのソフトウェア、新しく追加したハードウェア用のドライバのための新しい言語バンドルなどの入手が簡単になります。

$ 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]:


アップデート管理

以下は、安定版を使っていて、オンライン・アップデート・リポジトリを通じてリリースされたパッチでシステムをアップデートしたいと考える人たちにとっては特に役に立ちます(パッケージのアップデートについてはパッケージのアップデートをご覧ください)。既定では、アップデートリポジトリはインストールもしくはシステムのアップグレードの過程で追加されますし、YaST コントロールセンターのソフトウェアタブにあるオンラインアップデートの設定から、あるいはzypperを使って手動で追加することもできます。使用可能な openSUSE のアップデートリポジトリのリストをご覧ください。

YaST 内でこの機能に相当するのは オンライン・アップデートモジュールです。


アップデートのリスト表示

list-updates

必要とされる全てのアップデート・パッチをリスト表示するには、以下を実行します。

$ zypper lu
Reading installed packages...
Patches

Repository       | Name               | Version | Category    | Status
-----------------+--------------------+---------+-------------+-------
Updates for 11.0 | KDE4-fixes         | 38      | recommended | Needed
Updates for 11.0 | MozillaFirefox     | 50      | recommended | Needed
Updates for 11.0 | NetworkManager-kde | 49      | recommended | Needed

時としてパッケージマネジメントに関するアップデートのみがリスト表示される場合がありますが、これは、まずそれらが先に適用されるべきものだからです。それらを適用してしまえば、残りの可能なアップデートもこのコマンドでリスト表示することができるようになります。

このコマンドのデフォルトは -t patch となっています。全てのアップデート・パッケージをリスト表示するには、以下を実行します。

zypper lu -t package

アップデートの適用

update

必要とされるパッチを適用するには、以下を実行します。

$ zypper up
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]:


パッチのリスト表示

patches

list-updates コマンドは、必要とされるパッチのみをリスト表示します。使用可能なパッチをすべて表示するには、以下を実行します。

$ zypper patches
Reading installed packages...
Catalog          | Name               | Version | Category    | Status
-----------------+--------------------+---------+-------------+---------------
Updates for 11.0 | KDE4-fixes         | 38      | recommended | Installed
Updates for 11.0 | MozillaFirefox     | 50      | recommended | Installed
Updates for 11.0 | NetworkManager-kde | 49      | recommended | Installed
Updates for 11.0 | autoyast2          | 37      | recommended | Installed
Updates for 11.0 | courier-authlib    | 42      | security    | Not Applicable
Updates for 11.0 | insserv            | 47      | recommended | Installed
Updates for 11.0 | opera              | 43      | security    | Installed


パッチのチェック

patch-check

このコマンドで、お使いのシステムに対する適用できる重要なパッチがあるか否か、またその数について調べることができます。

$ zypper pchk
Reading installed packages...
0 patches needed (0 security patches)


パッチに関する情報の取得

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.


Zypper をスクリプトあるいはアプリケーション内で使用するには


Zypper は、スクリプトのような自動実行されるプロセス内で使い易いように、いくつかのグローバルオプションをサポートしています。更に、zypper のマニュアル・ページにリストアップされているいくつかの異なる停止コードを使うことで、自動実行されるプロセス内で zypper を使う際にいろいろなチェックをすることができるようになります。


非対話モード

--non-interactive

このモードを使うと、zypper はユーザからの回答を求めず、既定の答えを使って処理を進めます。このオプションを使った際は、標準入力からの回答入力待ち、あるいはエンドレスなループによって zypper がハングすることはなくなります。

例えば、確認なしで自動的にお使いのシステムをアップデートしたい場合などは、以下のようにしてください。

# zypper --non-interactive update

このコマンドを使えば、アップデートを進めるにあたってユーザからの確認を求められることがなくなりますし、追加確認が必要な全ての対話的パッチの摘要にあたり確認を省略したり、その他あらゆるプロンプトに対して自動的に答えることができます。


GPG チェック無効モード

--no-gpg-checks

このオプションを使うと、例えばリポジトリのファイルが署名されているべきなのに署名されていない、ファイルは署名されているがチェックに失敗したなど、仮になんらかの gpg チェックに失敗しても、zypper は常に継続を選択します。


ライセンスに対する自動承諾

--auto-agree-with-licenses

これは、インストール、削除及びアップデートのコマンド用の特別なオプションです。これを使うことにより、インストールにあたってユーザがライセンス条項に対する明示的な同意を求められた際、zypper はライセンス確認プロンプトに対して自動的に 'yes' と回答します。これは、同じパッケージのセットを複数のマシンに(自動化して)インストールしようと考え、既にライセンス条項には全て目を通しているような人たちには便利なものです。


出力させない

--quiet

進行状況など冗長なテキストは表示させず、操作の結果とエラーメッセージのみ表示させたいときに使います。


XML 出力

--xmlout

このオプションを指定すると、zypper は XML による出力を行います。これにより、zypper を使おうとしているスクリプト、グラフィカルなフロントエンドやその他のアプリケーションに zypper からの出力を整理された、標準的な形で渡すことができるようになります。zypper の XML 出力についての RNC スキーマについてはこちら/usr/share/zypper/xml/xmlout.rnc から参照が可能です。

現時点ではまだすべての出力を XML 化できるわけではありません(ほとんどは可能です)が、全てを XML で出力できるようにすることを目標としています。


プロンプト

以下は、zypper がユーザからの対話的回答を求める際に、非対話モードで用いられるケースの完全リストです。ここで記述されている全ての追加オプションは、非対話モードを通じて高い優先度を持つもので、使われる際は、非対話モードが使われていない場合であっても同じ意味を含む回答が自動的に使われます。

GPG に関連したプロンプト

--no-gpg-checks が適用されている場合、メッセージが表示されるか、warning が標準エラー出力またはログに書き込まれます。

プロンプト 既定の回答 --no-gpgp-checks の有無 付記
accept unsigned file?(未署名のファイルを認めるか) N Y
import key into keyring?(キーリングへ鍵をインポートするか) N N 新しい鍵は対話的モードでのみインポートすることができます
accept unknown key?(未知の鍵を認めるか) N Y
trust key?(鍵を信頼するか) N Y
verification of signed file failed, continue?(署名済みファイルの検証に失敗したが、そのまま続けるか) N Y
no digest for a file, continue?(ファイルには要約がないが、そのまま続けるか) N Y
accept unknown digest?(未知の要約を認めるか) N Y


その他のプロンプト

プロンプト 既定の回答 その他の回答 付記
proceed with installation/removal/update?(インストール/削除/アップデートを続行するか) Y 更に、グローバルに --non-interactive を指定しないでも install/remove/update とともに --no-confirm オプションを使うこともできます
confirm 3rd party license(サード・パーティーのライセンスに同意する) N Y --auto-agree-with-licenses が使われている場合 更に、zypper update 用には --skip-interactive オプションを使ってインストールすべきリストから対話的なパッチをスキップすることができます(rug より受け継がれた機能)
confirm a patch message(パッチのメッセージに同意する) Y
problem while installing/removing a resolvable, Abort/Retry/Ignore?(インストール/削除の途中で問題発生 中断/再度試す/無視する?) ABORT これはあまり適切ではないので将来的には改良されるかもしれません
problem while downloading a package, Abort/Retry/Ignore?(ダウンロードの途中で問題発生 中断/再度試す/無視する?) ABORT これもあまり適切ではないので将来的には何らかの機能改善が行われるかもしれません
依存関係のコンフリクト(衝突) #/s/r/c (解決提案ナンバー、スキップ、再度試す、キャンセル) c 常にキャンセル 依存関係の解決にはユーザの判断が必要
media change request(メディア交換のリクエスト) ABORT
remove problematic lock?(問題を起こしているロックの解除) Y

XML 形式の出力では、プロンプトは <prompt> タグにより id 属性を伴って示されます。全ての既知の id の一覧表は prompt.h で見ることができ、zypper とともにパッケージされたインクルード・ファイルは (/usr/include/zypper/prompt.h) で参照できます。


Rug との互換性

zypper の構文は rug のものと似ていますが、コマンドとオプションのセットは出力と振る舞いのみならず rug に比べて多様化しています。しかし、zypper は rug 互換モードでも動かせ、ほとんどの rug のコマンドをサポートしています。詳細については man zypper の COMPATIBILITY WITH RUG セクションを参照してください。