ソフトウェアエンジニア現役続行

雑多なことを綴ります

補助コマンドは /usr/libexec に

Unix系OSでは、コマンドによって登録されているパスが違います。

一般的に/bin以下にあるコマンドは、そのLinuxディストリビューションにとって基本的なコマンドを指します。また/usr以下には/usr/binと/usr/sbinの2種類があります。/usr/bin以下に実行ファイルがあるコマンドは、ユーザーコマンドと呼ばれ、一般ユーザが使うコマンドです。そして/usr/local/bin以下のコマンドは、基本的には追加で導入するコマンドを格納する場所です。

では、/usr/local/binなどにあるコマンドから内部的に呼ばれる補助コマンドはどこに置くかというと、/usr/libexecまたは/usr/local/libexecに置くのが一般的なようです。あまり知られていませんが、そのようです。僕もあるLinuxディストリビューターから最近教えてもらいました。

例えば、gccパッケージでは、/usr/bin/gccコマンドを使ってコンパイルするのが一般的ですが、/usr/libexec/gccディレクトリの下には補助コマンドが入っていて、/usr/bin/gccの中でこれらの補助コマンドが呼ばれることがあります。

[Oswald@fedora ~]$ find /usr/libexec/gcc/ -type f
/usr/libexec/gcc/i686-redhat-linux/4.4.2/cc1
/usr/libexec/gcc/i686-redhat-linux/4.4.2/collect2