安装插件中的某些 gem 时遇到问题

@sam

我无法在插件中安装某些 gem,例如 google-protobuf。该 gem 是 google-cloud-vision gem 的依赖项。

这是一个尝试安装它的插件:GitHub - fzngagan/gem-issue · GitHub

日志
gem install google-protobuf -v 3.13.0 -i /Users/faiz/discenv/discourse/plugins/gem-issue/gems/2.6.3 --no-document --ignore-dependencies --no-user-install
Successfully installed google-protobuf-3.13.0-universal-darwin
1 gem installed
You are specifying the gem google-protobuf in /Users/faiz/discenv/discourse/plugins/gem-issue/plugin.rb, however it does not exist!
Looked for: /Users/faiz/discenv/discourse/plugins/gem-issue/gems/2.6.3/specifications/google-protobuf-3.13.0.gemspec

出现此问题的原因是 .gemspec 文件的名称与代码中假设的 spec_file 名称不匹配。

依我看来,这种情况可能仅在使用平台特定的 gem 时发生,因为如果 gem 依赖平台,平台名称会被添加到 gem 名称中。这一点在此处有说明:Specification Reference - RubyGems Guides

3 个赞

不清楚你为什么在这个话题中提到了我?我对我们自定义的 gem 解析了解不多,抱歉。

1 个赞

我查看了 blame 记录,看来你对这个文件的提交最多吧?很乐意有人给我指个方向 :slight_smile:

我认为 @sam 可能能够提供帮助。他编写了插件的 gem 导入功能。

3 个赞

好的,感谢提供线索。

@sam 你有机会看一下吗?

@sam 能否请你在这一点上帮助 @fzngagan?我正在赞助这个插件:

该插件将向所有人开放。保持论坛不含可能造成伤害的图片至关重要,这也有助于避免因违规内容而受到 Google AdSense 的处罚。

1 个赞

看来这里似乎有个 bug,不如提交一个 PR 来尝试修复这个怪癖?

2 个赞

这是一个修复该问题的非常简单的 PR。

我尝试寻找一种巧妙的方法来解决这个问题,这样开发人员就不必担心平台问题,但没有找到。如果我发现更好的解决方案,很乐意在此基础上进行改进。

另外,给开发人员的一个提示:在开发期间,您可以简单地将 gem 添加到 discourse 的 gemfile 中,而无需为此抓狂。只需在部署时才需要担心所有这些。

5 个赞

感谢合并,@sam

3 个赞