在我们安装的 Ubuntu 14.04 系统上elasticsearch 2.3.4
。
系统升级至16.04
尝试升级至apt-get update
& 。upgrade
elasticsearch 2.4.4
但是,我们现在收到了这个错误:
Preparing to unpack .../elasticsearch_2.4.4_all.deb ...
/var/lib/dpkg/tmp.ci/preinst: 43: /etc/default/elasticsearch: SysV: not found
dpkg: error processing archive /var/cache/apt/archives/elasticsearch_2.4.4_all.deb (--unpack):
subprocess new pre-installation script returned error exit status 127
/var/lib/dpkg/tmp.ci/postrm: 43: /etc/default/elasticsearch: SysV: not found
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 127
...
Errors were encountered while processing:
/var/cache/apt/archives/elasticsearch_2.4.4_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
我努力了:
apt-get install -f
dpkg: error processing package elasticsearch (--configure): package elasticsearch is not ready for configuration cannot configure (current status 'half-installed') Processing triggers for libc-bin (2.23-0ubuntu5) ... Errors were encountered while processing: elasticsearch E: Sub-process /usr/bin/dpkg returned an error code (1)
dpkg --configure -a
no output
apt-get install --reinstall elasticsearch
Preparing to unpack .../elasticsearch_2.4.4_all.deb ... /var/lib/dpkg/tmp.ci/preinst: 43: /etc/default/elasticsearch: SysV: not found dpkg: error processing archive /var/cache/apt/archives/elasticsearch_2.4.4_all.deb (--unpack): subprocess new pre-installation script returned error exit status 127 /var/lib/dpkg/tmp.ci/postrm: 43: /etc/default/elasticsearch: SysV: not found dpkg: error while cleaning up: subprocess new post-removal script returned error exit status 127 Errors were encountered while processing: /var/cache/apt/archives/elasticsearch_2.4.4_all.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
dpkg --remove --force-remove-reinstreq elasticsearch
dpkg: warning: overriding problem because --force enabled: dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removal (Reading database ... 157552 files and directories currently installed.) Removing elasticsearch (2.3.4) ... /var/lib/dpkg/info/elasticsearch.postrm: 43: /etc/default/elasticsearch: SysV: not found dpkg: error processing package elasticsearch (--remove): subprocess installed post-removal script returned error exit status 127 Errors were encountered while processing: elasticsearch
dpkg --remove --force-all elasticsearch
elasticsearch dpkg: warning: overriding problem because --force enabled: dpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removal (Reading database ... 157552 files and directories currently installed.) Removing elasticsearch (2.3.4) ... /var/lib/dpkg/info/elasticsearch.postrm: 43: /etc/default/elasticsearch: SysV: not found dpkg: error processing package elasticsearch (--remove): subprocess installed post-removal script returned error exit status 127 Errors were encountered while processing: elasticsearch
dpkg --purge elasticsearch
dpkg: error processing package elasticsearch (--purge): package is in a very bad inconsistent state; you should reinstall it before attempting a removal Errors were encountered while processing: elasticsearch
我甚至尝试从 systemd 切换回 upstart-sysv,但重启后什么都没有任何变化。
欢迎任何想法。
答案1
在 /etc/default/elasticsearch 中有一个部分
SysV init.d
# When executing the init script, this user will be used to run the elasticsearch service.
# The default value is 'elasticsearch' and is declared in the init.d file.
# Note that this setting is only used by the init script. If changed, make sure that
# the configured user can read and write into the data, work, plugins and log directories.
# For systemd service, the user is usually configured in file /usr/lib /systemd/system/elasticsearch.service
ES_USER=elasticsearch
ES_GROUP=elasticsearch
我对整个部分进行了评论。
然后安装就可以继续了。
它实际上提示了我“安装程序包维护版本/保留系统版本”的问题,差异表明安装的目的是无论如何都要注释掉该部分。