使用Brew安装elasticsearch@2.0.0失败,如何在Rails应用中安装?
如何在Rails应用中安装Elasticsearch 2.0.0版本?
遇到这个问题很正常,因为Elasticsearch 2.0.0是相当老旧的版本了,Homebrew官方仓库早就不再维护这个版本的安装配方了。下面给你几个可行的解决办法,你可以根据自己的情况选择:
方法一:从Homebrew历史仓库安装
这种方法利用Homebrew仓库的历史commit记录来获取旧版本的安装配方:
- 第一步:先拉取完整的Homebrew core仓库历史(解决错误提示里的浅克隆问题):
git -C "$(brew --repo homebrew/core)" fetch --unshallow - 第二步:查找包含elasticsearch@2.0.0配方的commit记录:
执行后会输出类似git -C "$(brew --repo homebrew/core)" log --oneline --grep='elasticsearch@2.0.0'abc1234 Add elasticsearch@2.0.0 formula的记录,把前面的哈希值(比如abc1234)复制下来。 - 第三步:切换到该commit并安装:
cd "$(brew --repo homebrew/core)" git checkout abc1234 -- Formula/elasticsearch@2.0.0.rb brew install elasticsearch@2.0.0 - 第四步:安装完成后,记得切回Homebrew的master分支,避免影响后续的brew操作:
git checkout master
方法二:手动下载二进制包安装
如果觉得历史仓库的操作太繁琐,可以直接手动安装官方二进制包:
- 第一步:找到Elasticsearch 2.0.0的官方二进制包(对应macOS的tar.gz格式),下载到本地。
- 第二步:解压包到指定目录,比如
/usr/local:tar -xzf elasticsearch-2.0.0.tar.gz -C /usr/local/ - 第三步:创建软链接,方便在任意目录调用Elasticsearch命令:
ln -s /usr/local/elasticsearch-2.0.0/bin/elasticsearch /usr/local/bin/elasticsearch - 第四步:启动服务验证:
打开浏览器访问elasticsearchhttp://localhost:9200,如果返回JSON格式的服务信息,说明安装成功。
方法三:使用Docker安装(推荐)
如果你的系统已经装了Docker,这是最省心的方式,完全不会和本地其他版本的Elasticsearch冲突:
- 第一步:拉取Elasticsearch 2.0.0的Docker镜像:
docker pull elasticsearch:2.0.0 - 第二步:启动容器并映射必要的端口(9200用于HTTP请求,9300用于节点通信):
docker run -d -p 9200:9200 -p 9300:9300 elasticsearch:2.0.0 - 第三步:验证服务状态:
收到JSON响应就代表服务正常运行了。curl http://localhost:9200
针对Rails应用的额外配置
不管用哪种方法安装了Elasticsearch 2.0.0,都要确保Rails项目里的客户端gem版本和服务端兼容。在你的Gemfile里添加指定版本的gem:
gem 'elasticsearch-rails', '~> 2.0' gem 'elasticsearch-model', '~> 2.0'
然后执行bundle install完成客户端的安装。
内容的提问来源于stack exchange,提问作者ihtishaam ahmed
相关产品推荐
相关产品推荐

