5852768964
There's been a few problems. 1) ~/bin should not be checked. $ /usr/lib/rpm/shell.req -v /dev/stdin <<<vim warning: no package provides /home/at/bin/vim shell.req: /dev/stdin: vim not found (skip) $ Fortunately /usr/bin/which has --skip-tilde option. 2) Check for /etc/alternatives was missing. $ PATH=/bin:/usr/bin /usr/lib/rpm/shell.req -v /dev/stdin <<<vim shell.req: /dev/stdin: vim -> /usr/bin/vim -> vim-X11 vim-console vim-enhanced (via rpmdb) vim-X11 vim-console vim-enhanced $ This is why FindByName should ultimately call FindByPath. After this change, it works just fine: $ scripts/shell.req.in -v /dev/stdin <<<vim shell.req.in: /dev/stdin: vim -> /usr/bin/vim -> ... (via which) shell.req.in: /dev/stdin: /usr/bin/vim -> /usr/bin/vim (alternative) /usr/bin/vim $ Also enabled /usr/bin/which --all option and added diagnostics for really ambiguous cases.