[英]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
可執行文件,還會看到irb
、 gem
、 bundle
、 rake
和其他一些。 因此,當您運行bundle install
或gem 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.