web-dev-qa-db-ja.com

インストールを行いますが、デフォルトのディレクトリではありませんか?

'make install'を実行して必要なものをすべて揃えたいのですが、システムの/ usr/binなどではなく、独自のフォルダーにインストールしたいのですが、それは可能ですか?/usr/binなどのツールを参照している場合でも?

124
Jon Phenow

パッケージによって異なります。 MakefileがGNU autotools(./configure)によって生成される場合、通常、次のようにターゲットの場所を設定できます。

./configure --prefix=/somewhere/else/than/usr/local

Makefileがautotoolsによって生成されず、ソフトウェアとともに配布される場合は、エディターで単純に開いて変更します。インストールターゲットディレクトリは、おそらくどこかの変数で定義されています。

178
Thomas

Automakeのバージョンがわからないため、DESTDIR環境変数を使用できます。
Makefileを参照して確認してください。

例えば:

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install
34
Andor
make DESTDIR=./new/customized/path install

このクイックコマンドは、Ubuntu 16でのopencvリリース3.2.0のインストールで機能しました。DESTDIRパスは、相対パスでも絶対パスでもかまいません。

このようなリダイレクトは、DESTDIRの場所にユーザーの適切なアクセス権がある限り、ユーザーに管理者権限がない場合にも役立ちます。例:/ home //

16
samasat

コンパイルしようとしているモジュールでサポートされているものに依存する可能性があります。オートツールを使用してメイクファイルを生成する場合は、次を使用します。

--prefix=<myinstalldir>

./configureを実行するとき

一部のパッケージでは、実行時にオーバーライドすることもできます。

make prefix=<myinstalldir>

ただし、。/ configureを使用しない場合、確実に知る唯一の方法は、メイクファイルを開いて確認することです。上部の最初の数個の変数の1つでなければなりません。

16
Tree77

パッケージがMakefile.PLを提供する場合-以下を使用できます。

Perl Makefile.PL PREFIX=/home/my/local/lib LIB=/home/my/local/lib
make
make test
make install

*詳細説明: https://www.perlmonks.org/?node_id=56472

3
eli

上記の解決策を試しました。うまくいきませんでした。

最後に、Makefileファイルを開き、以下のようにプレフィックスパスを手動で目的のインストールパスに変更しました。

PREFIX ?= "installation path"

--prefixを試してみると、「make」はそのようなコマンド入力がないと文句を言いました。ただし、おそらく一部のパッケージは--prefixを受け入れます。これはもちろん、よりクリーンなソリューションです。

0
Majid Azimi