Linux8Weeks02-05 コンパイルするための準備

前の講座でお伝えしたように、ガチンコ.su塾では用途によって、パッケージ版とソース版を使い分けます。

そのため、プログラムソースを実行形式に変換するためのコンパイラが必要となります。

弟子1
なんだか難しそうですね…

塾長
確かに… いやいや、そんなことないですよ。
ちょっとだけ手間はかかるけど、難しくはないので安心してください。

ソースコードをコンパイルしてインストールするので、ちょっとだけ手間がかかるのですが、こんなメリットがあります。

  • 機能を明確に知ることができる
  • 使用する機能のみを有効にしてインストールできる
  • 最新のバージョンを試すことができる
  • パッケージのメンテナンス終了に怯えることがない
  • OSの世代やLinuxディストリビューションが異なっても移行が簡単

Apacheなど、ダウンロードできるソースコードの多くはC言語というプログラム言語で書かれているので、C言語をサーバー内で実行できる形式に変換するだけです。

インストールするまでの工程で、OSの種類やバージョン、システムに依存する箇所をチェックしてくれるので、側から見ると難しいことをやっているように見えますが、凄く簡単なんです。

今回の講座は、サーバーに基本的な開発ツールをインストールしていきます。

 

動画講座 Linux8Weeks02-05 開発環境の構築

 

開発ツールのインストール

開発ツールに含まれるコンパイラを一からコンパイルしてインストールするのは大変なので、yumでパッケージをインストールします。

今までは、yum installでインストールしていましたが、今回はyum gourpinstallというオプションを使います。

sudo yum groupinstall “Development tools”

 

ソースコードからインストールする手順

Linux環境において、アプリなどをソースコードからインストールするとき、一般的に以下のような手順で行います。

configure

圧縮されたソースコードをtarコマンドで解凍(展開)すると、解凍されたディレクトリ内にconfigureというファイルがあります。

通常シェルスクリプトと呼ばれているスクリプト言語で書かれているファイルでありコマンドとは異なります。

configureに必要なオプションを付加して実行すると、インストールするために必要なライブラリなどがシステム(Linuxサーバー)に正しく設置されているかチェックされます。

チェックされた結果、MakeFileが作られます。

make

makeコマンドを入力すると、configureで作成されたMakeFileが参照されてコンパイルされます。

make install

コンパイルされたファイルやディレクトリを、所定の場所にインストールします。configureでオプションを指定しなかった場合はデフォルトのままインストールされます。

 

SLコマンドのインストール

動画の3分40秒からを参照に、豊田正史さんのWebページを経由してGitHubからソースコードのzipファイルをダウンロードします。

SLソースコードのダウンロード

インターネット上で配布されているソースコードなどのファイルは、wgetコマンドでダウンロードすることができます。

wget URL(slコマンドのソースコードのURLを指定)

wgetの後にダウンロードしたいファイルのURLを入力すれば、カレントディレクトリにファイルがダウンロードされます。

 

SLソースコードの解凍

ダウンロードしたSLソースコードのzipファイルを解凍。

unzip master.zip

解凍するとsl-masterというディレクトができて、その中にソースコードが格納されています。

cd sl-master

通常、configureすることでサーバーの環境に合わせたMakefileを作るのですが、SLコマンドのソースの中には予めMakefileが同梱されています。

ですから、そのままmakeでコンパイルすることができます。

SLコマンドのコンパイル

sl-masterにcdして、SLコマンドをコンパイルしていきます。

通常、configureすることでサーバーの環境に合わせたMakefileを作るのですが、SLコマンドのソースの中には予めMakefileが同梱されています。

ですから、そのままmakeでコンパイルすることができます。

make

SLコマンドをコンパイルするために必要なcurses.hというヘッダーファイルが無いことによりコンパイルが停止しました。

サーバーエンジニアの仕事をしていると頻繁にこのようなことに出くわします。

問題が発生した時、それを解決する能力を求められるのもこの仕事。このようなことを日々やっていると、仕事だけでなく実生活においても問題解決能力、そして予測し回避する能力もついてきますよ。

curses.hが含まれるパッケージを検索

curses.hは画面制御をする際に必要なライブラリーです。このヘッダーファイルが含まれるパッケージを検索します。

sudo yum provides \*/curses.h

検索結果からncurses-develというパッケージをインストールすればいいことが分かりました。

sudo yum install ncurses-devel

動画中マシンタイプを調べインストールすべきパッケージを確認していましたが、マシンタイプは自動で選択されます。

ncurses-develのインストール後、再度makeでコンパイル。

make

今度はエラーなくコンパイルが完了したはずです。

ll

同じディレクトリ内に「sl」というファイルがありますか?

 

slコマンドの実行

実際にslコマンドを実行してみましょう。

./sl

機関車が走り始めたら成功です。
このslコマンドですが、ジョークコマンドとしてパッケージでも配布されています。

今回はコンパイルとはこういうものだということを知って欲しかったので、あえてソースコードからslコマンドをインストールしてみました。

今回学んだファイル名からパッケージを探すコマンドが役に立つと思いますので、

yum provides \*/ファイル名

はしっかり覚えてください。

塾長
次はいよいよ、Apacheをソースコードからインストールしていきたいと思います。

関連記事

  1. Linux8Weeks02-02 SSHの待ち受けポート番号を変更

  2. Linux8Weeks04-02 PHP7.4のインストール

  3. Linux8Weeks03-05 ApacheバーチャルホストのSSL…

  4. Linux8Weeks01-04 インターネットの名前解決の仕組み

  5. Linux8Weeks03-02 Apacheソース版の起動

  6. Linux8Weeks04-01 MariaDBのインストール