簡體   English   中英

當我不知道使用哪個程序來安裝 Ruby 時,如何升級 Ruby 版本?

[英]How to upgrade Ruby version when I can't figure out which program was used to install Ruby?

我想在 OS X 上升級ruby ,但是當我運行brew upgrade ruby我收到Error: ruby not installed 當我運行which ruby我得到/usr/bin/ruby ,所以我知道 ruby​​ 存在於我的系統中,但我認為我的錯誤意味着我沒有通過 Homebrew 安裝它。

我想知道的:

1) 我是否正確地認為/usr/bin/ruby存在但brew upgrade ruby產生Error: ruby not installed意味着Error: ruby not installed了 Ruby,但使用 Homebrew 以外的工具安裝?

2)如果是這樣,我怎么能弄清楚Ruby是如何/在我的系統上安裝的?

3)我應該如何升級Ruby?

我是否正確地認為/usr/bin/ruby存在但brew upgrade ruby產生Error: ruby not installed意味着Error: ruby not installed了 Ruby,但使用 Homebrew 以外的工具安裝?

是的。

如果是這樣,我怎樣才能弄清楚 Ruby 是如何/在我的系統上安裝的?

它帶有 OS X(目前)。 不過,Apple 計划棄用此功能,請參閱此處

我應該如何升級 Ruby?

這是基於意見的,但我會用 brew 來管理它,這意味着你也需要brew install ruby it 。 為了確保您使用brew install ed ruby​​ 而不是系統 ruby​​,您可以添加如下內容:

export PATH=/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.6.0/bin:${PATH}

到您的~/.bash_profile 具體來說,您需要添加 (a) brew將提供 ruby​​ 及其所有相關可執行文件的路徑,以及 (b) 通過gem安裝的可執行文件將存在的路徑。

對於(a),查看brew info ruby的輸出,例如我得到:

...

If you need to have ruby first in your PATH run:
  echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile

...

因此將/usr/local/opt/ruby/bin到路徑中。 如果您ls那個目錄,您不僅會看到ruby可執行文件,還會看到irbgembundlerake和其他一些。 因此,當您運行bundle installgem install ,就會用到這些。

對於 (b),您需要知道安裝的 gem 可執行文件放在哪里。 gem env命令可以幫助您:

$ gem env | grep 'EXECUTABLE DIRECTORY'
  - EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.6.0/bin

因此,將第二個路徑/usr/local/lib/ruby/gems/2.6.0/bin到我的~/.bash_profile $PATH中。

使用which ruby ,您已經發現 ruby​​ 已安裝到您的路徑/usr/bin/ruby

這很可能是指向可執行文件實際位置的符號鏈接。 您可以通過readlink /usr/bin/ruby關注它。 希望它位於一個文件夾中,可以清楚地看到安裝了什么。 如果沒有,解決這個問題的希望不大,但至少你知道所有文件在哪里清理。

然后我會安裝RVM並重新開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM