web-dev-qa-db-ja.com

zypper、ローカルの〜/ binディレクトリにパッケージをインストールする方法

zypperを使用して~/binディレクトリにパッケージをインストールするにはどうすればよいですか?最初にパッケージをrootとしてダウンロードし、次に非rootとしてインストールしようとしましたが、そうすると依存関係の問題が発生します。

# zypper in --download-only wireshark
...
$ zypper -R /home/ec2-user/bin in /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLE11-SDK-SP3-Updates/rpm/x86_64/wireshark-1.10.11-0.2.1.x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libadns.so.1()(64bit) needed by wireshark-1.10.11-0.2.1.x86_64
 Solution 1: do not install wireshark-1.10.11-0.2.1.x86_64
 Solution 2: break wireshark-1.10.11-0.2.1.x86_64 by ignoring some of its dependencies

--prefixに似たzypperオプションはありますか?ところで、私はtsharkの分析関数だけが必要です。ありがとう。

2
Dinesh

簡単な答えはあなたがしないということです。 manページ、ヘルプセクション、またはWebサイトを読んだ後、方法が見つかりませんでした。

canすることは、rpmをダウンロードして、それを別のディレクトリにインストールすることです。

これは、次の方法で実行できるはずです。

zypper in --download-only wireshark
rpm --prefix=/home/ec2-user/ -ivh /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLE11-SDK-SP3-Updates/rpm/x86_64/wireshark-1.10.11-0.2.1.x86_64.rpm

理由を聞かないでください。これは、zypper自体の内部データベースとディストリビューションアップグレードの処理に関係していると思います。

2
SailorCire

マニュアルを参照すると、 zypper には--rootオプションがあります。

-R、-root 
別のルートディレクトリで動作します。このオプションは、repos.dディレクトリとメタデータキャッシュ
ディレクトリの場所に影響を与え
、実際のインストールを実行するために--rootオプション
を指定してrpmを実行します。パッケージの削除。 
 ZYppロックは、元のシステムでも一時ファイルとして
作成されていることに注意してください。ファイルセクションも参照してください。

これは、rpm--rootオプションを使用して実装されます。 thatマニュアルページ によると:

-rootDIRECTORY 
 
すべての操作にDIRECTORYをルートとするシステムを使用します。 
これは、データベースがDIRECTORY 
で読み取られるか変更され、%preまたは%postスクリプトレットがchroot(2)から
 DIRECTORYの後に実行されることを意味します。 

つまり、--rootはRPMデータベースの場所を変更しますが、パッケージがインストールされる場所には影響しません。

zypperにはパッケージの再配置に関する文書化されたサポートがないため、ダウンロードを検討してください。マニュアルに戻る:

-d、-download-only 
後でインストールするためにのみパッケージをダウンロードします。

そして

/var/cache/zypp/packages 
 keeppackagesプロパティがリポジトリに設定されている場合(modi-
 fyrepoコマンドを参照)、インストール中にすべてのRPMファイルがダウンロードされます
ここに保持されます。これらの
キャッシュディレクトリをクリーンアップするためのcleanコマンドも参照してください。

一部のパッケージは、--prefixオプションを尊重し、再配置可能にします。これらは、ルールというよりも例外です。ほとんどのパッケージは再配置可能ではありません。これがそれらの1つである場合は、 rpm2cpio を使用して、選択したディレクトリにファイルを解凍できます。

参考文献:

2
Thomas Dickey

zypperにはオプション--root <dir>があり、これは--prefixに対応します。それにもかかわらず、 SailorCireの答え も考慮してください

0
okurz