Help us understand the problem. What is going on with this article?

configure, make, make install とは何か

More than 1 year has passed since last update.

Linux環境で何かをインストールするときに、configuremakemake installという言葉がよく出てきます。
configure、make、make installという言葉はよく見るものの、アプリによって微妙に違ったりすることに疑問を感じていました。
今回じっくり調べてみてとてもすっきりしましたのでまとめます。

これらは何者なのか

アプリをソースコードからインストールする時に使用します。

Linux環境にアプリをインストールしようとすると、大きく分けて2つの方法があります。
一つは、rpmやyumなどのコマンドを使用してパッケージとしてインストールする方法です。
もう一つがソースコードからインストールする方法です。
この後者の方法を使う際にconfigure、make、make installを使用します。

また、ソースコードからインストールするときに、必ずこのconfigure、make、make installを使用するということでもありません。
インストールするときには、README等から手順を確認する必要があります。
慣習的にこれらの方法がとられていることが多い、ということです。

configure

$ ./configure

configureというスクリプトファイルを実行しています(configureというコマンドがあるわけではありません)。
ソースコード中にこのスクリプトファイルが含まれているので、パスに注意して実行します。

実行することで、インストールに必要な環境変数やライブラリが正しく設定、設置されているか等がチェックされます。チェックした結果、MakeFileが作られます。
アプリケーションをインストールする環境は様々存在するため、単一のMakeFileを準備するだけだと、環境の差異に対応するのが難しくなります。
configureを使えば、アプリがインストールされる環境を自動的に調べ、その環境に合わせたMakeFileを自動的に作ることができます。

多くの場合は慣例に伴い「configure」という名前がつかれていますが、別の名前で定義されている場合もあります。
README等から手順を確認しましょう。

make

$ make

configureで作成されたMakeFileに基づいて、アプリのコンパイルが行われます。
makeコマンドは(こちらはコマンドです)オプションなし、引数なしで実行することで、MakeFileを参照し、MakeFile内のデフォルトの処理を行います(大抵の場合はビルド処理です)。
MakeFileが作成されたパスに気を付けて実行します。

make install

$ make install

makeコマンドによってコンパイルされたアプリをインストールします。
(結局のところは、makeしたファイル群をディレクトリにコピーしています)

make installというコマンドは、「MakeFile」に記述された「install」というラベルから処理を実行する、という動作になります。
configure同様、多くの場合は慣例に伴い「install」と定義されていますが、別の名前で定義されている場合もあります。

makeコマンド

$make [オプション] [ターゲット]

makeコマンドはMakeFileをもとにして実行されます。
オプションを使うことで(-f)、Makefileとして別のファイルを参照することもできます。

Makefile内の処理は、ターゲット単位で区分されています。
ターゲットを指定して実行することで、ターゲットに定義された内容のみが実際に実行されます。
ターゲットを指定しない場合は、一番上に定義されたターゲットの内容が実行されます。
代表的なターゲットがinstallやcleanとなります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away