如何更改RUBY EXECUTABLE路径?

时间:2014-01-06 23:42:29

标签: ruby

当我运行gem env时,我明白了:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [universal.x86_64-darwin13]
  - INSTALLATION DIRECTORY: /Users/th/.rvm/gems/ruby-1.9.3-p448
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/th/.rvm/gems/ruby-1.9.3-p448/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-13
  - GEM PATHS:
     - /Users/th/.rvm/gems/ruby-1.9.3-p448
     - /Users/th/.rvm/gems/ruby-1.9.3-p448@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

Ruby可执行文件和可执行文件目录不同。当我安装gem并使用require 'gem_name'时,我收到一个错误,我找不到该文件。如何将可执行文件目录更改为一致的内容,例如:

/Users/th/.rvm/ruby

另外,如何查看.rvm目录以查找Ruby可执行文件?我试图显示隐藏文件,但这似乎不起作用。

3 个答案:

答案 0 :(得分:0)

您正在使用RVM,但您的设置将系统Ruby作为可执行文件。

在命令行类型:

rvm list

您应该会看到已安装的Ruby版本列表

rvm rubies

   ruby-1.9.2-p320 [ x86_64 ]
   ruby-1.9.3-p392 [ x86_64 ]
   ruby-1.9.3-p429 [ x86_64 ]
=> ruby-2.0.0-p0 [ x86_64 ]
* ruby-2.0.0-p353 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

您可以使用rvm命令设置默认的ruby解释器。如果你没有它,我会安装最新版本的1.9.3和2.1.0。您可以使用RVM安装新的Rubies:

rvm install ruby-1.9.3-p484

然后您可以将其中一个设为默认

rvm use ruby-2.0.0-p353 --default

将2.0.0 p353设置为默认的ruby解释器,除非你为你正在使用的任何特定目录设置它。如果你想对某个项目使用1.9.3,你可以设置该项目使用它版。

答案 1 :(得分:0)

同样,如果您使用的是rbenv,则可以使用rbenv versions命令:

$ rbenv versions
  system
* 1.8.7-p375 (set by /home/ianh/Projects/Github/railsapp_factory/.ruby-version)
  1.9.3-p484
  2.0.0-p353
  2.1.0
  jruby-1.7.9
  rbx-2.2.5

使用rbenv global|local|shell version分别设置全局,本地目录或此shell会话的版本。

我键入第一部分,例如1.9并使用制表符完成来完成完整版本字符串。否则,请安装rbenv-use插件并使用rbenv use 1.9交换红宝石。

单独输入rbenv以获取基本帮助,或rbenv help command输入特定命令的帮助:

$ rbenv 
rbenv 0.4.0-89-g14bc162
Usage: rbenv <command> [<args>]

Some useful rbenv commands are:
   commands    List all available rbenv commands
   local       Set or show the local application-specific Ruby version
   global      Set or show the global Ruby version
   shell       Set or show the shell-specific Ruby version
   install     Install a Ruby version using ruby-build
   uninstall   Uninstall a specific Ruby version
   rehash      Rehash rbenv shims (run this after installing executables)
   version     Show the current Ruby version and its origin
   versions    List all Ruby versions available to rbenv
   which       Display the full path to an executable
   whence      List all Ruby versions that contain the given executable

See 'rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/sstephenson/rbenv#readme

$ rbenv help use
Usage: rbenv use NAME [--global|--shell|--local]

Switches Ruby versions without having to keep patchlevels in mind.

$

我个人更喜欢rbenv,因为它使用了一种不那么复杂的方法 - 请参阅http://jonathan-jackson.net/rvm-and-rbenv进行轻松的比较。

答案 2 :(得分:0)

这是更改RUBY EXECUTABLE路径的另一种方法。

  

tldr; 使用rbenv卸载/重新安装ruby版本

在我的情况下,我看到了一个奇怪的gem环境,其中包含两个不同的可执行文件用户名路径和安装路径。因为我只有一个用户名路径具有写权限,所以这阻止了正确的安装。

我的环境

MacOS 10.15.2 安装了rbenv的Homebrew,包含系统和2.6.5版本 多个用户可以访问rbenv

这对我有用

解决方案是先进行rbenv卸载2.6.5,然后进行rbenv安装2.6.5。

我尝试不能完全解决我的情况的其他内容包括:

  • 在我的计算机中启用GEM_HOME和GEM_PATHS环境变量 配置文件。
  • 卸载并重新安装rbenv。