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

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

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

sudo dpkg -i elasticsearch-1.7.2.deb

它输出此错误:

dpkg: unrecoverable fatal error, aborting: unknown user 'elasticsearch' in statoverride file

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

答案1

就我而言,按照以下步骤操作有效:

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

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

这不是一个理想的解决方案,因为它涉及手动编辑通常仅由其dpkg自身修改的文件,但运行时dpkg-reconfigureapt --reinstall install我来说不起作用;这是最后的手段。

答案2

打开文件

/var/lib/dpkg/statoverride

你应该看到类似这样的内容:

root elasticsearch 755 /var/log/elasticsearch

或者

root elasticsearch 755 /var/lib/elasticsearch

如果是的话,运行 dpkg-statoverride --remove:

dpkg-statoverride --remove /var/log/elasticsearch
dpkg-statoverride --remove /var/lib/elasticsearch

答案3

我只需要

sudo dpkg-statoverride --remove /var/lib/elasticsearch
sudo dpkg-statoverride --remove /var/log/elasticsearch

答案4

对我来说,问题是我重命名了默认用户,以符合我服务器上的命名方案。

我通过编辑解决了这个问题

/var/lib/dpkg/statoverride

文件并将旧名称替换为新名称。无需卸载应用程序。

相关内容