web-dev-qa-db-ja.com

Sudo権限なしでプログラムをローカルにインストールする方法は?

私はユーザーとしてUbuntuサーバーにsshアクセスでき、システムツール(mc、rtorrent、mcedit)をインストールする必要がないと仮定します。私はこれらの小さなプログラムのために管理者を煩わせたくありません。

Sudo apt-get installなどを使用せずにインストール(実行)する方法はありますか?

80
yura
  1. コンパイルして~/binにインストールします(.bashrcを編集してPATHを設定します)。ライブラリは、同様にコンパイルして~/libにインストールでき(LD_LIBRARY_PATHがそれを指すように設定)、開発ヘッダーをインストールできます。 ~/includes

  2. インストールするプログラムの特定の詳細とそれらが依存するライブラリに応じて、.debファイルをダウンロードし、「dpkg-deb -x」を使用してホームディレクトリの下にそれらを抽出できます。その後、PATHLD_LIBRARY_PATH、およびその他のvariablesを設定する多くの「楽しい」ことができます。インストールするプログラムやアプリが複雑になるほど、楽しみが増えます:)

    もちろん、この方法でsetuidバイナリをインストールすることはできません。それらはインストールされますが、それらをrootに移行する権限またはsetuidビットをオンに設定する権限がないためですそれら)は、あなたが所有する通常のバイナリになります。

    同様に、特定のUIDとして実行されることを期待するか、またはuidを変更する能力を持っているか、ファイルが/etcにあることを期待するデーモンおよびシステムサービスは、~/etcなどではありません。可能であれば、うまく機能する可能性があります。

  3. ほとんどのシステム管理者は、mcおよびmceditを「ほとんど無害な」無害なプログラムと見なします。

    ただし、特に帯域幅の代金を支払わなければならない場合や法的責任を問われる場合は、トレントクライアントを無害と見なすことはほとんどありません。ほとんどのシステム管理者は、エンドユーザーがそのようなソフトウェアを許可なしにインストールすることに完全に満足しているわけではないでしょう。彼らは「確かに、先に進み、自分をノックアウトする」と言うかもしれませんし、そうでないかもしれません...しかし、マシンの所有者/管理者に問題を引き起こす可能性があるものについては質問する必要があります。

36
cas

これらをソースからコンパイルする必要があります。それはただの問題であるべきです

apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install

バイナリは~/myapps/binに配置されます。そのため、export PATH="$HOME/myapps/bin:$PATH".bashrcファイルに追加し、.bashrcファイルをsource ~/.bashrcで再読み込みします。もちろん、これはシステムにgccがインストールされていることを前提としています。

53
eof

JuNest を使用できます。これにより、ユーザーのディレクトリに小さなLinuxコンテナが作成され、そこに任意のパッケージをインストールできます。

5
niutech

私はあなたと同じ問題を抱えています。まだ試していませんが、この問題では Linuxbrew が便利なようです。

1
JPCF

同じ問題に直面しましたが、同じOSとアーキテクチャのLinuxサーバーを持っていると仮定して、ここですばやく修正しました。

  1. 制御するシステムにソフトウェアをインストールする

  2. 実行可能な例which pythonを見つけて~/にコピーします

  3. 以下を使用してライブラリをコピーします。

    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など.

0
Freedo