错误:在执行 gem 时出错... (Gem::FilePermissionError) 您没有对 /Library/Ruby/Gems/2.6.0 目录的写权限。

14 浏览
0 Comments

错误:在执行 gem 时出错... (Gem::FilePermissionError) 您没有对 /Library/Ruby/Gems/2.6.0 目录的写权限。

我正在为我的Rails应用程序提供捆绑或安装gems的写入权限。\n虽然不建议这样做,但我已经尝试使用sudo gemname install,但对我也不起作用。\n运行bundle install后我无法连接。\n问题如下:\n安装puma(4.3.3)时发生错误,无法继续使用Bundler。在捆绑之前,请确保gem install puma -v \'4.3.3\'成功。\n然后我运行gem install puma -v \'4.3.3\',结果显示:\n错误:执行gem时出错...(Gem :: FilePermissionError)您没有/Library/Ruby/Gems/2.6.0目录的写入权限。\n我认为这可能对大家有所帮助。以下是我本地gems的列表:\n(略)\n我认为这可能与我~/.zshrc文件有关,这是它的内容:\n(略)\n我不确定还有什么其他原因可能导致这个错误,但我对这个错误感到非常困惑。

0
0 Comments

在安装 Gems 过程中出现了一个权限问题,错误提示为 "ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory"。这个问题的出现是因为没有对 /Library/Ruby/Gems/2.6.0 目录具有写权限。

为了避免权限问题,可以将 Gems 安装到项目的本地目录中。可以通过以下命令实现:bundle install --path=vendor

如果在安装 puma 时,bundler 仍然报错,那说明构建工具没有正常工作。bundle install 的完整输出应该会告诉你出了什么问题。通常,错误信息会出现在 "bundler cannot continue" 之前。

原来问题是 rbenv 没有配置为全局状态,导致内部的 ruby 版本与 Mac 提供的版本不匹配,从而引发了错误。通过运行 rbenv global 2.6.5,将 rbenv 配置为使用项目中所需的 ruby 版本,问题得以解决。

在前面评论中 mvizm2015 提到的方法有所帮助,但并没有完全解决问题。问题最终是通过删除 ~/.ruby-version 文件来解决的。这个文件是很久以前创建的,设置了一个完全过时的 ruby 版本,而这个版本并没有被 rbenv 安装。

通过这个回答解决了问题,具体内容可以参考 stackoverflow.com/a/74973580/3968301

0