elasticdump安装失败:依赖缺失问题求助
解决离线环境下elasticdump RPM安装依赖问题
你遇到的是典型的离线RPM包依赖缺失问题,结合你的环境限制,咱们一步步来搞定:
1. 先修复Node.js路径依赖错误
RPM包提示找不到/usr/bin/node,这是因为你通过二进制安装的node不在系统默认检测路径里。解决方法很简单:
- 先定位你当前node的实际安装路径,执行命令:
假设输出是which node/usr/local/bin/node(根据你实际安装路径调整即可) - 创建软链接将node指向系统默认路径:
ln -s /usr/local/bin/node /usr/bin/node - 验证软链接是否生效:
输出显示指向你实际的node路径就没问题了,这样RPM包就能找到node依赖。ls -l /usr/bin/node
2. 离线准备所需的NPM依赖包
RPM还要求几个特定版本的npm包,你需要在一台能联网的**同系统(CentOS 7)**机器上提前下载这些包的离线安装文件:
- 先在联网机器上安装和你离线机器完全相同版本的node(v10.15.1)和npm(6.4.1)
- 创建临时目录存放依赖包:
mkdir elasticdump-deps && cd elasticdump-deps - 执行命令下载指定版本的依赖包(会生成对应的
.tgz格式离线包):npm pack JSONStream async@"<2" optimist request@">=2 <3" - 把生成的所有
.tgz文件传到你的离线机器上,比如放到/root/elasticdump-deps目录
3. 离线安装NPM依赖
在离线机器上,进入存放tar包的目录,全局安装这些依赖(全局安装才能让RPM包检测到):
cd /root/elasticdump-deps npm install -g ./JSONStream-*.tgz npm install -g ./async-1.*.tgz npm install -g ./optimist-*.tgz npm install -g ./request-2.*.tgz
4. 重新安装elasticdump RPM包
现在所有依赖都满足了,再执行你的安装命令:
rpm -Uvh elasticdump-2.2.0-2.el7.noarch.rpm
备选方案:直接用NPM离线安装elasticdump
如果你不想折腾RPM的依赖,也可以跳过RPM包,直接用npm离线安装elasticdump:
- 在联网机器上下载elasticdump的离线包:
会得到npm pack elasticdump@2.2.0elasticdump-2.2.0.tgz - 同时按照上面的方法下载所有依赖包
- 把elasticdump包和所有依赖包传到离线机器,先安装依赖,再安装elasticdump:
npm install -g ./elasticdump-2.2.0.tgz
内容的提问来源于stack exchange,提问作者Patryk
相关产品推荐
相关产品推荐

