Linuxコマンドの実装コードを手に入れる方法

mvコマンドの実装が気になったので実装のコードを手に入れた。

今後また別のコマンドの実装も見たくなると思われるので、手順を残しておく。

環境はCentOS 7.3。

提供パッケージを調べる

まずはmvコマンドがどのRPMパッケージから提供されているか調べていく

$ rpm -qf /usr/bin/mv
coreutils-8.22-18.el7.x86_64

coreutilsパッケージがmvコマンドを提供してくれてるみたい。 バージョンは8.22。

パッケージ提供元のサイトURLを調べる

coreutilsパッケージを提供しているサイトのURLを調べる。

$ rpm -qi coreutils
Name        : coreutils
Version     : 8.22
URL         : http://www.gnu.org/software/coreutils/

出力は要点以外は割愛している。 URLはhttp://www.gnu.org/software/coreutils/だとわかった。

ソースを取りに行く

http://www.gnu.org/software/coreutils/ にアクセスする。

アクセスしたらDownloadsの見出しの下にある「Stable source releases can be found at …..」のトコロに書いてあるftp.gnu.orgへのリンクをクリック。coreutilsの場合は ここ(Index of /gnu/coreutils)

するとソースのアーカイブファイルがずらっと並んでいるので好きなバージョンを選んでダウンロードすればよい。

今回は8.22が欲しいので http://ftp.gnu.org/gnu/coreutils/coreutils-8.2.tar.gz をクリックしてダウンロードした。

解凍・展開

あとは手に入れたtarballを解凍・展開するのみ

tar zxvf coreutils-8.2.tar.gz

展開したディレクトリの中からmv.cファイルを見つけた。

手に入ったはいいけどC言語わかんなくて全然読めないw

C言語の勉強してから再度読解に挑戦することにする。

参考