web-dev-qa-db-ja.com

RPMインストールパスを上書きする

/ usrにインストールしたいRPMをOracleからダウンロードしましたが、SysAdminsがワークステーションをセットアップする方法が原因で、/ usrに十分なディスク容量がありません。/usrが配置されているルートパーティションのほとんどのスペースは/ usr/libと/ usr/lib64で占められており、実際にそこに行ってクリーンアップすることはできません。

RPMインストールを/ optや/ home/oracleなどの別のパスにリダイレクトする方法はありますか?

7
Dr. Watson

ええ、はい、ある種:

--OLDPATH = NEWPATHを再配置します

再配置可能なバイナリパッケージの場合、パッケージ再配置ヒントのOLDPATHで始まるすべてのファイルパスをNEWPATHに変換します。

(manrpm)。

ただし、ソフトウェアの通常のインストール場所がさまざまな場所にハードコードされている場合があります。 RPMがこのように再配置されることを意図していない場合(「再配置可能なバイナリパッケージの場合」に注意)、これはおそらく機能しません。

その場合、最善の策はおそらくRPMを手動で解凍することです(rpm2cpio package.rpm | cpio -di一時ディレクトリに)、手動で配置する場所に配置します。

何よりも、問題のあるパーティションレイアウトを行った管理者に大声で不平を言います。最近のLinuxシステムでは、パーティションを分離する理由はほとんどありません。通常、/と/ bootで十分です...

10
sleske

再配置不可能なパッケージで機能する別の方法があります。次のコマンドを使用して、ディスク容量を最も多く使用するファイルが配置されているパスを確認します。

rpm -qpl package.rpm

出力例:

/u01/file1
/u01/file2
...

そのディレクトリの名前でシンボリックリンクを作成し、より多くの空きディスク容量があるディレクトリを指します

mkdir /var/lots_of_space
ln -s /var/lots_of_space /u01

そして、通常の方法でインストールします。

rpm -i package.rpm
1
golimar