Recent Posts

2012年12月2日日曜日

ubuntu コンパイル入門





Contents:

  • Preface
  • 'CompilingEasyHowTo' のまとめ
  • Step 1
  • Step 2
  • Step 3
  • Step 4
  • GUIでコンパイルするアプリ kludge_tarball
  • 参考にした有用なサイトのリスト






Preface



自分でソースからコンパイルしたい。
"ubuntu"でコンパイルする方法をきちんと学習してみたい。
そう思ってたどり着いたのが ubuntu Community Help Wiki です。

コンパイルについて説明したドキュメントが2つあります。
(他にもあるのかもしれませんが…)

やさしいバージョン
CompilingEasyHowTo
https://help.ubuntu.com/community/CompilingEasyHowTo

レギュラーバージョン
CompilingSoftware
https://help.ubuntu.com/community/CompilingSoftware

自分の学習用に「やさしいバージョン」をまとめてみました。


作業としては、

  1. ソースをダウンロードする。
  2. ダウンロードしたソースを所定の場所に移動する。
  3. 圧縮されたソースを展開する。
  4. 展開したソースのディレクトリにcdする。
  5. ./configure でMakefileを作成する。
  6. make でコンパイルする。
  7. make install または checkinstall でインストールして完了。

と、いたってシンプルです。


操作自体は、
  1. ./configure
  2. make
  3. make install または checkinstall

で終わりです。

コンパイルの方法はソースのフォルダにある'INSTALL'か'README.txt'にたいていは説明があります。
ソースによりコンパイル方法に指定がある場合もありますので必ず目を通しておきます。


勉強になったのはビルドする場所の指定と、make install ではなく checkinstall を使うことです。
これによりインストールしたプログラムをdebianパッケージとして扱うことができますので、ソフトウェアセンターやパッケージマネージャからアンインストールすることが可能になります。

また、ページの下段に学習に有用だったサイトをリストアップしました。






'CompilingEasyHowTo' のまとめ

----------------------------------------------------------------------------------------------------------------------------------

CompilingEasyHowTo / ubuntuでコンパイル 初心者向けの説明

----------------------------------------------------------------------------------------------------------------------------------
(オリジナル文書の最終更新日時 2012-07-05 13:59:11)


Step 1: パッケージをビルドできるように準備する



パッケージを作成、チェックできるようにbuild-essentialとcheckinstallをインストールします。
sudo apt-get install build-essential checkinstall

リリースバージョンがないプログラムを管理するためにsubversionとgitをインストールします。
sudo apt-get install cvs subversion git-core mercurial


ビルドに使うコモン・ディレクトリを作成します。
推奨は下記のディレクトリですが、任意の場所でも可能です。
自分が書き込めるようにパーミッションを設定してください。
(訳注:グループadminに設定した方がよい、とのコメント有り)
sudo chown $USER /usr/local/src

より安全であるために。
sudo chmod u+rwx /usr/local/src






Step 2: ソフトウェアを入手する



ほとんどの場合tarballでリリースされることが多いでしょう。
tar.gz or .tar.bz2 など、これらはWindowsやMacでのzipファイルのような単なる圧縮されたアーカイブファイルです。
インストールするときにはStep 1で作成したディレクトリにアーカイブファイルを移動します。
ファイルの上で右クリックして「ここに展開」する、または下記のコマンドで展開します。

tar -xzvf tarballname.tar.gz
あるいは
tar -xjvf tarballname.tar.bz2


cvsやsubversionのリポジトリからプログラムを入手する場合、開発者がインストール方法を指示していることがあります。
このようなケースではStep 1で作成したディレクトリに移動してから指定されたコマンドを実行してください。


注意:GitやSVNなどのリポジトリからダウンロードした場合、まだ ./configureファイルが作成されていないおそれがあります。
ダウンロードしたファイルのトップディレクトリで下記のコマンドを実行するとできるかもしれません。
autogen.sh

このコマンドはautomakeとautoconfプログラムによって自動的にconfigurationファイルを作成し、./configureコマンドを実行します。
このステップを終えればmakeコマンドを実行することができます。






Step 3: 依存関係を確認する



aptを使ってのインストールでは自動的に必要なライブラリやプログラムが確保されますが、tarballからインストールする場合にはこれを手作業で行う必要があります。
下記は経験の少ないユーザーのためのTIPSです。

TIPS 1

先にauto-aptコマンドで出来ること、出来ないことを読んでおいたほうがいいかもしれません。

    auto-aptは自動的に依存関係の処理をしてくれます。
    auto-aptについて https://help.ubuntu.com/community/AutoApt

準備するためにまずはapt-fileをインストールします。
sudo apt-get install apt-file

パッケージリストをアップデートします。
sudo apt-file update

便利な機能:
apt-file search
特定の名前のファイルを検索する。
apt-file list
特定のパッケージのリストを表示する。


プログラムの依存関係をチェックするには、Step 2で作成したディレクトリ(/usr/local/src)に移動します。

tarballを展開したりcvsやsubversionからダウンロードすると、ソースコードを含むサブディレクトリが作成されます。

この新しくできたディレクトリの中には"configure"と呼ばれるファイルが入っています。これはプログラムがコンパイルされるように手配するスクリプトです。

動作させるためには
./configure
とコマンドします。

このコマンドによってインストールに必要なプログラムがすべて揃っているかどうかを確認します。
ほとんどの場合、必要なプログラムがないとうエラーは起きないでしょう。

オプションを付けないで ./configure を実行した場合はそのプログラムのデフォルト設定が使用されます。

多くのプログラムにはインストールするにあたって設定の幅があります。
tarファイルの中のREADMEやINSTALLファイルを確認してみてください。
また、コマンド ./configure --help でキーとなる設定のリストを表示させることができます。

よく使われるオプションに ./configure --prefix=/usr があります。
これは /usr/local ではなく /usr をインストール先に指定します。



TIPS 2

エラーが起きると、最後に出力される行は下記のようになります。

configure: error: Library requirements (gobbletygook) not met, blah blah blah stuff we don't care about

右上に見つけることができなかったファイル名のリストが表示されます(".pc" で終わるファイル名など)。

このようなときは下記のコマンドを実行します。
apt-file search 見つからないファイル名

これでどのパッケージがないのかを特定することができますので、あとはそのパッケージをインストールするだけです。
sudo apt-get install パッケージ

これでもう一度コマンド ./configure を試してください。
エラーが出なければ次のステップに進めます。






Step 4: ビルドとインストール



ここまでたどり着けば後はビルド(コンパイル)してインストールするだけです。

プログラムをコンパイルします。
make

終わったらプログラムをインストールします。
sudo checkinstall

このコマンドは古いコマンド sudo make install に代わるものです。
ubuntuのパッケージマネージャーに追加しますので、簡単でクリーンなアンインストールをすることができます。

注意:checkinstallの実行に失敗する場合は下記のコマンドを使う必要があるかもしれません。
sudo checkinstall --fstrans=0

CheckInstallについて
https://help.ubuntu.com/community/CheckInstall


もうこれで完了です。

checkinstallを使った場合:
プログラムはSynapticパッケージマネージャーで表示されます。

sudo make installを使った場合:
プラグラムは /usr/local/bin にインストールされています。

-----------------------------------------------------------------







GUIでコンパイルするアプリ kludge_tarball



kludge_tarball_installer_v0.10.tar
https://help.ubuntu.com/community/CompilingEasyHowTo?action=AttachFile&do=view&target=kludge_tarball_installer_v0.10.tar






参考にした有用なサイトのリスト



linuxのコンパイルについて

ソフトウェアパッケージのコンパイル、インストール、実行 - 入門 UNIX / Linux
http://www.codereading.com/notebook/moin.cgi/UnixTutorial7

Linux大学 ソースファイルからのインストール
http://www.linux-u.com/modules/linux4/index.php?content_id=86

Linux初心者の基礎知識
http://www.linux-beginner.com/linux_other1.html


CheckInstallについて

checkinstall でインストール
http://okatanainfo.web.fc2.com/checkinstall/checkinstall.html

ソースからdebやRPMのパッケージを作るアプリ「CheckInstall」 - MONOLOGUE CAFE
http://d.hatena.ne.jp/ni_no5/20100920/1284963074

Related Posts Plugin for WordPress, Blogger...
Twitter Delicious Facebook Digg Stumbleupon Favorites More