01.Linux基礎バイオインフォ

#1【Linux基礎】「configure」「make」の意味

Linux初心者の方へ「configure」「make」コマンドの意味を説明します。

ねこ研究員
ねこ研究員

お急ぎの方は動画版をどうぞ!

【Linux】configure、makeの簡単な説明【wet研究の人向け】

「configure」「make」はインストールコマンド

Linuxにおけるソフトウェアのインストール方法は独特です。

Windows/Macでは「webからファイルをダウンロード → インストールウィザードに従う」でOKでした。

ところが、Linuxの場合「webからファイルをダウンロード → コマンドでインストールする」となります。(基本的に)インストールウィザードがないのです。

そこで、インストールコマンドの登場です。そのコマンドが「configure」「make」というわけです。

実は「コマンドだけでインストール(ダウンロードもコマンドで自動実施)」というすごい方法もあります。これに使うコマンドは「yum」や「apt-get」などです。「configure」「make」を用いる方法は「ソースコードからインストール」、「yum」などによる方法は「パッケージからインストール」と呼ばれています。

例を見てみましょう

細かい説明をする前に「configure」「make」を用いたインストールの実際を見ておきましょう。動画では「autoconf」というソフトウェアをLinuxにインストールしています。

動画では「configure」「make」「make install」の順で進んでいることに着目してください。この3つが鉄板パターンです

【Linux】autoconfコマンドのインストールをします!【実演】

 

「configure」の解説

まずは「configure」から説明しましょう。「configure」は次のパターンで使用することが多いです。

./configure --prefix="どこかのパス"

です。

 「./configure」の「./」はなに? 

「.」はカレントディレクトリを表しています。ですから、「./configure」で、「カレントディレクトリの中にあるconfigureというファイルのパス」を表しているだけです。

いつもは「コマンド」だったので「ls」や「cd」には「./」がありませんでした。しかし、今回の「./configure」はそもそもコマンドではなく、単にファイルを指定しているだけだったのです。

単にファイルを指定すると何が起きるの?

ファイルの中身に従って、Linuxが計算を始めます。つまり、起こることはファイルの中身次第と言うことです。

「configure」内には何が書かれている?

Linuxの環境をチェックするプログラムが書かれています。

「環境をチェック」とは、「どんなOSを使っているか(CentOSやUbuntuなど)」「どんなファイルをダウンロードしたことがあるか」などを調べる行為です。これらの情報がインストールには必要と言うことですね。

「prefix」はなに?

インストール終了後に生成される「コマンドのファイル」を置く場所を指定するオプションです。

「コマンドのファイル」とは、上記の「autoconfインストールの動画」の1:29で述べている「実行ファイル」のことです。

インストール終了後に「実行ファイルがどこのフォルダに入っているか」と言う情報が後々重要になります。そこで下記のようにprefixを利用して、インストール後の場所を指定することが多いです。

./configure --prefix=$HOME/mybin
prefixを指定しない場合「コマンドのファイル」が生成される場所は「/bin」や「/etc/bin」などのかなり上位のディレクトリになることが多いです。ただし、(1)決まっていないので探すのが大変、(2)管理者権限などの理由で失敗する可能性がある、と言う理由から避けたほうが良いと私は思います。

「make」と「make install」の意味

「make」が実際のインストールです。Linuxに色々変更を加えるなどの操作が実施されます。
「make」が終わると「コマンドのファイル」ができます。だから、基本的に「configure」→「make」でインストールは終わりです。
「make install」は大したことはしていません。主な役割は「コマンドのファイル」を「configureのprefixで指定したフォルダ」に移動させることです。

関連記事の紹介(1):「パスを通す」

「make install」まで終えるとインストールは終了です。しかし、通常「パスを通す」という作業を続けて行います。

「パスを通す」についての説明はこちらの記事を参照してください。

関連記事の紹介(2):例外のケース

「configure」「make」「make install」の3つが鉄板のパターンです。

しかし、結構な割合で例外があります。

どのような時に例外と判断するか?

ソフトウェアのダウンロード元のWebサイトを参照します。すると、インストール手順に関しての指示が普通は掲載されています。そちらを参照して、「./configure」より前の手順が必要であったり、+αのコマンドが必要であると言っていれば例外です。適宜対応するしかありません。

良くあるケース:autoconf

ソフトウェアの中には、「configure」を用意していない場合もあります。そのような場合、「./configure」とやってもダメです。まずは「configure」を生成してあげる必要があります。これを実施してくれるコマンドが「autoconf」です。

なお、「autoconf」がインストールされていない場合は、「autoconf」をインストールする必要があります。これについては、こちらの記事です。

ねこ研究員
ねこ研究員

お疲れさまでした!