ユーザーとして Ubuntu サーバーに SSH でアクセスでき、利便性のためにシステム以外のツール (mc、rtorrent、mcedit) をインストールする必要があるとします。これらの小さなプログラムのために管理者に迷惑をかけたくありません。
のようなものを使用せずにそれらをインストール(実行)する方法はありますかsudo apt-get install
?
答え1
これらをソースからコンパイルする必要があります。
apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
バイナリは に配置されます~/myapps/bin
。したがって、 をファイルexport PATH="$HOME/myapps/bin:$PATH"
に追加し.bashrc
、.bashrc
でファイルを再ロードしますsource ~/.bashrc
。もちろん、これは gcc がシステムにインストールされていることを前提としています。
答え2
コンパイルして にインストールします
~/bin
(そして を編集して がそれを含むように.bashrc
設定しますPATH
)。ライブラリも同様にコンパイルして にインストールできます~/lib
(LD_LIBRARY_PATH
を指すように設定します)。開発ヘッダーは、例えば にインストールできます~/includes
。インストールするプログラムの詳細と、それらが依存するライブラリに応じて、.deb ファイルをダウンロードし、 ' ' を使用してホーム ディレクトリの下に抽出できます。その後、、、およびその他の
dpkg-deb -x
を設定すると、多くの「楽しみ」が得られます。インストールするプログラムやアプリが複雑であればあるほど、楽しみは増えます :)PATH
LD_LIBRARY_PATH
variables
もちろん、この方法ではバイナリをインストールすることはできません
setuid
。バイナリはインストールされますが、(ルートに chown したり、ビットを設定したりする権限がないためsetuid
) 自分が所有する通常のバイナリになります。同様に、特定のユーザーとして実行されることを期待したり
UID
、uid を変更する機能があったり、ファイルが/etc
特定の場所にあることを期待したりするデーモンやシステム サービスは~/etc
、正常に動作しないか、まったく動作しない可能性があります。mc
ほとんどのシステム管理者は、mcedit
および を「ほとんど無害な」、無害なプログラムと見なします。しかし、特に帯域幅の料金を支払わなければならなかったり、法的責任を負わされたりする場合、トレント クライアントのインストールが無害であると考える人はほとんどいません。ほとんどのシステム管理者は、エンド ユーザーが許可なくそのようなソフトウェアをインストールすることにあまり満足していないでしょう。彼らは「もちろん、どうぞ、どうぞ」と言うかもしれませんし、そうでないかもしれません... ただし、マシンの所有者/管理者に問題を引き起こす可能性のあるものについては、尋ねる必要があります。
答え3
使用できますジュネストは、ユーザーのディレクトリに小さな Linux コンテナを作成し、そこに任意のパッケージをインストールできます。
答え4
実はそのためのツールが今日作ったばかりなんです
https://github.com/z3r0n3t/pkget
必要なのはbashへのアクセスだけです。ルート権限は必要ありません。whetを使用してzipファイルとしてダウンロードするか、git cloneを使用できます。