Which-2.21 と別の実現方法

which プログラムを LFS ブックに含めるべきかどうかは、メーリングリストにてかねてより議論されているところです。 過去には激しい議論だけに終わってしまった経緯もあります。 できればこの議論を終わりにしたいと考えています。 ここでは which を導入する2つの方法を示します。 どちらの方法を取るかは、みなさんが取り決めてください。

GNU Which の概要

1 つの方法は、GNU which パッケージをインストールするものです。

本パッケージは LFS-8.3 において正しくビルドでき動作することが確認されています。

パッケージ情報

ユーザー情報: http://wiki.linuxfromscratch.org/blfs/wiki/which

Which のインストール

以下のコマンドを実行して which をビルドします。

./configure --prefix=/usr &&
make

このパッケージにテストスイートはありません。

root ユーザーになって以下を実行します。

make install

パッケージ構成

インストールプログラム: which
インストールライブラリ: なし
インストールディレクトリ: なし

概略説明

which

PATH ディレクトリ内にインストールされている (シェル) コマンドのフルパスを表示します。

'which' スクリプト

もう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

このスクリプトは、しっかりと動作しますので、目的を達するための最も簡単な方法と言うことができます。 ただし必ずしも分かりやすい実装というわけでもありません。

最終更新日: 2018-08-15 07:05:25 +0900