which プログラムを LFS ブックに含めるべきかどうかは、メーリングリストにてかねてより議論されているところです。 過去には激しい議論だけに終わってしまった経緯もあります。 できればこの議論を終わりにしたいと考えています。 ここでは which を導入する2つの方法を示します。 どちらの方法を取るかは、みなさんが取り決めてください。
1 つの方法は、GNU which パッケージをインストールするものです。
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
ダウンロード (HTTP): https://ftp.gnu.org/gnu/which/which-2.21.tar.gz
ダウンロード MD5 sum: 097ff1a324ae02e0a3b0369f07a7544a
ダウンロードサイズ: 148 KB
必要ディスク容量: 1 MB
概算ビルド時間: 0.1 SBU 以下
以下のコマンドを実行して which をビルドします。
./configure --prefix=/usr && make
このパッケージにテストスイートはありません。
root
ユーザーになって以下を実行します。
make install
もう 1 つの方法 (パッケージをインストールしたくない方) は、単純なスクリプトを作ります。 (これは root
ユーザーになって実行します。)
cat > /usr/bin/which << "EOF"
#!/bin/bash
type -pa "$@" | head -n 1 ; exit ${PIPESTATUS[0]}
EOF
chmod -v 755 /usr/bin/which
chown -v root:root /usr/bin/which
このスクリプトはしっかりと動作しますので、目的を達するための最も簡単な方法と言うことができます。 ただし必ずしも分かりやすい実装というわけでもありません。