개발자들이 터미널에서 특정 명령어가 어디에 설치되어 있는지 찾을 때 주로 사용하는 'which' 명령어는 시스템의 $PATH 환경 변수에 등록된 경로만 확인하는 한계가 있습니다. 하지만 최근 'anywhich'(anyw)라는 새로운 명령줄 인터페이스(CLI) 도구가 등장하여 이러한 불편함을 해소하고 있습니다. 'anywhich'는 $PATH에 없는 바이너리까지 찾아내고, 심지어 어떤 패키지 관리자(package manager)를 통해 설치되었는지까지 상세히 알려주는 기능을 제공합니다.
'anywhich'는 기존 'which'가 첫 번째 일치 항목만 보여주는 것과 달리, $PATH에 있는 모든 일치 항목을 순서대로 보여주고 어떤 버전이 현재 실행될 것인지 명확히 알려줍니다. 특히 리눅스(Linux) 환경에서 pacman, apt, dnf, zypper, apk, xbps 등 다양한 시스템 패키지 관리자는 물론, Flatpak, Snap, Nix 같은 컨테이너형 패키지, 그리고 npm -g, deno, uv, pnpm, bun, cargo install, go install, pipx 등 프로그래밍 언어별 패키지 관리자까지 지원합니다. 윈도우(Windows) 환경에서는 Scoop, Chocolatey, WinGet을 지원하며, macOS 지원은 아직 테스트되지 않았습니다. 이 도구는 Rust로 개발되었으며, x64 윈도우용 실행 파일은 Visual Studio나 MinGW 없이도 사용할 수 있도록 CI(지속적 통합)를 통해 크로스 컴파일되어 제공됩니다.
이러한 'anywhich'의 등장은 여러 패키지 관리자를 사용하는 복잡한 개발 환경에서 큰 도움이 될 것으로 보입니다. 개발자들은 더 이상 특정 도구가 어디에 설치되었는지, 어떤 버전이 활성화되어 있는지 파악하기 위해 여러 명령어를 수동으로 입력하거나 추측할 필요가 없습니다. 이는 개발 생산성을 높이고, 환경 설정 오류로 인한 디버깅 시간을 줄이는 데 기여할 수 있습니다. 특히 여러 프로젝트에서 다양한 버전의 라이브러리나 도구를 사용하는 경우, 'anywhich'는 혼란을 줄이고 정확한 환경을 유지하는 데 필수적인 도구가 될 것입니다.