如何在Mac上安装Ruby Gems

81
如何在我的Mac上安装RubyGems?
我尝试运行$ gem install rubygems-update,但没有成功。它返回:
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

任何帮助都将是极好的。谢谢。

3
虽然如果你使用 sudo 命令这条指令可能会成功,但从长远来看,使用版本管理器如 rbenv 或 rvm 会更容易一些。 - max pleaner
如果您没有安装RubyGems,则只能从命令行运行“gem”。因此,您可能需要手动安装。 - Sagar Pandya
对于MacOS Majave,这是一个很好的指南:https://gorails.com/setup/osx/10.14-mojave - Lokesh Meher
我发现这个链接很有帮助:https://dev59.com/4WMl5IYBdhLWcg3wMkko - Elia Weiss
我发现这个链接很有帮助:https://stackoverflow.com/questions/18599889/error-while-executing-gem-gemfilepermissionerror - undefined
5个回答

127
我强烈建议使用一个软件包管理器和一个Ruby环境管理器。
在Mac上,你可以运行:
brew update
brew install ruby

# If you use bash
echo 'export PATH=/usr/local/Cellar/ruby/2.4.1_1/bin:$PATH' >> ~/.bash_profile 

# If you use ZSH:
echo 'export PATH=/usr/local/Cellar/ruby/2.4.1_1/bin:$PATH' >> ~/.zprofile

然而,我建议使用Ruby的环境管理器。
你有rbenvRVM。在我看来,选择rbenv吧。
brew install rbenv ruby-build

# bash
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile  

# zsh
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zprofile
echo 'eval "$(rbenv init -)"' >> ~/.zprofile  

# list all available versions:
rbenv install -l

# install a Ruby version:
rbenv install 2.4.1

# set ruby version for a specific dir
rbenv local 2.4.1

# set ruby version globally
rbenv global 2.4.1

rbenv rehash
gem update --system

好的观点 +1。这就是为什么我在提问,我通过在新Shell中运行它(而不是作为sudo运行)使最后一个命令工作。现在我正在尝试使用最新的gems 2.4.1获取我的第一个oauth软件包安装,但是在这里遇到了一些奇怪的LoadError问题[链接](https://apple.stackexchange.com/questions/288148/loaderror-in-installing-packages-such-as-oauth-with-ruby-gems-why)。 - hhh
如果您立即在当前 shell 中运行 export 命令,则此答案的第一部分可以正常工作。我对安装 rbenvrvm 没有兴趣;我只需要暂时访问公共 gem。谢谢! - Chaim Eliyah
2
在OSX上,不要忘记注销您的OSX会话,然后重新登录以使更改生效于您的bash配置文件。这样,您就不必搜索为什么无法正常工作并最终到达此处(https://dev59.com/lmgu5IYBdhLWcg3w9ryX)。 - Chlind
我把这个路径加入了我的$PATH,这样当Ruby更新时我就不会想知道哪里出了问题了:/usr/local/Cellar/ruby/$(ls -1rt /usr/local/Cellar/ruby/ | tail -1)/bin - Bruce Edge
每个人都告诉我要安装rbenv。我不在乎Ruby,我可以做到这一点。但是它会影响我如何使用Ruby并运行gem中的命令(这才是我真正关心的)吗? - William Entriken

17

另一种方法是使用brew-gem。

https://formulae.brew.sh/formula/brew-gem

https://github.com/sportngin/brew-gem

只需从文档中复制/粘贴:

brew install brew-gem

用法

brew gem install heroku

安装特定版本: brew gem install heroku 3.8.3

使用brew已安装的ruby(/usr/local/bin/ruby)安装: brew gem install heroku --homebrew-ruby

并指定一个版本: brew gem install heroku 3.8.3 --homebrew-ruby

升级: brew gem upgrade heroku

卸载: brew gem uninstall heroku

检查信息: brew gem info heroku

注意:已安装的gems在brew list中以gem-为前缀列出,例如gem-heroku


对我来说解决了问题-不需要使用 sudo - drkvogel

11

4

1
看起来这个答案不是最佳选择,但我会保留它,以防有人能从中受益。 - Sagar Pandya

3

显示您没有在该目录中写入内容的权限。请改用此目录:

sudo gem install -n /usr/local/bin cocoapods

对我来说它完美地工作。

(我正在使用macOS Sierra,版本10.12.6)


14
强烈建议不要使用系统自带的 Ruby 和 sudo。 - melMass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接