コマンドラインツールによるソフトウェアの管理

目次

4.1. Zypperの使用
4.2. RPM—パッケージマネージャ

概要

この章では、ソフトウェア管理の2つのコマンドラインツールとして、ZypperとRPMについて説明します。

Zypperの使用

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

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

zypper help

一般的な使用方法

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

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

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

zypper update

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

zypper --non-interactive update

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

zypper update --auto-agree-with-licenses

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

zypper install mplayer

また一部のオプションでは、引数が必要です。次は、新しいパッケージによりシステムを更新します。

zypper update -t package

上記のすべてをまとめると、factoryリポジトリのみを使用してインストールし、バーボスの場合には、次のようになります。

zypper -v install --repo factory mplayer amarok

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

zypper install emacs -vim

または:

zypper remove emacs +vim

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

zypper install -- -vim emacs

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

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

zypper install package_name

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

zypper install package_name*

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

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

依存関係を解決するには、--no-recommendsまたは--no-force-resolutionのいずれかを使用します。

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

zypper remove package_name
[Warning]システムに必須のパッケージは削除しないでください。

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
  

もちろんこの機能は、リポジトリリストにソースパッケージが追加されたリポジトリが存在する場合にのみ動作します。リポジトリの追加の詳細については、4.1.4項 「リポジトリの管理」を参照してください。

インストール済みのソフトウェアベースを変更後、すべての依存関係がまだ実現されているか確認します。

zypper verify

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

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

zypper update

この場合、リポジトリで利用可能なすべてのパッチが関連性についてチェックされ、必要に応じてインストールされます。

リポジトリに新しいパッケージのみが存在し、パッチが提供されていない場合は、zypper updateは無効です。こうしたパッケージをすべて更新するには、タイプpackageの更新をインストールするように指定する必要があります。

zypper update -t package

個別のパッケージを更新するには、次のインストールコマンドを使用します。

zypper install package_name

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

zypper list-updates -t package

リポジトリの管理

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

zypper repos

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

# | Enabled | Refresh | Type  | Alias             | Name
--+---------+---------+-------+-------------------+-------------------
1 | Yes     | Yes     | yast2 | openSUSE-DVD 11.0 | openSUSE-DVD 11.0
2 | Yes     | No      | yast2 | Main (OSS)        | Main (OSS)
3 | Yes     | No      | yast2 | Main (Non-OSS)    | Main (Non-OSS)

リストからリポジトリを削除する場合は、コマンドzypper renamerepoを使用し、削除するリポジトリのエイリアスを指定します。例からMain Repository (Non-OSS)を削除するには、次のコマンドを使用します。

zypper renamerepo Main Repository (Non-OSS)

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

zypper addrepo URI Alias

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

問い合わせ

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

searchではパッケージ名が対象となり、出力の最初の列にステータス(S)の情報が表示されます。

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

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

特にデバッグ目的のために、--plus-repo--disable-repositories--disable-system-resolvablesなどのスイッチが利用可能です。1つのリポジトリのみを検索する場合に、こうしたスイッチを使用します。使用方法の詳細については、zypperマニュアルページ(man zypper)を参照してください。

Zypperシェルの使用

複数の異なるzypperコマンドを順に実行することが必要な場合があります。各zypperコマンドですべてのデータベースを再読み込みしなくてすむように、zypperをシェルモードで実行することができます。

zypper shell

シェルが実行中の場合は、適切なパラメータとともにzypperコマンドを発行します。

zypper> in zsh
...
zypper> exit

すべての関連データがメモリ内に残るために、通常はzypperシェルを使用する方が高速です。

Zypperでは、readlineライブラリがサポートされます。これは、Bashシェルでも利用可能なZypperシェルの全コマンドライン編集機能を使用できることを意味します。Zypperでは、そのコマンド履歴がファイル~/.zypper_history内に維持されます。

詳細情報

コマンドラインからの更新の詳細については、zypper --helpと入力するか、 zypper(8)のマニュアルページを参照してください。例と詳細情報については、http://en.opensuse.org/Zypper/Usageを参照してください。