管理者以外のユーザーのホームにyumをインストール


51

私は大規模なコンピューターシステムの非管理者ユーザーです。システムにインストールされていない最新のパッケージが必要です。yumを使用してインストールしたいです。sudo、admin、またはrootアクセスのないユーザーとして、パッケージ管理を使用してホームディレクトリにパッケージをインストールできますか?ソースからmakeをいつでも使用できますが、yumを使用できると生活が楽になります。


1
yumバイナリがsuid rootである場合を除きません(その可能性はわずかです)。
h3rrmiller

1
@ h3rrmillerですが、$ HOMEにプログラムをインストールできるパッケージマネージャーはありますか。したがって、sudoアクセスは不要ですか。OSXのMacPortsでできることは知っています。Linuxのそのようなオプションは何ですか?
-highBandWidth

回答:


8

ほとんどのバイナリは、特定の場所にインストールされるようにコンパイルされます/

Gentoo PrefixRootless GoboLinuxなどの非ルートパッケージマネージャーがあり、場合によっては0installがあります。

あなたが言ったように、自分でコンパイルするとその問題が軽減されるか、chrootが使用されます。ただし、chrootingの最大のハードルは、前提条件とカーネル共有オブジェクトへのリンクです。


10
Chrootはここではオプションではありません。chrootのルートである必要があります。
マルコ

38

use yumではなく、必要なrpmを見つけてダウンロードします。ルートにならずに直接インストールすることはできませんが、RPMパッケージは実際には豪華な.cpioファイルであり、その内容を解凍できます。これを行う最も簡単な方法は、おそらくmc(「真夜中の司令官」)ファイルブラウザ(これまでで最高のソフトウェアの1つ)を使用することです。これにより、.rpmファイルの内容を閲覧し、そこからファイルをコピーできます。

rpm2cpioそれを使用して、.cpioに変換し、cpio内部のファイルを抽出して適切な場所に配置することができます。これらは両方ともすでにredhatまたはfedoraシステムにインストールされます。「xsnow」をインストールする例を次に示します(おそらく空のディレクトリでこれを実行する必要があります)。

»rpm2cpio xsnow-1.42-17.fc17.x86_64.rpm > xsnow.cpio

fc17 x86_64というシステムに適切な.rpmが見つかったことに注意してください。これらは、他のコンポーネントに対してリンクされているプリコンパイルされたバイナリであるため、重要です。次に、.cpioを抽出します。

»cpio -idv < xsnow.cpio 
./usr/bin/xsnow
./usr/share/doc/xsnow-1.42
./usr/share/doc/xsnow-1.42/README
./usr/share/man/man6/xsnow.6.gz
212 blocks
Press any key to continue...

このディレクトリツリーを参照すると、依存関係の解決に役立つ可能性のあるメタ情報を除き、必要なものはすべて揃っています。これは次を使用して見つけることができますrpm -q -p [package] --[query]

»rpm -q -p xsnow-1.42-17.fc17.x86_64.rpm --requires
warning: xsnow-1.42-17.fc17.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID d2382b83: NOKEY
libX11.so.6()(64bit)  
libXext.so.6()(64bit)  
libXpm.so.4()(64bit)  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

私はすでにこのようなものをすべて持っていると確信しています。そのため、xsnow実行可能ファイルを$ PATHに配置するだけで、ホームディレクトリに既にbinが含まれています。

»cp ./usr/bin/xsnow ~/bin

ビオラ!xsnowxsnowはKDEでうまく動作しないことがわかったので、入力も監視もできなくなりました:

ライブラリをインストールする必要がある場合は、ライブラリもホームにディレクトリを作成して追加する必要があります~/.bashrc

export LD_LIBRARY_PATH=/home/you/lib

@siamiiさて、あなたはより良い答えを持っていますか?
マルシン

5
では、誰かがcpioファイルを作成するツールを作成してから、。/ usr / binを$ PREFIX / usr / binなどの非ルートフォルダーにコピーし、依存関係を再帰的にチェックしてインストールしてください。
高帯域幅

2
2年半後、有益な回答をありがとう。これは、mkdir xsnowを使用して1行で実行できます。cd xsnow; wget -O- 195.220.108.108/linux/rpmfusion/nonfree/fedora/releases/17/… | rpm2cpio-| cpio -idv
ラリー

1
私はこれをオフィスのコンピューターで2年以上使用していますが、毎回それが魅力のように機能します。あなたに心から感謝します。大学のITが有能であることを願っています。

これをしている間、私は「...」へのシンボリックリンクできません:許可が拒否されましたまたはcpio:....:開くことができません:許可が拒否されました、これを修正する方法はありますか?私はsudoをせずにこれらのファイルを作成しますが、その後、何らかの理由で、私はそれらをアンインストールするsudoを使用する必要があることに注意してください
Phylliida
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.