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

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

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

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

確かに… いやそんなことないから大丈夫ですよ!!

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

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

今回の講座は、ソースコードをコンパイルするために必要な開発ツールをインストールします。

動画講座 開発環境の構築

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

開発ツールはyumでインストールします。

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

sudo yum groupinstall "Development tools"

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

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

  • configure
  • make
  • make install

configure

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

configureを実行すると、インストールに必要なライブラリ等がシステムに正しく設置されているかチェックされます。

チェック後、環境に合わせたMakeFileが作られます。

make

configureで作成されたMakeFileが参照されコンパイルされます。

make install

コンパイルされたファイルやディレクトリが所定の場所にインストールされます。

オプションを指定しなかった場合、デフォルトのままインストールされます。

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

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

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

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

cd /home/linux8weeks
wget https://github.com/mtoyoda/sl/archive/refs/heads/master.zip

slソースコードの解凍

ダウンロードしたmaster.zipを解凍します。

unzip master.zip

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

cd sl-master

slコマンドのコンパイル

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

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

make
gcc -O -Wall -o sl sl.c -lncurses
sl.c:41:10: fatal error: curses.h: No such file or directory
   41 | #include <curses.h>
      |          ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:15: sl] Error 1

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. 【多段SSH】公開鍵認証で中継サーバー経由のログインが簡単!

  2. インターネットに繋いだサーバーで最初にやらなければならない設定

  3. Swapアウトしているプロセスを特定する方法

  4. Linuxを極めるならコマンドよりも〇〇が先だ!!

  5. お名前ドットコムのDNS設定方法