lsrm など、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 ディレクトリに実行可能ファイルが作成されます。