概要
この章では、ソフトウェア管理の2つのコマンドラインツールとして、ZypperとRPMについて説明します。
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 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![]() | システムに必須のパッケージは削除しないでください。 |
|---|---|
| |
zypperではデフォルトで、選択したパッケージのインストールまたは削除の前に確認が求められます。この動作は、--non-interactiveオプションを使用することで上書きされます。このオプションは、次のように実際のモード(インストール、削除、更新)の前に指定する必要があります
zypper--non-interactiveinstallpackage_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を使用してソフトウェアを更新するには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 addrepoURIAlias
URIは、インターネットリポジトリ(利用可能なリポジトリのリストについては、http://en.opensuse.org/Additional_YaST_Package_Repositoriesを参照)、ディレクトリ、CD、またはDVDです。エイリアスは、リポジトリの短い名前および一意のIDです。このIDは、固有であること以外は自由に選択できます。既に使用されているエイリアスを指定した場合、zypperでは警告が発行されます。
search、info、what-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 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を参照してください。