如何让 /usr/bin/ruby 指向 Mac 上 Ruby 的正确版本?
How do I get /usr/bin/ruby to point to the right version of Ruby on my Mac?
我在 Mac Sierra 上使用 Ruby 2.3(我认为)。如何让 /usr/bin/ruby 指向 Ruby 的正确版本?我通过rvm重新安装了2.3.0版本(我想用的那个)并设置为默认,但还是没有爱…
localhost:~ davea$ rvm use 2.3.0 --default
Using /Users/davea/.rvm/gems/ruby-2.3.0
localhost:~ davea$ /usr/bin/ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
我需要这个版本的原因是它用于 Rails 5,我需要告诉乘客安装 Ruby 的路径。
这一行:
localhost:~ davea$ /usr/bin/ruby --version
你告诉你的 shell 去目录 /usr/bin
,并输出位于那里的 ruby 命令的版本。但是 rvm 不会将该目录用于它管理的 ruby 版本。
如果您想查看 rvm 当前使用的 ruby 版本,请发出命令:
localhost:~ davea$ ruby --version
备份一分钟,当您在命令行上发出任何命令时,将在 $PATH 环境变量中指定的目录中查找该命令——按照它们列出的顺序——直到命令是成立。您可以通过这样做来检查这些目录:
localhost:~ davea$ echo $PATH
rvm 通过在 $PATH 环境变量前面添加目录和从中删除目录来工作,这样 ruby 命令首先在 rvm 目录中找到。
要查看 rvm 使用的 ruby 位于何处,您可以这样做:
localhost:~ davea$ which ruby
/Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby
如果你使用 rvm 切换 ruby 版本:
~$ rvm list
rvm rubies
ruby-1.9.3-p194 [ x86_64 ]
ruby-1.9.3-p551 [ x86_64 ]
ruby-2.2.1 [ x86_64 ]
=* ruby-2.3.0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~$ rvm use 2.2.1
Using /Users/7stud/.rvm/gems/ruby-2.2.1
~$ ruby --version
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]
~$ which ruby
/Users/7stud/.rvm/rubies/ruby-2.2.1/bin/ruby
如果由于某种原因 /usr/bin/ruby
被硬编码到 Passenger 中,那么您可以创建从 /usr/bin/ruby
到计算机上安装的任何 ruby 版本的 link。首先,您可能想要保存当前的 ruby 命令:
/usr/bin$ sudo mv ./ruby ./ruby-orig
/usr/bin$ sudo ln -s /Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby ./ruby
/usr/bin$ ls -al ./ruby
lrwxr-xr-x 1 root wheel 44 Dec 29 17:04 ./ruby -> /Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby
另见:https://www.phusionpassenger.com/library/indepth/ruby/multiple_rubies.html
并且:https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_ruby
后者似乎表明您可以使用 rvm 路径。
当使用 rvm 设置正确的 ruby 时,运行 passenger-config about ruby-command
找出设置 PassengerRuby
的内容。
来源:
https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/#determine_ruby_command
我在 Mac Sierra 上使用 Ruby 2.3(我认为)。如何让 /usr/bin/ruby 指向 Ruby 的正确版本?我通过rvm重新安装了2.3.0版本(我想用的那个)并设置为默认,但还是没有爱…
localhost:~ davea$ rvm use 2.3.0 --default
Using /Users/davea/.rvm/gems/ruby-2.3.0
localhost:~ davea$ /usr/bin/ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
我需要这个版本的原因是它用于 Rails 5,我需要告诉乘客安装 Ruby 的路径。
这一行:
localhost:~ davea$ /usr/bin/ruby --version
你告诉你的 shell 去目录 /usr/bin
,并输出位于那里的 ruby 命令的版本。但是 rvm 不会将该目录用于它管理的 ruby 版本。
如果您想查看 rvm 当前使用的 ruby 版本,请发出命令:
localhost:~ davea$ ruby --version
备份一分钟,当您在命令行上发出任何命令时,将在 $PATH 环境变量中指定的目录中查找该命令——按照它们列出的顺序——直到命令是成立。您可以通过这样做来检查这些目录:
localhost:~ davea$ echo $PATH
rvm 通过在 $PATH 环境变量前面添加目录和从中删除目录来工作,这样 ruby 命令首先在 rvm 目录中找到。
要查看 rvm 使用的 ruby 位于何处,您可以这样做:
localhost:~ davea$ which ruby
/Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby
如果你使用 rvm 切换 ruby 版本:
~$ rvm list
rvm rubies
ruby-1.9.3-p194 [ x86_64 ]
ruby-1.9.3-p551 [ x86_64 ]
ruby-2.2.1 [ x86_64 ]
=* ruby-2.3.0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~$ rvm use 2.2.1
Using /Users/7stud/.rvm/gems/ruby-2.2.1
~$ ruby --version
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]
~$ which ruby
/Users/7stud/.rvm/rubies/ruby-2.2.1/bin/ruby
如果由于某种原因 /usr/bin/ruby
被硬编码到 Passenger 中,那么您可以创建从 /usr/bin/ruby
到计算机上安装的任何 ruby 版本的 link。首先,您可能想要保存当前的 ruby 命令:
/usr/bin$ sudo mv ./ruby ./ruby-orig
/usr/bin$ sudo ln -s /Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby ./ruby
/usr/bin$ ls -al ./ruby
lrwxr-xr-x 1 root wheel 44 Dec 29 17:04 ./ruby -> /Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby
另见:https://www.phusionpassenger.com/library/indepth/ruby/multiple_rubies.html
并且:https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_ruby
后者似乎表明您可以使用 rvm 路径。
当使用 rvm 设置正确的 ruby 时,运行 passenger-config about ruby-command
找出设置 PassengerRuby
的内容。
来源: https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/#determine_ruby_command