如何在Mac OS X上安装没有sudo的gem

我已经阅读了很多post,但到目前为止还没有人完成这个伎俩。

我怎样才能在OSX(El Capitan Beta)上为我自己的用户安装gem? post建议例如指定-user-install但我不能在没有sudo情况下调用gem ,因为它会抛出权限错误。

我跟着“ 在OSX 10.10 Yosemite上安装gem作为用户 ”,但仍然无法调用gem

我按照上面的指南安装了Homebrew,安装了rbenv,用rbenv安装了一个Ruby版本,检查它是否正确加载,但是指南的最后一步是调用gem install ,我仍然无法做到。

安装rbenv后调用gem rbenv导致:

 /Users/Me/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/stub_specification.rb:71:in `initialize': Permission denied @ rb_sysopen - /Users/Ne/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/speci 

rbenv env转储:

 RBENV_VERSION=2.1.5 RBENV_ROOT=/Users/Me/.rbenv RBENV_HOOK_PATH=:/Users/Me/.rbenv/rbenv.d: /usr/local/etc/rbenv.d: /etc/rbenv.d: /usr/lib/rbenv/hooks PATH=/Users/Me/.rbenv/versions/2.1.5/bin: /usr/local/Cellar/rbenv/0.4.0/libexec: /Users/Me/.rbenv/plugins/rbenv-env/bin: /Users/Me/.rbenv/shims: /usr/local/heroku/bin: /usr/local/sbin: /usr/local/bin: /usr/local/share/npm/bin: /Applications/Atom.app/Contents/Resources/app/apm/bin: /Users/Me/.bin: /Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin: /usr/local/bin:/usr/bin: /bin: /usr/sbin:/sbin: /opt/X11/bin: /usr/local/MacGPG2/bin RBENV_DIR=/Users/Me/.rbenv/plugins 

“ 每当我运行它时,brew和gem都抛出’权限被拒绝’错误 ”似乎有关,虽然它除了使用我可能不得不采用的其他方法之外没有解决。

如果你不能使用没有sudo gem ,听起来你没有正确初始化rbenv因为垫片不可用。

这些步骤来自文档 。 确认你完成了所有这些:

将〜/ .rbenv / bin添加到$ PATH以访问rbenv命令行实用程序。

 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 

Ubuntu桌面注意:修改〜/ .bashrc而不是〜/ .bash_profile。

Zsh注意:修改〜/ .zshrc文件而不是〜/ .bash_profile。

将rbenv init添加到shell中以启用填充程序和自动完成function。

 $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile 

与上一步相同,在Ubuntu上使用〜/ .bashrc,在Zsh上使用〜/ .zshrc。

重新启动shell以使PATH更改生效。 (打开一个新的终端选项卡通常会这样做。)现在检查是否已设置rbenv:

 $ type rbenv #=> "rbenv is a function" 

我首先会推荐Homebrew ,它是OSX开发人员的热门选择,它不需要sudo。 你可以做brew install ruby并从那里开始。

出于同样的原因,也可以尝试像RVM和rbenv这样的沙盒环境。

我认为让所有项目和本地运行gem的最佳解决方案是使用bundler并确保安装运行

 bundle install --path vendor/bundle 

这会在项目中创建vendor / bundle文件夹,您应该添加到.gitignore

Interesting Posts