ルートなしのrpm


回答:


2

パッケージの内容に応じて、単純にrpm の内容抽出し、ホームディレクトリのどこかから使用できます。再配置可能としてフラグ付けされていなくても。パッケージ内のバイナリにハードコードされたパスがある場合、またはアプリケーションがルートアクセスを必要とする場合、それは不可能な場合があります。


1
これは実際には正しくありませんrpm。sudo/ rootアクセスなしでは実際にコマンドを実行できません。

8

再配置可能なパッケージを提案する多くの回答があります。再配置オプションは、管理者が宛先を選択するためのもので(たとえば、宛先を/ usr / localの代わりに/ optにする)、実際にはユーザーのアクセス許可用ではありません。

この方法を使用していくつかのアクセス許可の問題を回避することは可能かもしれませんが、主な問題は、rpm操作を実行すると、root:rootが所有する/var/lib/rpm/__db.*データベースを変更することです。したがって、JPerkSterが「短い答え=いいえ」と言ったように。特定のニーズを許可するようにsudoをセットアップすることがおそらく最善の策です。


8

上記のすべてを考慮して、再配置可能なビルドに関しては、ここにリストされている手順に従ってください

rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
 --relocate /usr=/home/username/local --nodeps -ivh package.rpm

3

RPM仕様には、「relocatable」というオプションが含まれています。再配置機能をオンにしてrpmをビルドした場合、「-prefix」オプションを使用してユーザー指定のディレクトリにインストールできます。したがって、次の2つの条件が満たされている限り、スーパーユーザーアクセスなしでローカルにrpmをインストールできます。

  1. パッケージはもともと再配置可能に構築されました
  2. 「rpm」バイナリは、パッケージをグローバルシステムカタログに追加しようとしません。

しかし、一般的にいや、RPMをインストールするにはスーパーユーザーのアクセスが必要です。再配置可能なオプションは存在しますが、それをサポートするためにビルドされたパッケージを見たことはほとんどありません。


3

一部のパッケージは再配置可能であるため、rootなしで正常に動作する場合があります。インストール時にプレフィックスを指定するだけです:rpm -i my.rpm --prefix = / my / home / folder

パッケージが再配置可能でない場合でも、RPMからファイルを抽出して実行を試みることができます。以下を使用して、RPMファイルを抽出できます。

〜/フォルダーにファイルをコピーし、追加の依存関係ライブラリーを追加して、最善の結果を期待します。保証されていませんが、この方法で動作する非再配置可能なパッケージを取得する場合があります。


2

別のdbpathを使用して、別のディレクトリに強制的にインストールできます。また、スクリプトをチェックアウトせずに直接実行しないでください。

これにより、rpmが現在のディレクトリの下に置かれ、必要に応じて編集および実行できるようにスクリプトが抽出されます。

rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm

rpm --query --scripts -p package.rpm > scripts.txt

2

はい、しかししたくないかもしれません。ルートアクセス権のない計算クラスタでソフトウェアを維持するために、カスタムパペットマニフェストとrpmパッケージを使用しました。理論的には、次のように簡単です

rpm --inittb --root /foo 
rpm --dbpath /foo -i bar.rpm

ただし、これがEL4、EL5、およびEL6でどのように動作するかには奇妙な点があるため、それぞれに異なるステップとオプションのセットが必要になります。その情報はもう手元にありません。これらの癖と、頻繁に発生するRPMデータベースの問題(おそらくNFSが原因)により、rpmを使用して後悔しました。


1

ルートアクセスなしでRPMをビルドできます。ホームディレクトリ内でビルドしてください。RPMのインストールに関する限り、短い答えは「いいえ」です。


-2

root、su、またはsudoアクセスなしでrpmを使用することはできません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.