【问题标题】:Add executable to /usr/local/bin: command not found (macOS)将可执行文件添加到 /usr/local/bin:找不到命令 (macOS)
【发布时间】:2022-01-25 13:46:03
【问题描述】:

我用 ruby​​ 做了一个简单的程序。该文件顶部有shebang,它是可执行的。当我运行它 (./parser.rb) 时,它可以工作。

然后我使用ln -s parser.rb refs 创建了一个符号链接。

然后我将此符号链接移至/usr/local/bin。我重新启动终端并运行refs,这给了我以下消息:

zsh: command not found: refs

我检查了我的路径变量:

jonaseveraert@MacBook-Air-van-Jonas bin % echo $PATH                       
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/jonaseveraert/.cargo/bin

所以看起来不错。然后我进入目录/usr/local/bin寻找文件:

jonaseveraert@MacBook-Air-van-Jonas bin % ls -l | grep refs    
lrwxr-xr-x@ 1 jonaseveraert  staff         9 25 jan 14:14 refs.rb -> parser.rb

所以,文件在那里,但在目录中运行它会给我:

jonaseveraert@MacBook-Air-van-Jonas bin % ./refs
zsh: no such file or directory: ./refs

我在这里忘记了什么吗?我似乎找不到这个问题的答案。

【问题讨论】:

  • 您可以在 apple.stackexchange 网站 apple.stackexchange.com/a/98626 上查看此答案,尤其是有关检查 usr/local/bin 是否是终端搜索路径的部分
  • @我也会遇到那个。运行grep -w /usr/local/bin /etc/paths || sudo sh -c 'echo /usr/local/bin >> /etc/paths' 给我/usr/local/bin

标签: ruby macos terminal executable bin


【解决方案1】:

我找到了解决方案here。问题是我在与parser.rb 相同的目录中创建了符号链接,然后将其移至/usr/local/bin

运行时

jonaseveraert@MacBook-Air-van-Jonas bin % ls -l | grep refs    
lrwxr-xr-x@ 1 jonaseveraert  staff         9 25 jan 14:14 refs.rb -> parser.rb

它显示 refs.rb 指向同一目录中的 parser.rb,但它是 parser.rb 不存在(因为它在另一个目录中)。

所以,我在/usr/local/bin 内部执行了/Users/jonaseveraert/Documents/projects/academic/parser/parser.rb refs,现在:

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.rb

该文件现在指向正确的文件,可以使用refs 执行。

【讨论】:

    猜你喜欢
    • 2019-01-06
    • 2017-04-03
    • 1970-01-01
    • 2020-03-03
    • 2014-03-27
    • 2021-03-25
    • 2020-11-27
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多