web-dev-qa-db-ja.com

パターンとパッケージを同時にインストールする方法は?

パッケージパターン(「C/C++開発ツール」など)とパッケージ(「Mercurial」など)を同時にインストールする方法を教えてください。現在、2つのコマンドが必要です。たとえば、私がsketch-frontend用に記述したインストール手順は、

Sudo zypper install -t pattern "devel_C_C++" "devel_Java"
Sudo zypper install Java-1_6_0-openjdk-devel Mercurial

[ リンク ]。

(モチベーション)。確かに1つのコマンドで必要なコマンドは2つだけですが、インターネット接続が遅い(またはプロセッサが遅い)マシンでは、2番目のコマンドが自動的に続行されないのは面倒です。また、ユーザーdoesはパッケージ解決のプロンプトを表示する必要があるため、--non-interactiveフラグを追加するだけではオプションではありません。

ありがとう!

6
gatoatigrado

編集:解決可能なものに<resolveabletype>:を追加すると、1つのコマンドでさまざまなタイプを一致させることができます。

javaのzypper-1_6_0-openjdk-develMercurial + pattern:devel_C_C++ + pattern:devel_Java


ワンクリックインストールを作成すると、パッケージの解決を一度に行うことができますが、パターンを1つから呼び出すことができるかどうかはわかりません。 http://en.opensuse.org/openSUSE:One_Click_Install_ISV#Create_a_web_install_link 次に、oci /sbin/OCICLI /path/to/foobar.ympで呼び出すことができます。

6
llua

最も簡単なソリューション:

Sudo zypper install -t pattern "devel_C_C++" "devel_Java" && Sudo zypper install Java-1_6_0-openjdk-devel Mercurial

Sudoが5分後にタイムアウトすることが心配で、ユーザーがパスワードを2回入力する必要がない場合は、次のようにすることができます。

Sudo sh -c 'zypper install -t pattern "devel_C_C++" "devel_Java" && zypper install Java-1_6_0-openjdk-devel Mercurial'

更新

すべてをzypper installへの1回の呼び出しにしたかったようですが、さらにいくつかのアイデア:

  1. zypper searchまたはzypper listを2回実行し、パッケージ名を解析して出力を結合し、パッケージの完全なリストを使用してzipper installを1回実行します。
  2. zypper install --dry-runを実行して出力を印刷し、ユーザーに確認を求めます。次に、ユーザーが「はい」と答えた場合は、ドライランオプションなしでzypper installを実行します。
  3. カスタムパッケージディレクトリを使用してzypper install --download-onlyを2回実行してから、zypper install <that directory>/*.rpmを実行します( mktemp -dzypp.confおよびpackagesdirオプションを参照)
2
Mikel