Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have some commands places in ~/.local/bin, and correctly added it to the path:

$ echo $PATH
$ ls ~/.local/bin
dul-daemon        ipcluster      iptest       ...
$ type -a pelican
pelican is /home/juanlu/.local/bin/pelican

but even though I can place this lines in a GNU make recipe, it eventually fails to execute the command:

$ cat Makefile 
    @echo $$PATH
    @compgen -c | grep pelican
    @pelican --help
$ make fail
make: pelican: Command not found
make: *** [fail] Error 127

I have tried to find the solution elsewhere but I don't even find a way to write a search query to put in Google that returns something meaningful.

share|improve this question
up vote 2 down vote accepted

The problem is that your $PATH contains the literal ~ instead of the real path. The ~/... syntax is something specific to the shell; it is not expanded by glibc's execvp() function, for example.

Use absolute paths, as in PATH="$HOME/.local/bin:$HOME/.gem/ruby/1.9.1/bin:$PATH

share|improve this answer
That was exactly the problem. Thank you very much! – astrojuanlu Jan 13 '13 at 11:40

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.