7.1. ソースからのインストール

7.1.1. ソースの展開

Linuxのソフトウェアはアーカイブ形式で配布される。
アーカイブはtarコマンドで作成された後、gzipbzip2xzを使って圧縮される。

アーカイブの展開と回答は以下の通り。

tar zxvf [圧縮ファイル] # .gzの場合
tar jxvf [圧縮ファイル] # .bz2の場合
tar Jxvf [圧縮ファイル] # .xzの場合
  • .gzの場合 … gunzipgzip
  • .gzipの場合 … bunzip2bzip2
  • .xzの場合 … unxzxz

アーカイブの中には以下の内容が含まれることが多い。

  • ソースファイル … C言語などで書かれたソースコード
  • ヘッダファイル … C言語のヘッダファイル
  • configureファイル … コンパイルに必要な環境をチェックするスクリプト
  • ドキュメント … インストールの手順/注意事項が書かれたファイル

ソースファイルが含まれたアーカイブを展開した後、以下の手順でコンパイルからインストールを行う。

  1. ./configure
  2. make
  3. su (必要の場合)
  4. make install

なおインストール(make install )後にプログラムを起動するとき、環境変数LD_LIBRARY_PATHが正しく設定されていないと、プログラムの実行に必要な共有ライブラリを読み込むことができず、起動に失敗する事がある。

patchコマンド

差分ファイル(パッチファイル)を既存のソースコードに適用してソースコードをバージョンアップするコマンド。

patch [オプション] < [パッチファイル]
cat [パッチファイル] | patch [オプション]
オプション説明
-d ディレクトリ指定したディレクトリに移動して処理を行う
-pパッチファイル内に書かれたパス名を修正する(-p0: パス名を修正しない, -p1: 最後の/まで削除する, -p2: 次のディレクトリまで削除する)
-Cどういう処理を行うかテストする
-Rパッチの適用を取り消して戻す

7.1.2. Makefileの作成

Makefileはconfigureスクリプトにより、プログラムをコンパイルする際に必要な寛容をチェックし環境に合わせたファイル。
カレントディレクトリにあるスクリプトの実行はファイル名に./を付ける。

なおconfigureの主なオプションは以下の通り。

オプション説明
–help説明を表示する
-prefix=ディレクトリインストール先のトップディレクトリを指定する

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

makeコマンド

Makefileに従ってソースコードをコンパイル、リンクするコマンド。
なおコンパイル後はsudo make installでインストールする。

この際のinstallターゲットと呼ばれる。

make [オプション] [ターゲット]
オプション説明
-C ディレクトリ指定したディレクトリに移動してから処理を実行する
–file=ファイルMakefileを指定する
-j N同時にNのジョブを並行して実行する

またmakeのターゲットは以下のようなものがある。

ターゲット説明
allコンパイルを行う(デフォルト)
installソフトウェアのインストール
uninstallアンインストールする
cleanコンパイル時に生成された一時ファイルを削除する

なおインストールしたものは/usr/local/bin/usr/localsbinなどに配置された。