5

我读过很多帖子,但到目前为止还没有一个成功的。

如何在 OSX(El Capitan Beta)上为我自己的用户安装 gem?帖子建议指定-user-install例如,但我根本无法调用gemsudo因为它会引发权限错误。

我遵循“在 OSX 10.10 Yosemite 上以用户身份安装 gem ”,但仍然无法调用gem

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

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 环境转储:

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都会抛出'Permission denied'错误”似乎相关,尽管它没有解决,除非使用我可能必须做的其他方法。

4

4 回答 4

5

如果你不能在没有 的情况下使用gemsudo听起来你没有正确初始化 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 以启用 shims 和自动完成功能。

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

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

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

$ type rbenv
#=> "rbenv is a function"
于 2015-07-14T18:33:58.723 回答
3

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

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

于 2015-07-14T18:22:20.870 回答
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

于 2020-12-31T17:36:11.020 回答
0

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

bundle install --path vendor/bundle

这会在您的项目中创建一个供应商/捆绑文件夹,您应该添加到您的 .gitignore

于 2015-07-14T18:23:19.043 回答