2011818

兵ちゃん

第8回 Linuxのソースコードとコンパイルについて

兵ちゃんの研究室へ戻る

 

 みなさんが使っているMS Widowsでは、アプリケーションソフトをただインストールして使っていると思います。Linuxでは同じようにそのままインストールして使うものとプログラムのもとであるソースコードと言うものからコンパイルという操作をしてプログラムを作る事ビルドと言っていますが使っているLinuxに合ったプログラムを作って使う事ができます。ソースコードさえ手に入れば様々なプログラムを使うことができます。ソースコードを手直ししなければならない物もありますが、やり方さえ憶えてしまえば利用できるソフトウェアの数は無限と言えると思います。今回は、一番簡単なLinuxであるUbuntu 11.04(ウブントゥ)を使い、ソースコードからコンパイルという操作をしてバイナリと呼ばれているプログラムを作り、インストールする方法について紹介したいと思います。



1.必要な物

 公開されているソースコード(ソースファイル)の事をオープンソースと言っています。プログラミングができればソースコードをいじくりアプリケーションソフトを自分に使いやすいように改造してやる事もできます。もちろんプログラミングをするアプリケーションもLinuxでは無料で公開されています。プログラミングするアプリケーションの事を開発環境といっています。開発環境とはGCC(GNU Compiler Collection)と呼ばれ、C言語だけではなくC++FORTRANJAVAなどのコンパイルをするプログラム、コンパイラと呼んでいます、その他に各種ライブラリ、makeなどのビルド作業を手助けするツール群の総称を開発環境と言っています。ソースコードをコンパイルするには次のような手順になります。

    開発環境の準備

    ソースコード(ファイル)の入手

    コンパイル作業


2.Ubuntuでの開発環境のインストール

 Ubuntuではパソコンにインストールする時にデフォルト(標準)で開発環境もインストールされます。インストールされていない場合は次のコマンドでまとめてインストールします。

 端末にコマンドを入力して[Enter]キーを押します。


sudo apt-get install build-essential



3.ソースコードの入手

 ソースコードを入手する方法は一つは「tarボール」と言われている物をダウンロードする方法ともう一つはソースのパッケージをインストールする方法です。「tar」とはアーカイブ(圧縮ファイル)の事を言い、複数のファイルを一つのファイルにまとめるために使われています。tarコマンドで作成されるアーカイブは「.tar.bz2」「.tar.gz」「.tgz」といった拡張子が付いていて「terボール」と呼ばれています。tarボールの入手先はインターネットからダウンロードして入手します。



4.ソースコードのパッケージ

 無料で使えるソフトのデーターベースであるリボジトリには、ソフトウェアのパッケージだけではなくソースコードのパッケージも含まれています。Ubuntuの場合は次のコマンドでソースコードのパッケージをインストールできます。

 端末にコマンドを入力して[Enter]キーを押します。


apt-get source パッケージ名


 カレントディレクトリにtarボールや修正用のパッチなどが一括してダウンロードされて自動的に展開されてソースコードのディレクトリ(フォルダ)が作成されます。



5.コンパイルとインストール

 Ubuntuの場合は次のコマンドでソースコードのコンパイルとインストールを行います。

 端末にコマンドを入力して[Enter]キーを押します。


./configure

make

sudo make install


 「configure」というのはソフトウェアの環境を調べて依存するライブラリやツールが不足していないか確認するスクリプトです。また、ソフトウェアの設定を指定してその設定用のコンパイルの情報を記録したファイル、makefileを作ります。「make」はmakefileを参照してコンパイルするためのコマンドです。大規模のソフトウェアでは、かなりの時間がかかります。コンパイルが成功したら「make install」コマンドで作成したバイナリファイルを所定のディレクトリ(フォルダ)へインストールします。通常はroot権限(管理者)を使わないとインストールできません。Ubuntuでは「sudo」コマンドを先頭につけて一時的にroot権限を使いインストールします。インストールまで終わってアプリケーションが使えるようになります。



 これがソースコードからコンパイルしてインストールまでの一連の流れです。Linuxの世界ではソースコードが公開されていて、オープンソースという考え方が一般化しています。(公開されていないソースコードも存在します)一般の人たちの誰もがソースコードを入手できます。入手したら自分が使っているLinuxで動くようにコンパイルしてインストールすることでソフトウェアを使うことができます。ここがMS Windowsでは一般化していない違った考え方です。また、ソースコードが公開されているからこそLinuxを含めたコンピュータの世界を支えているものです。Linuxでは「こうなっているんだ〜」と思ってもらえれば幸です。






参考URL

日経Linux 20119月号


Ubuntu 11.04 (Natty Narwhal)

http://mirror.mcs.anl.gov/pub/ubuntu-iso/DVDs/ubuntu/11.04/release/


その他・・・色々

3