[英]Checking for rbenv shims in PATH: found at wrong position
我嘗試使用它的rbenv-doctor
命令檢查我的rbenv
問題;
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.
. 我該怎么做???
(更新)這是我的./zshrc
文件中的rbenv
東西
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"
了解路徑
當您運行
ruby
或rake
之類的命令時,您的操作系統會搜索目錄列表以查找具有該名稱的可執行文件。 這個目錄列表存在於一個名為PATH
的環境變量中,列表中的每個目錄都用冒號分隔:/usr/local/bin:/usr/bin:/bin
PATH
中的目錄是從左到右搜索的,因此列表開頭目錄中的匹配可執行文件優先於末尾的另一個目錄。 在此示例中,將首先搜索/usr/local/bin
目錄,然后是/usr/bin
,然后是/bin
。了解墊片
rbenv
通過在 PATH 的前面插入一個 shims 目錄來工作:~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
檢查您將~/.rbenv/shims
添加到PATH
的位置(可能在~/.bashrc
或~/.zshrc
/.zshrc 之類的文件中?),並確保將其添加到PATH
的START中,而不是末尾。
要查看$PATH
變量的完整內容,您可以運行:
echo $PATH
PATH
變量本質上是一個有序的目錄列表,由:
分隔。 當您輸入可執行文件的文件名時,例如ruby
,這些目錄將被逐一搜索,以找到名為ruby
的二進制文件。
因此,當您的PATH
目錄中有多個ruby
文件時, PATH
目錄的順序很重要。 您需要確保所需目錄出現在PATH
中的“競爭對手”之前。 這很簡單:
desired_dir=/some/dir
export PATH="${desired_dir}:${PATH}"
您可以將上述代碼段放在 .zshrc 的末尾,以確保它是您的.zshrc
運行的最后一個代碼。
這是因為有人在使用 rbenv 之前安裝了rbenv
,這很好。 你不需要卸載任何東西。 您可以通過執行以下操作來解決此問題:
~/.zshrc
export PATH
的第一個實例。 如果它沒有在任何地方調用也沒關系。.zshrc
文件中,但將目錄更改為您自己的export PATH="/Users/janac/.rbenv/shims:$PATH"
要知道你是否做對了一切,運行
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
並驗證沒有錯誤。
在 `/usr/local/opt/ruby/bin' 中找到的 Ruby 版本將具有優先權。
看起來您使用 Homebrew 安裝了 ruby。 如果你打算改用 rbenv,我建議你卸載它。
針對 MacOS 用戶的簡化說明:
sudo vim ~/.zshrc
在文件末尾添加:
eval "$(rbenv init - zsh)"
編寫並退出 vim 編輯器
:wq
驗證設置:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
預期 output:
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20220910.1)
Counting installed Ruby versions: none
There aren't any Ruby versions installed under `/Users/hugobarbosa/.rbenv/versions'.
You can install Ruby versions like so: rbenv install 3.1.2
Checking RubyGems settings: OK
Auditing installed plugins: OK
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.