普段はウェブアプリを作ってますが、
もっとレイヤーが低いところも勉強していかないとこの先生きのこれないのでは、、、という不安から、タイトルの通りcoreutilsをソースコードからコンパイルしてみることにしました。
まずはStable Sourceの最新版を適当なところにダウンロードします。
kentas@kentas:~$ mkdir Test kentas@kentas:~$ cd !$ cd Test kentas@kentas:~/Test$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.31.tar.xz
tarで解凍します(.xzは大文字のJオプションで解凍できます)
kentas@kentas:~/Test$ tar -xJf coreutils-8.31.tar.xz kentas@kentas:~/Test$ cd coreutils-8.31/
ソースコードからコンパイルした感を味わいたいので、catコマンドを修正して問答無用に"meow"と出力するように変更してみたいと思います。
kentas@kentas:~/Test/coreutils-8.31$ vim src/cat.c
502 int 503 main (int argc, char **argv) 504 { 505 printf("meow"); // 追加 506 return 0; // 追加 507 /* Optimal size of i/o operations of output. */ 508 size_t outsize;
保存してconfigureスクリプトを実行
kentas@kentas:~/Test/coreutils-8.31$ ./configure
Makefileができたらmakeコマンド
kentas@kentas:~/Test/coreutils-8.31$ make
最後にmake installでバイナリをインストールしたら完了です
kentas@kentas:~/Test/coreutils-8.31$ sudo make install
catを実行
kentas@kentas:~/Test/coreutils-8.31$ cat meowkentas@kentas:~/Test/coreutils-8.31$
改行を忘れていて少し残念な感じになりましたが、とりあえずうまくいきました。