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
の分析関数だけが必要です。ありがとう。
簡単な答えはあなたがしないということです。 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自体の内部データベースとディストリビューションアップグレードの処理に関係していると思います。
マニュアルを参照すると、 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
を使用して、選択したディレクトリにファイルを解凍できます。
参考文献:
zypperにはオプション--root <dir>
があり、これは--prefix
に対応します。それにもかかわらず、 SailorCireの答え も考慮してください