「make」で事前に構築されたソフトウェアをインストールする方法は?

「make」で事前に構築されたソフトウェアをインストールする方法は?

簡潔なバージョン:インストールを介してプロジェクトを再コンパイルしようとします。すべてのファイルを正しい場所に入れたいです。

長いバージョン:目的のプロジェクトを構築するためにDockerコンテナを作成しました。成功しました。その理由は、ag(シルバーサーチ)を構築するために最終的なDockerコンテナにpcre-develなどのすべての開発依存関係をインストールしたくないからです。

したがって、プロセスは次のようになります。 ./configure と make を使用してソースコードを事前に書き込みます。次に、最終コンテナに移動してmake installを実行します。私が理解したように、make installはファイルを正しい場所にコピーするだけです。しかし、プロジェクトを再コンパイルしようとしています。すでにmake問題を発行していますが、なぜmake installはプロジェクトを再構築しようとしますか?

私たちが進めている具体的なプロジェクトはagです。銀を探す人

次のエラーが発生します。

bash-4.2# ./ag --version
ag version 0.32.0

Features:
  +jit +lzma -zlib
bash-4.2# make install
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh             /opt/sources/the_silver_searcher/missing autoheader)
rm -f src/stamp-h1
touch src/config.h.in
cd . && /bin/sh ./config.status src/config.h
config.status: creating src/config.h
config.status: src/config.h is unchanged
  CC       src/ignore.o
In file included from src/ignore.c:10:0:
src/options.h:7:18: fatal error: pcre.h: No such file or directory
 #include <pcre.h>
              ^
compilation terminated.
make: *** [src/ignore.o] Error 1
bash-4.2#

もちろん、PCRE依存関係をインストールしたくありません。しかし、すでにバイナリがあるので問題にはなりません。何が問題なの?

答え1

一部のプロジェクトでは、「インストール」ステップは非常に簡単かもしれません。したがって、別のアプローチは、make -n installすべてがコンパイルされるシステムで実行することです。インストールと印刷に必要な事項を評価します。しかし、実行されない注文する。比較的短い場合は、2つのターミナルウィンドウの間で切り取り、貼り付けてターゲットで手動で実行できます。 Makefileにはこれをパッケージ化するターゲットがあるかもしれません(理解しやすくなるMakefile.inを見てみると良いかもしれません)。

関連情報