Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用系统时rbenv关闭我的gem安装目录_Ruby_Macos_Rbenv - Fatal编程技术网

Ruby 使用系统时rbenv关闭我的gem安装目录

Ruby 使用系统时rbenv关闭我的gem安装目录,ruby,macos,rbenv,Ruby,Macos,Rbenv,我想使用rbenv在每个项目的基础上设置ruby版本。否则,我想对其他所有内容使用默认的系统ruby设置 我遇到的问题是,即使rbenv version返回system,gem命令仍然使用rbenv垫片(.rbenv/shimmes/gem)。因此,当我执行gem环境时我的安装目录是'/Library/Ruby/Gems/1.8'。我宁愿它保持~/.gem/。我仍然可以看到,当我运行/usr/bin/gem environment时。我不知道rbenv垫片gem是从哪里获得设置的 我尝试在she

我想使用rbenv在每个项目的基础上设置ruby版本。否则,我想对其他所有内容使用默认的系统ruby设置

我遇到的问题是,即使
rbenv version
返回
system
gem
命令仍然使用rbenv垫片(
.rbenv/shimmes/gem
)。因此,当我执行
gem环境时
我的安装目录是
'/Library/Ruby/Gems/1.8'
。我宁愿它保持
~/.gem/
。我仍然可以看到,当我运行
/usr/bin/gem environment
时。我不知道rbenv垫片gem是从哪里获得设置的

我尝试在shell中修改我的GEM_HOME,并在
~/.gemrc
中修改它,但没有效果。我一直在四处寻找,运气不好。希望这里有人能帮忙。只是一些指向rbenv gem垫片从何处提取其值的指针会有所帮助


谢谢

因为rbenv垫片在您的路径中非常高,它们的目的是拦截对
ruby
gem
和类似的调用,即使当前选择的ruby版本是“system”。你不应该为此担心

现在,Ruby系统的默认安装路径将始终是
/Library/Ruby/Gems/1.8
。这是我的
RBENV\u VERSION=system gem env

  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/mislav/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8

但是,如果您不使用
sudo
(而且您不应该这样做),
gem install
将没有该目录的写入权限,并将在下一个可写路径中安装gems,即
~/.gem/ruby/1.8
。这似乎是你想要的行为。

谢谢米斯拉夫。出于某种原因,我没有看到它返回到可写路径。:/它似乎只尝试安装到安装目录-它似乎不使用GEM路径进行安装。当您不使用sudo时,您会看到什么行为?
~/.gem/ruby/1.8
可由您的用户编写吗?如果它不存在,它的父目录是否可由您的用户执行并写入?是的,所有目录都可由我的用户写入。使用/usr/bin/gem时,一切正常。只有通过rbenv垫片,它的行为才不符合我的要求。通过rbenv运行
gem
应该与运行
/usr/bin/gem
相同(请检查
rbenv which gem
),这就是我的想法。以及rbenv哪个gem确实显示/usr/bin/gem。所以我不知道gem env(使用rbenv垫片)报告的配置为什么不同于/usr/bin/gem env。您可以在此处看到输出: