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

时间:2015-07-14 18:14:48

标签: ruby osx-elcapitan rbenv

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

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

我关注了“Install gem as user on OSX 10.10 Yosemite”,但仍无法拨打gem

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

安装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 dump:

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 and gem both throws 'Permission denied' error whenever I run it”看似相关,但除了使用我可能不得不采用的其他方法之外没有解决。

4 个答案:

答案 0 :(得分:4)

如果您在 render: function() { if (!this.state.isConnected) { return ( this.renderLoading() ) } return ( <View style={styles.container}> <WebView url={this.props.url} /> </View> ) }, 之后无法使用gem,则听起来您没有正确初始化rbenv,因为垫片不可用。

这些步骤来自the documentation。确认您已完成所有

  

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

sudo
  

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

     

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

     

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

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

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

     

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

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

答案 1 :(得分:3)

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

出于同样的原因,也可以尝试使用RVMrbenv等沙盒环境。

答案 2 :(得分:1)

正如其他人所提到的,有一些安全的方法可以在 Mac 上安装 Ruby gem。概括地说,这包括六个步骤:

  1. 安装 Homebrew(它还安装必备的 Apple 命令行工具)
  2. 安装 Ruby 管理器(例如 chruby、rbenv、asdf、RVM)——其中大部分都可以通过 Homebrew 安装
  3. 通过向您的 shell 文件(~/.bash_profile~/.zshrc)添加适当的行来配置 Ruby 管理器 - 每个管理器都会有执行此操作的说明,这是人们遗漏的典型步骤
  4. 重新启动终端以使 shell 更改生效 - 另一个经常被忽视的步骤
  5. 使用 Ruby 管理器安装特定版本的 Ruby
  6. 使用 Ruby 管理器切换到该版本的 Ruby

我的个人偏好是 chrubyruby-install。有关更多详细信息和可以自动化整个过程的脚本,请在此处查看我的答案: https://stackoverflow.com/a/54873916/928191

答案 3 :(得分:0)

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

bundle install --path vendor/bundle

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