Add executable to /usr/local/bin: command not found (macOS)
Matthew Barrera
I made a simple program in ruby. The file has the shebang at the top and it is executable. When I run it (./parser.rb), it works.
I then created a symlink using ln -s parser.rb refs.
I then moved this symlink to /usr/local/bin. I restarted my terminal and ran refs, this gave me the following message:
zsh: command not found: refsI cheched my path variable:
jonaseveraert@MacBook-Air-van-Jonas bin % echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/jonaseveraert/.cargo/binSo that seems fine. I then went into the directory /usr/local/bin looked for the file:
jonaseveraert@MacBook-Air-van-Jonas bin % ls -l | grep refs
lrwxr-xr-x@ 1 jonaseveraert staff 9 25 jan 14:14 refs.rb -> parser.rbSo, the file is there, but running it inside of the directory gives me:
jonaseveraert@MacBook-Air-van-Jonas bin % ./refs
zsh: no such file or directory: ./refsIs there anything I'm forgetting here? I can't seem to find an answer to this.
21 Answer
I have found the solution here. The problem was that I made the symlink inside of the same directory as parser.rb and then moved it to /usr/local/bin
When running
jonaseveraert@MacBook-Air-van-Jonas bin % ls -l | grep refs
lrwxr-xr-x@ 1 jonaseveraert staff 9 25 jan 14:14 refs.rb -> parser.rbIt shows that refs.rb is pointing to parser.rb in the same directory, but it's parser.rb that isn't there (because it's in another directory).
So, I executed /Users/jonaseveraert/Documents/projects/academic/parser/parser.rb refs inside of /usr/local/bin and now:
jonaseveraert@MacBook-Air-van-Jonas bin % ls -l refs
lrwxr-xr-x 1 jonaseveraert admin 65 25 jan 15:36 refs -> /Users/jonaseveraert/Documents/projects/academic/parser/parser.rbThe file is now pointing to the right file and can be executed using refs.