私はユーザーとしてUbuntuサーバーにsshアクセスでき、システムツール(mc、rtorrent、mcedit)をインストールする必要がないと仮定します。私はこれらの小さなプログラムのために管理者を煩わせたくありません。
Sudo apt-get install
などを使用せずにインストール(実行)する方法はありますか?
コンパイルして~/bin
にインストールします(.bashrc
を編集してPATH
を設定します)。ライブラリは、同様にコンパイルして~/lib
にインストールでき(LD_LIBRARY_PATH
がそれを指すように設定)、開発ヘッダーをインストールできます。 ~/includes
。
インストールするプログラムの特定の詳細とそれらが依存するライブラリに応じて、.debファイルをダウンロードし、「dpkg-deb -x
」を使用してホームディレクトリの下にそれらを抽出できます。その後、PATH
、LD_LIBRARY_PATH
、およびその他のvariables
を設定する多くの「楽しい」ことができます。インストールするプログラムやアプリが複雑になるほど、楽しみが増えます:)
もちろん、この方法でsetuid
バイナリをインストールすることはできません。それらはインストールされますが、それらをrootに移行する権限またはsetuid
ビットをオンに設定する権限がないためですそれら)は、あなたが所有する通常のバイナリになります。
同様に、特定のUID
として実行されることを期待するか、またはuidを変更する能力を持っているか、ファイルが/etc
にあることを期待するデーモンおよびシステムサービスは、~/etc
などではありません。可能であれば、うまく機能する可能性があります。
ほとんどのシステム管理者は、mc
およびmcedit
を「ほとんど無害な」無害なプログラムと見なします。
ただし、特に帯域幅の代金を支払わなければならない場合や法的責任を問われる場合は、トレントクライアントを無害と見なすことはほとんどありません。ほとんどのシステム管理者は、エンドユーザーがそのようなソフトウェアを許可なしにインストールすることに完全に満足しているわけではないでしょう。彼らは「確かに、先に進み、自分をノックアウトする」と言うかもしれませんし、そうでないかもしれません...しかし、マシンの所有者/管理者に問題を引き起こす可能性があるものについては質問する必要があります。
これらをソースからコンパイルする必要があります。それはただの問題であるべきです
apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
バイナリは~/myapps/bin
に配置されます。そのため、export PATH="$HOME/myapps/bin:$PATH"
を.bashrc
ファイルに追加し、.bashrc
ファイルをsource ~/.bashrc
で再読み込みします。もちろん、これはシステムにgccがインストールされていることを前提としています。
JuNest を使用できます。これにより、ユーザーのディレクトリに小さなLinuxコンテナが作成され、そこに任意のパッケージをインストールできます。
私はあなたと同じ問題を抱えています。まだ試していませんが、この問題では Linuxbrew が便利なようです。
同じ問題に直面しましたが、同じOSとアーキテクチャのLinuxサーバーを持っていると仮定して、ここですばやく修正しました。
制御するシステムにソフトウェアをインストールする
実行可能な例which python
を見つけて~/
にコピーします
以下を使用してライブラリをコピーします。
ldd "$(which python)" | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ~/
実行可能ファイルとライブラリを、ローカル権限しか持っていない他のシステムに転送し、次を実行します。
mkdir ~/lib
export PATH="$PATH:~/lib"
export LD_LIBRARY_PATH=~/lib:/lib:/usr/lib
これにより、ライブラリを保存するフォルダ~/lib
が作成され、パスに追加されます。LDでライブラリを確認するには、実行ファイルとライブラリを追加するだけです。他の場所と同じように実行できます
これは非常にハッキーかもしれませんが、非常に移植性が高く、迅速であり、私がそのように実行できないものをまだ見つけていません。もちろん、ソフトウェアは、低いポートへのバインドなど、ルートアクセスが必要なことを実行できません1024など.