在 Mac 上安装 Discourse(用于开发)时,我遇到以下错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
如何解决这个问题?
谢谢。
在 Mac 上安装 Discourse(用于开发)时,我遇到以下错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
如何解决这个问题?
谢谢。
你在这里运行过 Discourse 的脚本安装吗?
你使用的是 macOS Catalina 吗?如果是的话,看起来你遇到了 Discourse 尝试使用系统自带 Ruby 版本的问题。为了避免这种情况,建议使用 rbenv 等工具来设置你的 Ruby 版本。
我使用的是 macOS Catalina。我运行了该脚本,但运行到一半时失败了,我想是因为已经安装过了。
你能粘贴一下 which rbenv 的输出吗?
另外,你有自定义的 .bashrc 或 .zshrc 文件吗?
/usr/local/bin/rbenv
不太确定。我想没有,但也可能吧。
Can you cd into your discourse directory and share the output of which ruby?
哎呀,没注意到。我已经执行了,结果是 /usr/bin/ruby
好的,所以您正在使用系统自带的 Ruby 运行 Discourse,这就是导致该问题的原因。
请通过输入 echo $PATH 来检查 PATH 变量。您应该能看到 /Users/<your username>/.rbenv/bin 和 /Users/<your username>/.rbenv/shims 列在其中。
如果没有,请在您的 shell 配置文件 .bashrc 或 .zshrc 中添加它们。对于 ZSH,您可以这样添加:export PATH=/path/number/1:/path/number/2:$PATH
如果确实看到了它们,请检查它们的顺序。如果它们位于链的较后位置,可能意味着它们未在系统 Ruby 之前被加载,因此 Discourse 使用的是系统 Ruby。您可以使用上述相同的方法将这些路径移至链的前端。
我以为 @david 已经在我们的开发环境配置中添加了 Ruby 版本检查?![]()
我认为那是针对主题 CLI 的。
这里有没有办法添加一个等效的检查?
我认为我们已经在 Discourse 中检查过 Ruby 版本兼容性——这里的问题在于我们的 Discourse 包无法为 macOS 系统自带的 Ruby 版本写入 gem。我可能在具体细节上有所偏差,但这似乎与苹果在 macOS Catalina 中进行的某项更改有关。我自己也遇到过同样的问题,当时费了不少劲才排查清楚。
我遇到了和 OP 一样的错误。
阅读这个:
我认为这实际上不是文件权限错误,而是安装程序看错了地方。
我知道重启终端会重新加载我的 .zshrc 文件,所以我关闭并重新打开了终端。
我再次运行安装脚本,没有再遇到这个错误。
这个问题是否可以通过在安装过程中策略性地刷新终端来解决?![]()