我在 cloud9 工作区中运行的 Ubuntu 14 容器中安装了 solr-jetty 包。
要安装该包,我运行以下命令:
sudo apt-get install solr-jetty
安装没有返回任何错误。然后我尝试使用以下命令启动 solr:
sudo service jetty start
但我收到以下错误:
* Starting Jetty servlet engine. jetty
/etc/init.d/jetty: 274: /etc/init.d/jetty: /usr/sbin/rotatelogs: not found
* Jetty servlet engine started, reachable on http://host-solr-3694477:8983/. jetty
...fail!
在 jetty 的日志文件中我收到以下消息:
failed setting default capabilities.
set_caps(CAPS) failed for user 'jetty'
Service exit with a return value of 4
问题似乎是因为 jetty 用户没有权限调用 set_caps(CAPS)。我该如何解决这个问题?
答案1
解决方法(但作为解决方案,这是一个糟糕的想法)
我在 Ubuntu 12.04 上为我们的开发流程中使用的容器构建 solr 4.6 时遇到了同样的问题。
论坛上有关于将存储从默认的 AUFS 更改为 btrfs 的传闻讨论,但这对我来说不起作用。
最后(因为这仅适用于开发),我将 /etc/init.d/jetty 脚本中的 jetty 用户从“jetty”更改为“root”,并且成功了。
就像我说的 - 除了开发系统之外,它并不理想并且不推荐用于任何其他系统。