brew服务启动mongodb-community@4.0失败-未初始化的常量

时间:2019-05-05 03:51:21

标签: mongodb homebrew

我已按照MongoDB docs上的说明使用自制软件在Mac上安装MongoDB:

brew tap mongodb/brew
brew install mongodb-community@4.0

然后我可以使用以下命令在前台运行

mongod --config /usr/local/etc/mongod.conf

但是,当尝试使用以下命令将其作为服务启动时:

brew services start mongodb-community@4.0

我收到此错误:

Error: mongodb-community: uninitialized constant #<Class:0x00007ff189061008>::Gem

运行brew doctor时也会出现此错误:

Warning: Some installed formulae are not readable:
  mongodb-community: uninitialized constant #<Class:0x00007ffd903152a0>::Gem

为什么会这样?我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:8)

这是mongodb-community公式的错误。 An issue has been filed和维护者a solution founda pull request with the fix已打开。

在此期间,您可以自己修复错误。公式中的This line引发异常:

Gem::Version.new(v['version'])

因为尚未导入Gem类。添加导入:

require 'rubygems'

解决了问题。您可以通过在计算机上查找和编辑公式来本地执行此操作。可能在此文件中:

/usr/local/Homebrew/Library/Taps/mongodb/homebrew-brew/Formula/mongodb-community.rb

更新:社区贡献者已在上游修复此问题。如果您仍然遇到此问题,则可能需要运行brew更新

答案 1 :(得分:2)

我知道这不是正确的答案,因为我们正在谈论使用以下方法注册服务:

brew services start mongodb-community

但是我以这种方式已解决服务注册问题:

sudo cp /usr/local/Cellar/mongodb-community/4.0.9/homebrew.mxcl.mongodb-community.plist /Library/LaunchAgents/

launchctl load -w /Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist

launchctl start mongodb-community