如何在 Mac OS High-Sierra 上定义一个 uniq ruby 版本?
How to define a uniq ruby version on Mac OS High-Sierra?
(抱歉:不是英语母语)
我几天前将我的 MacBook Air 升级到 OS High-sierra,我的 ruby 版本遇到了很多问题。
特别是:
- 终端适用于 2.4 ruby 版本,我在任何地方都找不到……
- Apache 服务器似乎可以使用我发现的 2.3.3 ruby 版本……在
rbenv
文件夹之外……
- 我的
rbenv
只知道 2.3.0 和 2.3.1 ruby 版本…
- 我无法使用
rbenv
安装 2.4 版本(见下文)…
rbenv global 2.3.1
根本没有帮助(没有任何变化)…
只用2.3.1
ruby版本有什么用?…………
一些(也许)有用的信息:
我没有 ~/.rvm
文件夹。
终端中关于配置的一些反馈:
$> ruby -v
# => ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin17]
$> rbenv versions
# =>
* system (set by /Users/philippeperret/.rbenv/version)
2.3.0
2.3.1
$> which -a ruby
# =>
/Users/philippeperret/.rbenv/shims/ruby
/usr/local/bin/ruby
/usr/bin/ruby
$> irb
irb> RUBY_VERSION
# => "2.4.2"
关于自制软件
$> brew config
HOMEBREW_VERSION: 1.4.1
ORIGIN: https://github.com/Homebrew/brew
...
HOMEBREW_PREFIX: /usr/local
CPU: quad-core 64-bit haswell
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 9.0 build 900
Git: 2.14.3 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
...
Ruby: /Users/philippeperret/.rbenv/shims/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Java: 1.8.0_45
macOS: 10.13.2-x86_64
Xcode: 9.2
CLT: N/A
X11: 2.7.11 => /opt/X11
我不明白为什么 ruby 版本 2.3 (.3) 在 /System/Library/Frameworks/Ruby.framework/Versions/
而不是 .rbenv
文件夹中?…(尽管我知道它是高山装置)
当我 运行 本地(rails-like)网络应用程序(在我的浏览器中)时,询问它的 ruby 版本:
$> RUBY_VERSION
# => 2.3.3
$> ruby --version
# => ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
$> which -a ruby
# => /usr/bin/ruby
它找不到一些 ruby 宝石(require 'rubygems'
没有帮助)。当然,我无法安装这些 gems,直到我无法在终端中选择带有 rbenv
的 2.3.3
版本:
当我运行:
$> rbenv global 2.4.2p198
…(这是终端 ruby 版本),它抱怨:
rbenv: version `2.4.2p198' not installed
当我尝试时:
rbenv install 2.4.2p198
…它抱怨:
ruby-build: definition not found: 2.4.2p198
See all available versions with `rbenv install --list'.
If the version you need is missing, try upgrading ruby-build:
brew update && brew upgrade ruby-build
(当然我"brew updated"等等)
我花了最后几天阅读文档和 SO 的 question/answers 徒劳无功......
没有任何答案,我找到的唯一方法是删除所有 ruby 版本:
> brew remove --force ruby
> brew uninstall --ignore-dependencies ruby
> brew uninstall --force ruby
> sudo rm -rf /usr/local/lib/ruby
> sudo rm -rf ~/.rbenv
> sudo rm -rf ~/.gem
现在我到处都用2.3.3
版本。
> ruby -v
# => 2.3.3
在brew config
中:
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
我可以在 /Library/Ruby/Gems/2.3.0/gems
中找到我的 gem:
gem which sass
# => /Library/Ruby/Gems/2.3.0/gems/sass-3.5.4/lib/sass.rb
要安装新的 gem,需要超级用户权限:
sudo gem install <gem name>
感谢您的帮助。也许有帮助。
(抱歉:不是英语母语)
我几天前将我的 MacBook Air 升级到 OS High-sierra,我的 ruby 版本遇到了很多问题。
特别是:
- 终端适用于 2.4 ruby 版本,我在任何地方都找不到……
- Apache 服务器似乎可以使用我发现的 2.3.3 ruby 版本……在
rbenv
文件夹之外…… - 我的
rbenv
只知道 2.3.0 和 2.3.1 ruby 版本… - 我无法使用
rbenv
安装 2.4 版本(见下文)… rbenv global 2.3.1
根本没有帮助(没有任何变化)…
只用2.3.1
ruby版本有什么用?…………
一些(也许)有用的信息:
我没有 ~/.rvm
文件夹。
终端中关于配置的一些反馈:
$> ruby -v
# => ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin17]
$> rbenv versions
# =>
* system (set by /Users/philippeperret/.rbenv/version)
2.3.0
2.3.1
$> which -a ruby
# =>
/Users/philippeperret/.rbenv/shims/ruby
/usr/local/bin/ruby
/usr/bin/ruby
$> irb
irb> RUBY_VERSION
# => "2.4.2"
关于自制软件
$> brew config
HOMEBREW_VERSION: 1.4.1
ORIGIN: https://github.com/Homebrew/brew
...
HOMEBREW_PREFIX: /usr/local
CPU: quad-core 64-bit haswell
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 9.0 build 900
Git: 2.14.3 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
...
Ruby: /Users/philippeperret/.rbenv/shims/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Java: 1.8.0_45
macOS: 10.13.2-x86_64
Xcode: 9.2
CLT: N/A
X11: 2.7.11 => /opt/X11
我不明白为什么 ruby 版本 2.3 (.3) 在 /System/Library/Frameworks/Ruby.framework/Versions/
而不是 .rbenv
文件夹中?…(尽管我知道它是高山装置)
当我 运行 本地(rails-like)网络应用程序(在我的浏览器中)时,询问它的 ruby 版本:
$> RUBY_VERSION
# => 2.3.3
$> ruby --version
# => ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
$> which -a ruby
# => /usr/bin/ruby
它找不到一些 ruby 宝石(require 'rubygems'
没有帮助)。当然,我无法安装这些 gems,直到我无法在终端中选择带有 rbenv
的 2.3.3
版本:
当我运行:
$> rbenv global 2.4.2p198
…(这是终端 ruby 版本),它抱怨:
rbenv: version `2.4.2p198' not installed
当我尝试时:
rbenv install 2.4.2p198
…它抱怨:
ruby-build: definition not found: 2.4.2p198
See all available versions with `rbenv install --list'.
If the version you need is missing, try upgrading ruby-build:
brew update && brew upgrade ruby-build
(当然我"brew updated"等等)
我花了最后几天阅读文档和 SO 的 question/answers 徒劳无功......
没有任何答案,我找到的唯一方法是删除所有 ruby 版本:
> brew remove --force ruby
> brew uninstall --ignore-dependencies ruby
> brew uninstall --force ruby
> sudo rm -rf /usr/local/lib/ruby
> sudo rm -rf ~/.rbenv
> sudo rm -rf ~/.gem
现在我到处都用2.3.3
版本。
> ruby -v
# => 2.3.3
在brew config
中:
Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
我可以在 /Library/Ruby/Gems/2.3.0/gems
中找到我的 gem:
gem which sass
# => /Library/Ruby/Gems/2.3.0/gems/sass-3.5.4/lib/sass.rb
要安装新的 gem,需要超级用户权限:
sudo gem install <gem name>
感谢您的帮助。也许有帮助。