4.1 Zypperの使用

Zypperは、パッケージのインストールおよび更新用の新しいコマンドラインツールです。zypperの構文はrugに類似しています。rugとは対照的に、zypperではzmdデーモンが背後で実行している必要はありません。rugの互換性の詳細は、man zypperCOMPATIBILITY WITH RUGの項を参照してください。 これは特に、リモートソフトウェア管理タスクの実行、またはシェルスクリプトからのソフトウェアの管理で役立ちます。

zypperには、次のヘルプの概要が組み込まれています。

zypper help

4.1.1 一般的な使用方法

zypperの一般的な構文は次のとおりです。

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

ブラケットで囲まれたコンポーネントは必須ではありません。zypperを実行する最も簡単な方法は、その名前の後にコマンドを入力することです。たとえば、システムタイプに必要なすべてのパッチを適用するには、次のようにします。

zypper patch

さらに、グローバルオプションをコマンドの直前に入力することによって、1つ以上のグローバルオプションから選択することができます。たとえば--non-interactiveを指定した場合、質問なしで、独自の指定によりコマンドを実行します。

zypper --non-interactive patch

特定のコマンドに固有のオプションを使用する場合は、コマンドの直後にそのオプションを入力します。たとえば--auto-agree-with-licensesは、ライセンスの確認を求めることなく、すべての必要なパッチをシステムに適用します。すべてのライセンスは事前に読み取られます。

zypper patch --auto-agree-with-licenses

一部のコマンドでは、1つ以上の引数が必要です。

zypper install mplayer

また一部のオプションでは、引数が必要です。以下は「既知のパターンをすべて一覧にする」を意味します。

zypper search -t pattern

上記のすべてを結合できます。たとえば、以下は、factoryリポジトリのみを使用してmplayeramarokパッケージをインストールし、バーボスの場合には、次のようになります。

zypper -v install --repo factory mplayer amarok

4.1.2 Zypperを使ったソフトウェアのインストールと削除

登録済みリポジトリからパッケージをインストールするには、次を使用します。

zypper install package_name

パッケージの特定のバージョンをインストールするには、以下を使用します。

zypper install package_name=version

zypperはまたワイルドカードをサポートします。たとえば、先頭にpackage_nameが付くすべてのパッケージをインストールするには、次を使用します。

zypper install package_name*

ローカルまたはリモートRPMを直接インストールすることも可能です。またZypperはすべてのパッケージpackage_nameを自動的にインストールします。次の条件によって異なります。

zypper install http://www.example.com/package_name.rpm

インストール済みパッケージを削除するには、次を使用します。

zypper remove package_name

1回の実行でパッケージをインストールおよび削除するには、+/-または~/!修飾子を使用します。修飾子:

zypper install emacs -vim

または:

zypper remove emacs +vim

また、指定する最初のパッケージで-を使用する場合は、コマンドオプションとして解釈されないように、その前に--を書き込む必要があります。

zypper install -- -vim emacs

警告: システムに必須のパッケージは削除しないでください。

glibczypperkernelなどのパッケージは削除しないでください。こうしたパッケージはシステムに必須であり、これらが欠落しているとシステムの処理が中断することがあります。

zypperではデフォルトで、選択したパッケージのインストールまたは削除の前に、あるいは問題が発生した際には、確認が求められます。この動作は、--non-interactiveオプションを使用することで上書きされます。このオプションは、次のように実際のコマンド(インストール、削除、パッチ)の前に指定する必要があります

zypper --non-interactive install package_name

このオプションによりスクリプトおよびcronジョブでzypperを使用できます。

パッケージの対応するソースパッケージをインストールする場合は、次を使用します。

zypper source-install package_name

このコマンドにより、指定したパッケージの構築依存もインストールされます。この処理が必要ない場合は、次のようにスイッチ--no-build-depsを追加します。

zypper source-install --no-build-deps package_name
  

もちろんこの機能は、リポジトリリストにソースパッケージが追加されたリポジトリが存在する場合にのみ動作します。zypper search -t srcpackageを入力してリポジトリで使用できるソースパッケージのリストを取得します。リポジトリの追加の詳細については、セクション 4.1.4, リポジトリの管理を参照してください。

インストール中にエラーが発生した場合、あるいは必要な場合にはいつでも、すべての依存関係がまだ満たされていることを確認します。

zypper verify

4.1.3 Zypperによるソフトウェアの更新

zypperを使用してソフトウェアを更新するには2つの異なる方法があります。正式にリリースされたすべてのパッチをシステムに統合するには、次をそのまま実行します。

zypper patch

この場合、リポジトリで利用可能なすべてのパッチが関連性についてチェックされ、必要に応じてインストールされます。SUSE Linux Enterpriseインストールを登録した後、このようなパッチを含む正式な更新リポジトリがシステムに追加されます。上記のコマンドを入力すれば、いつでも必要なときにこれらを適用できます。

リポジトリに新しいパッケージのみが存在し、パッチが提供されていない場合は、zypper patchは無効です。インストールされているパッケージをすべて新しく入手可能なバージョンで更新するには、次を使用します。

zypper update

個別のパッケージを更新するには、次の更新コマンドを引数とともに使用します。

zypper update package_name

またはインストールコマンドを選択します。

zypper install package_name

利用可能なすべての新しいパッケージのリストを次のコマンドで表示できます。

zypper list-updates

同様に、必要なパッチをすべて一覧にするには、以下を使用します。

zypper list-patches

4.1.4 リポジトリの管理

zypperのすべてのインストールまたはパッチのコマンドは、zypperで既知のリポジトリのリストに応じて異なります。システムで既知のすべてのリポジトリのリストを表示するには、次のコマンドを使用します。

zypper repos

結果は、次の出力のようになります。




# | Alias                             | Name                              | Enabled | Refresh
--+-----------------------------------+-----------------------------------+---------+--------
1 | SUSE-Linux-Enterprise-Server 11-0 | SUSE-Linux-Enterprise-Server 11-0 | Yes     | No
2 | SLES-11-Updates                   | SLES 11 Online Updates            | Yes     | Yes
3 | broadcomdrv                       | Broadcom Drivers                  | Yes     | No      

各種コマンドのリポジトリを指定するには、エイリアス、URI、またはリポジトリ番号をzypper reposコマンド出力から使用できます。ただし、リポジトリのリストを修正すると、番号が変更になる可能性があることに留意してください。エイリアスは変更されることはありません。

リストからリポジトリを削除する場合は、コマンドzypper removerepoを使用し、削除するリポジトリのエイリアスまたは番号を指定します。例からBroadcom Driversを削除するには、次のコマンドを使用します。

zypper removerepo 3

リポジトリを追加するには、次を実行します。

zypper addrepo URI Alias

URIは、インターネットリポジトリ、ディレクトリ、CD、またはDVDです。エイリアスは、リポジトリの短い名前および一意のIDです。このIDは、固有であること以外は自由に選択できます。既に使用されているエイリアスを指定した場合、zypperでは警告が発行されます。

リポジトリを処理しやすくするために、エイリアスは短く覚えやすいものにしておきます。リポジトリのエイリアスはrenamerepoを使用して変更できます。たとえば、例にある長いSUSE-Linux-Enterprise-Server 11-0を短く使いやすいmainに名前変更するには、以下を入力します。

zypper renamerepo 1 main

4.1.5 問い合わせ

searchinfowhat-providesなど、さまざまな問い合わせコマンドが利用可能です。

searchではパッケージ名、またはオプションでパッケージサマリと説明が対象となり、出力の最初の列にステータス(S)の情報が表示されます。

引数としてinfoとパッケージ名を指定した場合、パッケージに関する詳細情報が表示されます。

what-provides パッケージrpm -q --whatprovides パッケージに似ていますが、rpmではRPMデータベース(つまり、すべてのインストール済みパッケージのデータベース)のみを問い合わせることができます。それに対してZypperは、インストール済みのパッケージだけでなく、すべてのリポジトリから機能プロバイダに関する情報を表示します。

クエリコマンドおよび使用方法の詳細については、zypperマニュアルページ(man zypper)を参照してください。

4.1.6 詳細情報

コマンドラインからのソフトウェア管理の詳細については、zypper helpまたはzypper help commandと入力するか、zypper(8)のマニュアルページを参照してください。