如何解决检查 PATH 中的 rbenv 垫片:在错误的位置找到
我尝试使用其 rbenv
命令检查我的 rbenv-doctor
问题;
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
我明白了;
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: found at wrong position ?
The directory `/Users/myname/.rbenv/shims' is present in PATH,but is listed too late.
The Ruby version found in `/usr/local/opt/ruby/bin' will have precedence. Please reorder your PATH.
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20210510)
Counting installed Ruby versions: 5 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
我想强调这一点;
Checking for rbenv shims in PATH: found at wrong position
结果显示 Please reorder your PATH.
。我该怎么做???
(更新)这是我的 rbenv
文件中的 ./zshrc
内容
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
export PATH="/usr/local/opt/ruby/bin:$PATH"
export PATH="/usr/local/opt/krb5/bin:$PATH"
export PATH="/usr/local/opt/krb5/sbin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
export PATH="/usr/local/sbin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
export PATH="/usr/local/opt/luajit-openresty/bin:$PATH"
export PATH="/usr/local/opt/icu4c/bin:$PATH"
export PATH="/usr/local/opt/icu4c/sbin:$PATH"
export PATH="/usr/local/opt/ncurses/bin:$PATH"
export PATH="/usr/local/opt/ruby/bin:$PATH"
解决方法
了解路径
当您运行 function B
或 ruby
之类的命令时,您的操作系统
搜索目录列表以查找可执行文件
那个名字。此目录列表位于环境变量中
称为 rake
,列表中的每个目录用冒号分隔:
PATH
/usr/local/bin:/usr/bin:/bin
中的目录从左到右搜索,因此匹配
列表开头目录中的可执行文件需要
最后优先于另一个。在这个例子中,
将首先搜索 PATH
目录,然后搜索 /usr/local/bin
,
然后/usr/bin
。
了解垫片
/bin
的工作原理是在您的前端插入一个垫片目录
路径:
rbenv
检查将 ~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
添加到 ~/.rbenv/shims
的位置(可能在 PATH
或 ~/.bashrc
之类的文件中?),并确保将其添加到 开始~/.zshrc
,而不是结束。
要查看 PATH
变量的完整内容,您可以运行:
$PATH
,
PATH
变量本质上是一个有序的目录列表,由 :
分隔。当您输入可执行文件的文件名时,例如 ruby
,这些目录将被一一搜索,以找到名为 ruby
的二进制文件。
因此,当您的 ruby
目录中有多个 PATH
文件时,PATH
目录的顺序很重要。您需要确保所需的目录出现在 PATH
中的“竞争对手”之前。这很简单:
desired_dir=/some/dir
export PATH="${desired_dir}:${PATH}"
您可以将上述代码段放在 .zshrc
的末尾,以确保它是您的 shell 运行的最后一段代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。