Which-2.21 and Alternatives

The presence or absence of the which program in the main LFS book is probably one of the most contentious issues on the mailing lists. It has resulted in at least one flame war in the past. To hopefully put an end to this once and for all, presented here are two options for equipping your system with which. The question of which which is for you to decide.

Introduction to GNU Which

The first option is to install the actual GNU which package.

This package is known to build and work properly using an LFS-10.1 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/which

Installation of Which

Install which by running the following commands:

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

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Program: which
Installed Libraries: None
Installed Directories: None

Short Descriptions

which

shows the full path of (shell) commands installed in your PATH

The 'which' Script

The second option (for those who don't want to install the package) is to create a simple script (execute as the root user):

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

This should work OK and is probably the easiest solution for most cases, but is not the most comprehensive implementation.

Last updated on 2021-02-19 23:30:09 -0600