【问题标题】:Trying to set up Ruby Rails on Mac尝试在 Mac 上设置 Ruby Rails
【发布时间】:2015-08-11 21:45:21
【问题描述】:

我正在尝试使用 rbenv 和 Homebrew 在 mac 上设置 rails。

当前尝试“gem install rails”时收到以下消息:

错误:执行 gem 时 ... (Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.0.0 目录的写入权限。 用户名-mbp:项目用户名$ gem install rails


有什么想法吗??

【问题讨论】:

  • 你试过用 sudo 吗?

标签: ruby-on-rails macos


【解决方案1】:

如果你使用的是 rbenv,你应该使用 sudo 来安装 gems。 rbenv 非常有帮助地在你的主目录下安装你的 gem,允许你为每个安装的 Ruby 版本使用不同的 gem。当您更改 Ruby 的版本时,您会非常感激这一点。

要查看当前版本的 Ruby,请使用 rbenv local。对我来说,这打印出来:

2.2.2

要查看系统上 rbenv 知道的所有 Ruby 版本:

rbenv versions

rbenv 将版本说明符存储在一个名为.ruby-version 的文件中。这允许您为不同的项目使用不同版本的 Ruby,每个版本都有自己的一组 gem。

当您尝试安装 rails 并得到 Gem::FilePermissionError 时,这意味着 rbenv 未激活,或者您故意安装到“系统”Ruby 中。这本身没有任何问题,但你没有利用 rbenv。

我建议再次安装 Rails,使用 rbenv local 以确保将 gem 添加到正确的路径。你会知道这在什么时候起作用

gem env gemdir

产生类似的东西:

/Users/username/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0

请参阅https://github.com/sstephenson/rbenv#installation 了解更多信息。

【讨论】:

    【解决方案2】:

    这可能意味着您在某些时候使用了sudo,这意味着您运行的命令允许您(作为允许的用户以超级用户或其他用户的身份执行命令)参见此处:http://linux.about.com/od/commands/l/blcmdl8_sudo.htm

    能否请您粘贴用于安装 rbenv、ruby、gem、brew 等的命令?另外请粘贴brew doctor 的输出以查看是否为 Homebrew 正确配置了环境。另外,请粘贴 OSX 版本和rbenv versions如果安装了 rbenv。

    在 OSX 上安装 ruby​​ on rails 的步骤是:

    1. 通过以下方式安装 Homebrew: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`` (as seen here: http://brew.sh/)。运行brew doctorbrew update 看看是否一切正常。
    2. 安装 ruby​​:OS X 已安装 Ruby(Mavericks/Yosemite 甚至获得了 2.0.0 版本,之前只有 1.8.7)。
    3. 安装 rbenv:可以通过 GitHub Checkout 或 Brew 完成。您可能应该使用 brew。运行 brew install rbenv ruby-build(这也将安装 ruby​​-build -https://github.com/sstephenson/ruby-build#readme-)。您也可以使用此命令brew install rbenv ruby-build rbenv-gem-rehash。然后echo 'eval "$(rbenv init -)"' >> ~/.bash_profile(启用垫片和自动完成)。你也应该运行这个:echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile。关闭终端并再次打开它。安装首选版本的 ruby​​(如果需要):rbenv install 2.0.0-p353
    4. 安装捆绑器:gem install bundler
    5. 安装 SQLite:gem install sqlite3
    6. 安装 Rails:gem install rails

    因此,您遇到的错误是由于权限引起的(您可以在这里了解它们:http://www.tutorialspoint.com/unix/unix-file-permission.htm)。许多人建议使用sudochown (http://www.cyberciti.biz/faq/how-to-use-chmod-and-chown-command/) 来解决此问题。我不建议这样做,因为它会影响系统配置。你跑起来会更好:

    rbenv install 2.1.2 
    rbenv global 2.1.2
    gem update --system
    

    当我在一年前遇到此错误时,我所做的是卸载所有内容并重新开始......但是,这可能会花费太长时间。

    这些链接可能会对您有所帮助: ruby for macruby rbenvrbenv githuberubies and gemsquestion on stack

    【讨论】:

    • 谢谢。我怀疑在那种情况下我错误地安装了 rbenv。卸载我所做的最好的方法是什么?
    • 我们先试试看:你能不能检查一下Xcode包是通过xcode-select -p还是xcode-select -print-path安装的,然后gcc --version?您应该看到类似:/Applications/Xcode.app/Contents/Developer 用于前两个命令中的任何一个,i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 用于最后一个。这是一个很好的guide,关于如何安装它们以及为什么你need them for rails
    • 请阅读这两个指南,但请注意,它们取决于您使用的 OSX 版本。卸载 rbenv 的命令是brew unlink rbenv ruby-build; brew uninstall rbenv ruby-build。如果您还没有安装 ruby​​-build,只需从命令中删除它。你可以在这里看到一个guide 用于安装和卸载 rbenv。但首先检查brew doctor:如果一切正常,您应该看到your system is ready to brew
    • 对不起,最后的评论。此外,在尝试卸载之前先尝试 echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profilerbenv install 2.1.2 或 xcode 命令并检查它是否解决了问题。首先尝试所有可能性。
    • 好的,谢谢它现在说我的系统已经“准备好酿造”了,但是在尝试 gem install rails 之后我得到:错误:执行 gem 时...(Gem::FilePermissionError)你没有对 /Library/Ruby/Gems/2.0.0 目录没有写权限。
    【解决方案3】:

    使用sudo:

    sudo gem install rails

    本指南对我帮助很大:Setup Ruby On Rails on Mac OS X 10.10 Yosemite

    【讨论】: