思考 sphinx 索引重建 ruby 错误

thinking sphinx index rebuild with ruby error

运行 通过 Whenever gem 的 cron 作业,其中 rake "ts:index" 以特定频率设置为 运行,sphinx_index.log 是返回一个奇怪的错误(日志中的唯一信息):

Your Ruby version is 1.9.3, but your Gemfile specified 2.2.3

如果 bundle exec rake ts:rebuild 在服务器上手动为 运行,则进程会正确执行。 (我还没有测试索引是否确实发生并获取更改)。 Ubuntu 服务器确实安装了 2.2.3,尽管它本身可能安装了 1.9.3。

为什么会发生这种情况,其后果是什么?

听起来 cron 没有选择您喜欢的 Ruby 版本。如果您使用的是 RVM,那么 可能会有帮助?我不确定其他 Ruby 版本管理器需要什么。

帕特的回答是正确的调查线索。

Ben Scheirman's 解决方案的工作原理与使用 whenever gem 的应用程序所述相同。要使用正确的 ruby 版本,需要将 rbenv 的 shims 文件夹声明到 PATH。