如何在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