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
全て合わせて、以下のようなコマンドでインストールしておきます。
|
|
- ※
--no-install-recommends
オプションはお好みで。 - ※こんなに神経質にやらなくても、半分くらいは
apt install build-essential
で入る。
リポジトリの取得
GitHubからcloneします。サブモジュール付きなので注意。
|
|
ビルド設定
makeの準備をします。
cloneしたディレクトリに移動して
|
|
bootstrap
を叩き
|
|
./configure
します。
|
|
make
全体をビルドする場合
|
|
これで全てのソースがコンパイルされ、 src
ディレクトリに実行可能ファイルが作成されます。
特定のコマンドだけビルドする場合
……はできないよう1で、一度上記の手順で make
する必要があります。
rm
コマンドだけを再度ビルドしたい場合は以下のようにします。
|
|
必要なソースだけがコンパイルされ、 src
ディレクトリに実行可能ファイルが作成されます。