我正在尝试将Mac计算机上的elasticsearch
从6.8.4降级到5.6。但是不知何故,我搞砸了现有的6.8.4安装,现在既无法修复当前安装的版本,也无法安装5.6
详细信息:
我已经在系统上正确安装了6.8.4,并且能够成功打入http://localhost:9200/端口并查看版本信息和所有其他详细信息。但是由于依赖性,我不得不将版本降级到5.6
我遵循了本指南https://gist.github.com/govindpatel/0660b33a343b807664972b53c3b12ca0,并通过删除plist
条目和其他详细信息来搞怪6.8.4的安装。现在,当我尝试通过输入$ elasticsearch
来启动Elasticsearch服务时,我得到:-bash: elasticsearch: command not found
和$ brew service restart elasticsearch
给我Error: Unknown command: service
但是,当我启动该命令时,我仍然可以看到6.8.4:
$ brew info elasticsearch
elasticsearch: stable 6.8.4, HEAD
Distributed search & analytics engine
https://www.elastic.co/products/elasticsearch
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/elasticsearch.rb
==> Requirements
Required: java = 1.8 ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
Data: /usr/local/var/lib/elasticsearch/
Logs: /usr/local/var/log/elasticsearch/elasticsearch_Puneet.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config: /usr/local/etc/elasticsearch/
To have launchd start elasticsearch now and restart at login:
brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
elasticsearch
==> Analytics
install: 8,690 (30 days), 23,748 (90 days), 122,267 (365 days)
install_on_request: 8,233 (30 days), 22,565 (90 days), 114,157 (365 days)
build_error: 0 (30 days)
我什至尝试安装5.6(通过Homebrew)-brew install elasticsearch@5.6
,并将PATH
设置为~/.bash_profile
的第一位,但是没有运气! :(
请提供帮助和建议:
当前详细信息:查看elasticsearch是否正在运行:$ launchctl list | grep elasticsearch
,我得到:- 1 homebrew.mxcl.elasticsearch@5.6
,但我当前未安装此软件(已附加o / p)-$ brew uninstall elasticsearch@5.6
〜> Error: No such keg: /usr/local/Cellar/elasticsearch@5.6
[UPDATE-1]
发布此内容后,我尝试再次运行ES安装命令:brew install elasticsearch
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
No changes to formulae.
==> Downloading
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.8.4.tar.gz
Already downloaded: /Library/Caches/Homebrew/downloads/elasticsearch-oss-6.8.4.tar.gz
==> Caveats
Data: /usr/local/var/lib/elasticsearch/
Logs: /usr/local/var/log/elasticsearch/elasticsearch_Puneet.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config: /usr/local/etc/elasticsearch/
To have launchd start elasticsearch now and restart at login:
brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
elasticsearch
==> Summary
? /usr/local/Cellar/elasticsearch/6.8.4: 133 files, 103.2MB, built in 6 seconds
,然后启动服务$ brew services start elasticsearch
〜> ==> Successfully started
elasticsearch (label: homebrew.mxcl.elasticsearch)
。现在,当我尝试访问端口:http://localhost:9200时,它正在工作(虽然从0开始安装,但已修复了该问题!)
{
"name" : "DwQRyf7",
"cluster_name" : "elasticsearch_Puneet",
"cluster_uuid" : "hLAu9onQSiuQHOpm_e9IKw",
"version" : {
"number" : "6.8.4",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "bca0c8d",
"build_date" : "2019-10-16T06:19:49.319352Z",
"build_snapshot" : false,
"lucene_version" : "7.7.2",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
现在唯一的问题是,如何系统地将其降级?
[UPDATE-2]
现在我有6.8.4,我已经使用brew search elasticsearch
检查了其他版本,并得到5.6。然后我用brew install elasticsearch@5.6
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
No changes to formulae.
==> Downloading https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz
Already downloaded: /Library/Caches/Homebrew/downloads/3d7cc028f605699065bd403b0a2383db8d7413c570df57e26fc87a735126c96c--elasticsearch-5.6.16.tar.gz
==> Caveats
Data: /usr/local/var/elasticsearch/elasticsearch_Puneet/
Logs: /usr/local/var/log/elasticsearch/elasticsearch_Puneet.log
Plugins: /usr/local/opt/elasticsearch@5.6/libexec/plugins/
Config: /usr/local/etc/elasticsearch/
plugin script: /usr/local/opt/elasticsearch@5.6/libexec/bin/elasticsearch-plugin
elasticsearch@5.6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have elasticsearch@5.6 first in your PATH run:
echo 'export PATH="/usr/local/opt/elasticsearch@5.6/bin:$PATH"' >> ~/.bash_profile
To have launchd start elasticsearch@5.6 now and restart at login:
brew services start elasticsearch@5.6
Or, if you don't want/need a background service you can just run:
/usr/local/opt/elasticsearch@5.6/bin/elasticsearch
==> Summary
? /usr/local/Cellar/elasticsearch@5.6/5.6.16: 106 files, 36.0MB, built in 6 seconds
然后我将5.6添加到$PATH
。现在,当我尝试使用brew switch elasticsearch 5.6
切换elasticsearch版本时,我得到了:
Error: elasticsearch does not have a version "5.6" in the Cellar.
elasticsearch installed versions: 6.8.4
知道我在这里缺少什么吗?
答案 0 :(得分:1)
看起来像是经过一段时间的故障排除后找到的解决方案。
为了在您的开发机器上维护多个版本的elasticsearch,您需要执行以下操作:
比方说我已经安装了6.8.4,并且我还想要另一个版本。为了同时维护两者,请首先输入以下内容检查系统(mac)的所有版本:brew search elasticsearch
,并且我的系统支持ES的3个版本:
要获得2.4,必须执行以下操作:
$ brew install elasticsearch@2.4
# After installation type:
$ brew services stop elasticsearch
# above command will stop elasticsearch (lastest stable) service
# add 2.4 to $PATH
$ echo 'export PATH="/usr/local/opt/elasticsearch@2.4/bin:$PATH"' >> ~/.bash_profile
# start the service of 2.4
$ brew services start elasticsearch@2.4
# check for the service/installation
$ launchctl list | grep elasticsearch
# above command should show you a port
现在您可以在浏览器中点击http://localhost:9200,它应该显示2.4。
要切换回最新的稳定版本,请执行以下操作:
$ brew services stop elasticsearch
# remove entry from $PATH variable
$ brew services start elasticsearch
在我看来brew switch elasticsearch [VERSION]
无效