如何解决“statoverride 文件中的未知用户‘elasticsearch’”错误?

aks*_*esh 10 dpkg

我一直在尝试安装 Elastic Search,我已经下载了该elasticsearch-2.3.4.deb文件。当我尝试使用命令时:

sudo dpkg -i elasticsearch-1.7.2.deb
Run Code Online (Sandbox Code Playgroud)

它输出这个错误:

dpkg: unrecoverable fatal error, aborting: unknown user 'elasticsearch' in statoverride file
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

小智 21

就我而言,遵循以下步骤有效:

  • 首先完全卸载您机器上的所有 Elasticsearch 实例:

    apt remove --purge elasticsearch
    apt autoremove
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后,/var/lib/dpkg/statoverride在编辑器中打开文件并删除提及elasticsearch用户的行。

这不是一个理想的解决方案,因为它涉及到手动编辑它们仅通过正常修改的文件dpkg本身,而是运行dpkg-reconfigureapt --reinstall install没有为我工作; 这是最后的手段。

  • 'apt autoremove' 不是必需的,编辑 statoverride 就成功了 (2认同)

小智 9

打开文件

/var/lib/dpkg/statoverride
Run Code Online (Sandbox Code Playgroud)

你应该看到类似的东西:

root elasticsearch 755 /var/log/elasticsearch
Run Code Online (Sandbox Code Playgroud)

或者

root elasticsearch 755 /var/lib/elasticsearch
Run Code Online (Sandbox Code Playgroud)

如果是这样,请运行 dpkg-statoverride --remove:

dpkg-statoverride --remove /var/log/elasticsearch
dpkg-statoverride --remove /var/lib/elasticsearch
Run Code Online (Sandbox Code Playgroud)