web-dev-qa-db-ja.com

rootにならずにRPMをインストールするにはどうすればよいですか?

Root権限がないマシンにRPMをインストールするにはどうすればよいですか?個人用の作業ディレクトリにのみ使用するパッケージをインストールしたい。 SuSe SLES10を実行しています。

「このアイデアは馬鹿げている。すべての要求は企業の根の神を通過しなければならないので、彼が永遠に生きるように」という理由で私を非難しないでください。

私はこれを根の神に要求することができることを知っていますが、私は撃ち落とされます(完璧で完璧な理由で、私は確信しています...)。その上、彼はそれを行うと言っても、彼はそれをインストールすることを回避することは決してないでしょう。

53
Ross Rogers
cd my-dir;
rpm2cpio to-install.rpm | cpio -idv

RPMパッケージをインストールせずに抽出する方法(rpm extractコマンド) を参照してください。

60
harrymc

Rpmパッケージの内容を抽出する方法

export ins=foo-bar.rpm
rpm2cpio $ins | cpio -idv

抽出方法tar.gz アーカイブ

gzip -dc foo-bar.tar.gz | tar xvf –
cd foo-bar-dir

抽出方法tar.gz現在のディレクトリへのパッケージ

export file=foo-bar.tar.gz
# Note that `xovf` switch order *matters*
gzip -dc $file | tar -xovf -

非ルートとしてバイナリを構築する方法

./configure --prefix=$HOME && make && make install
4
Yordan Georgiev

別のオプションは、ソースからインストールすることです。この場合、通常は--prefixスイッチを使用してインストールディレクトリを変更できます。

1
John T

Root権限なしでのrpmの「インストール」に対する「本当の」答えは、できないだと思います。しかし、実際にインストールプロセスを開始できると想定しています...

RPMは、通常はファイルシステム階層に従う仕様ファイル(.spec)で提供される命令のリストを使用してインストールします。その階層のほとんどのパスは、ほとんど常にオペレーティングシステムのパスであり、ユーザーパスではありません。したがって、RPMがインストールするすべてのパスにユーザー名がアクセスできない限り、RPMは確実に失敗します。すべてのパスの前に/home/me(または所有している他のパス)を付けるRPMを作成すると、機能します。これには、他の回答で説明されているようにsrc.rpmを取得して抽出し、それを再構築する必要があります。そのときまでに、rootアクセスを取得するか、ソフトウェアを最初から構築することを検討するだけかもしれません(通常、多くのマシンにソフトウェアを配布する予定がない場合は、何をするか)。

手動ビルドプロセスで役立つ巧妙なトリックがあります。たとえば、RPMにすでにリストされている依存関係を利用して、すべての依存関係を取得できます: https://stackoverflow.com/a/13877738/1236128

0
Jonathan Komar