使用通过Homebrew安装的rbenv安装Ruby 2.3.1时出现“Permission denied”错误。

4

在使用rbenv安装ruby 2.3.1时,我遇到了错误信息。

我的环境如下:

  • MacOS 10.10.5
  • rbenv 1.0.0

以下是日志信息。

$ rbenv install 2.3.1

...

Last 10 log lines:
compiling enc/unicode.c
compiling enc/utf_8.c
compiling enc/trans/newline.c
linking miniruby
generating encdb.h
make: ./miniruby: Permission denied
make: ./miniruby: Permission denied
make: *** [.rbconfig.time] Error 1
make: *** Waiting for unfinished jobs....
make: *** [encdb.h] Error 1

如果您遇到相同的错误,请告诉我如何解决此错误?感谢您的帮助。

1
在执行安装命令之前,尝试在命令前加上sudo。 - archon92
@archon92 谢谢您的留言。我认为 rbenv 可以在本地环境中无需使用 sudo 进行安装。这是否正确? - ima0123
我不是完全确定,但通常情况下 Ruby 的 make 命令需要对特定文件夹具有写入权限,而你所遇到的错误明确指出了这一点。 - archon92
我通过sudo用户执行解决了这个问题。谢谢archon92。 - ima0123
2
为什么在“rbenv install 2.4.0”之前必须添加“sudo”?我以为rbenv会将所有内容安装到我的“~/.rbenv”中,这不是真的吗?我认为在安装命令前加上“sudo”会使得将rbenv放在主文件夹中的目的失去意义。 - Bruce Sun
2个回答

7

被接受的答案并不是一个好的答案 - 安装过程不应该需要 root 权限,并且可能会导致在将来安装需要 C 扩展的 gem 时出现问题(nokogiri 是一个很好的例子)。

ruby-build 包中有一个已记录的 bug:https://github.com/rbenv/ruby-build/issues/992,解决方法是进入工作目录并自己运行 make install - 如果您已经安装和更新了 XCode 命令行工具,则应该可以运行。


对于那些有点迷茫的人,运行make命令的目录可能位于/.rvm/...ruby-x或者/.rbenv/.../ruby-x中。祝你好运。 - i0x539

-2

在命令前添加sudo(以授予管理员权限进行安装)

例如:sudo make ruby 2.3.1


我可以解决这个问题,感谢viodrey。 - ima0123

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