web-dev-qa-db-ja.com

Sudo特権なしでアプリケーションをビルドする方法は?

ユーザーがSudo/admin特権を必要とせずに、選択したアプリケーション(./configure、make && make install)を構築できるように、Ubuntu 9.10サーバーで何をセットアップする必要がありますか。

アプリを構築するためにユーザーが必要としないかもしれないシステムの部分にユーザーがアクセスできるようにすることは、ちょっとしたセキュリティ上のリスクを感じるだけです。

11
RC1140

ユーザーが使用する場合

./configure --prefix=/home/user/opt/

またはcmakeプロジェクトの場合

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

これにより、デフォルトの/ usr/local /の代わりにそのプレフィックスにプログラムがインストールされ、ユーザーは次のようにプログラムを実行できるようになります。

/home/user/opt/bin/program

単に名前(フルパスなし)を使用してプログラムを実行できるようにするには、/home/user/opt/binをパス環境変数に追加し、ユーザーの.profileを編集して次の行を追加する必要があります。

export PATH=/home/user/opt/bin:$PATH

この方法でインストールされたプログラムは特定のユーザーに限定されますが、それはそれを行う方法です

36
LassePoulsen

ユーザーは、Sudo権限なしでアプリケーションを構築できます。 Sudo権限が必要なのは、システムディレクトリに何かをインストールするときだけです。

./configureおよびmakeは、常にSudo権限なしで機能します。 make installは通常、アプリケーションを/usr/localまたは/usr(場合によっては/opt)にインストールするため、Sudo権限が必要です。

ただし、インストールがユーザーのホームディレクトリツリー内で実行されるようにインストールパスのプレフィックス(つまり、./configure --prefix=~/usr/local)を変更する場合、make installにはSudo権限は必要ありません。

8
txwikinger

txwikingerの説明に加えて、fakerootも確認することをお勧めします。これにより、dpkgで昇格された特権を必要とせずに.debパッケージをビルドできます。もちろん、それらのインストールには通常、Sudoアクセスが必要です。

0
mindcorrosive