0

我们正在做一个应用程序,我们必须在其中找到消息触发到 RabbitMQ 的位置。我们发现消息正在从 process.rb 文件发布到 RabbitMQ。我们尝试进行休息调用以获取将发布到 RabbitMQ 的消息。所以我们在我们的 ubuntu 机器中添加了一个 gem rest-client-1.8.0。我们尝试在 server/process.rb 中添加一些代码,并且我们在代码中添加了 require 'rest-client'。

我添加了标题“rest-client”,如下所示。

require "sensu/server/filter"
require "sensu/server/mutate"
require "sensu/server/handle"
require "rest-client"

错误:

/opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- rest-client (LoadError) from /opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:inrequire' 来自 /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu- 0.20.3/lib/sensu/server/process.rb:5:in<top (required)>' from /opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in来自 /opt/sensu/embedded/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/bin/sensu-server:7:in来自 /opt /sensu/bin/sensu-server:23:in load' from /opt/sensu/bin/sensu-server:23:in'

Sensu 安装在我们 ubuntu 机器的路径“/opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-0.20.3/lib/sensu”中。我们尝试在 sensu 中安装 rest-client gem,因为我们发现 Sensu 将在其自己的 Ruby 上运行。但我们面临同样的问题。你能告诉我们必须在哪里安装 gem 吗?有没有替代方法?我必须使用消息,并且必须在休息调用中传递有效负载。

4

3 回答 3

0

您正在使用嵌入式 ruby​​,并且此错误消息提示您没有在那里安装 rest-client gem。如果你这样做,它并不是很有用, gem install rest-client 因为这不是你将要使用的

你想要 /opt/sensu/embedded/bin/gem install rest-client,以便它被安装到嵌入式红宝石的意义

于 2016-06-09T16:56:49.367 回答
0

您的 Sensu 安装安装有一个嵌入式ruby发行版。找到您的感觉,默认为/opt/sensu/embedded,然后gem从其中bin包含的目录运行。这应该将宝石应用到正确的红宝石位置。

于 2016-06-09T12:09:00.920 回答
0

这个问题太老了,已经回答了,但我正在努力设置基于 Amazon ECS 的新 AMI,而这个插件因上述错误而吸了我一整天,所以没有任何工作,尝试了一切。

即使更新所有内容但仍然没有运气,

然后尝试使用特定版本并解决我的问题。

/opt/sensu/embedded/bin/gem install rest-client -v=1.7.2

这篇文章绝对值得称赞。

https://docs.bmc.com/docs/ReleaseProcessMgt/50/installing/installing-alternate-ruby-interpreter

于 2019-04-08T11:43:58.160 回答