GNU Coreutilsを自分でビルドする
ls や rm など、GNU Coreutilsのコマンドを改造したいと思ったことはありませんか?
そういうときは、自分でGNU Coreutilsをビルとする必要があります。やってみましょう。
GNU CoreutilsのソースはGitHubにミラーが上がっているので、それをcloneしてビルドするだけです。
検証環境
- Ubuntu 16.04 LTS
手順
必要なコマンド・ライブラリのインストール
ビルドの際、 ./bootstrap や ./configure を実行したときに必要なコマンド・ライブラリがあるかどうかチェックされます。
セットアップ直後の状態で試してみると、以下のコマンド・ライブラリが足りないとメッセージが表示されました。
./bootstrap時- autoconf
- automake
- autopoint
- bison
- gettext
- git
- gperf
- makeinfo ← パッケージはtexinfo
- patch
- rsync
- xz ← パッケージはxz-utils
./configure時- gcc
- g++
makeに必要- make
全て合わせて、以下のようなコマンドでインストールしておきます。
$ apt install --no-install-recommends \
autoconf \
automake \
autopoint \
bison \
gettext \
git \
gperf \
texinfo \
patch \
rsync \
xz-utils \
gcc \
g++ \
make
- ※
--no-install-recommendsオプションはお好みで。 - ※こんなに神経質にやらなくても、半分くらいは
apt install build-essentialで入る。
リポジトリの取得
GitHubからcloneします。サブモジュール付きなので注意。
$ git clone --recursive https://github.com/coreutils/coreutils.git
ビルド設定
makeの準備をします。
cloneしたディレクトリに移動して
$ cd coreutils
bootstrap を叩き
$ ./bootstrap
./configure します。
$ ./configure
make
全体をビルドする場合
$ make
これで全てのソースがコンパイルされ、 src ディレクトリに実行可能ファイルが作成されます。
特定のコマンドだけビルドする場合
……はできないよう1で、一度上記の手順で make する必要があります。
rm コマンドだけを再度ビルドしたい場合は以下のようにします。
$ make src/rm
必要なソースだけがコンパイルされ、 src ディレクトリに実行可能ファイルが作成されます。