回答:
を使用してユーザーディレクトリにrpmをインストールする方法はありますrpm
が、簡単ではないと思います。に方法があるとは思わないyum
。
私の標準的なプラクティスは、ソースからlocal
自宅のディレクトリにコンパイルすることです
$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include
/usr/local
rootを持っているときなどにソースをダウンロードします(例:)~/local/git
。
コンパイル時に、local
ディレクトリにプレフィックスを設定します
$ configure --prefix=/home/user_name/local
$ make
$ make install
次に~/local/bin
、の$ PATHに追加し.bash_profile
ます。
もちろん、ソースからインストールする際の苦痛は、依存関係の自動解決が得られないことです。依存関係をインストールする必要がある場合は、上記のようにコンパイルしてインストールします。次に、コンパイル時git
に、依存関係のライブラリとインクルードファイルの正しい場所を検索するように、コンパイルフラグを更新する必要があります。
./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'
.rpmファイルは実際にはcpio
アーカイブの形式であり、単純な形式のtar
。このrpm2cpio
ユーティリティはおそらくシステムにインストールされており、使用するのに権限は必要ありません。標準出力に書き込むため、変換するには:
rpm2cpio whatever.rpm > whatever.cpio
ありますman cpio
あなたが自分で見ることができますが、あなたは今、モード「でコピー」でのcpioアーカイブを養うれやりたいです。
cat whatever.cpio | cpio -i
ファイルが適切な場所(ビンなど)に移動するように、ものがディレクトリツリーに編成されている可能性が非常に高いです。それらがpwdに存在しない場合、エラーが発生しますが、アーカイブ内のファイルがリストされます(-t
/ --list
スイッチで同じことを取得できます)。ディレクトリを自動的に作成する場合は、を使用します-d
。したがって、rpmを解凍する簡単な方法:
rpm2cpio whatever.rpm | cpio -i -d
これを使用して、$ HOMEにインストールできます。唯一の問題は、プログラムがなどで何かを見つけることを期待している場合です/etc
。なぜなら、多くの物は、コンパイルされるときにどんな目的でもインストール場所がハードコードされているためです。
ソースからの構築はおそらく正しいオプションです(正しい場所を提供できるため)が、どのような場合でもこれを機能させることができれば、迅速かつ簡単です。
また、真夜中の司令官ファイルブラウザー(mc
)、およびおそらく他のファイルブラウザーを使用すると、rpmまたはcpio(または圧縮tar、zip)階層をナビゲートし、アーカイブが解凍されたかのように個々のファイルをコピーできます(アーカイブの内容を参照するための一時ファイルシステム)。
これは代替(yumを使用しない)であり、許可は奇抜になりますがchown
、後でターゲットユーザーにできます:-また、ヒットまたはミスです:-(
#-## Download all dependency for the RPM --
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash
#-## Install all downloaded to an alternate root
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*
次に、適切な場所をパスに追加します。