为啥装了erlang,还报错erl: command not found?

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


问题背景:

在一台不通外网的服务器上装rabbitmq,然后在启动的时候,遇到了报错

"/usr/lib/rabbitmq/bin/rabbitmq-server: line 80: erl: command not found"的报错,于是展开了破案。

复制代码
[root@host1 ~]# rabbitmq-server
/usr/lib/rabbitmq/bin/rabbitmq-server: line 80: erl: command not found
[root@host1 ~]#

排查解决:

1. 手动执行erl命令,发现是成功的,说明之前装的erl命令没问题。

2. 查看环境变量配置,确认rabbitmq位置:

复制代码
[root@host1 ~]# cat /etc/profile
# /etc/profile
......   #省略若干行
  export PATH=$PATH:/usr/local/erlang/bin
  export PATH=$PATH:/usr/lib/rabbitmq/bin
[root@host1 ~]#

3. 使用环境变量路径中的文件启动,是成功的:

复制代码
[root@host1 ~]# sh /usr/lib/rabbitmq/bin/rabbitmq-server
....  #省略
  ######  ##        /var/log/rabbitmq/rabbit@host1-sasl.log
              Starting broker...
 completed with 0 plugins.

4. 确认rabbitmq-server命令执行的脚本的位置

复制代码
[root@host1 ~]# which rabbitmq-server
/sbin/rabbitmq-server
[root@host1 ~]#

5. 比较两个文档,发现并不是同一个文件,/sbin/rabbitmq-server是之前有人装了rabbitmq后没有清理干净的遗留文件。。。

于是把可以执行的/usr/lib/rabbitmq/bin/rabbitmq-server做软个连接到/sbin下面去替代原来执行报错的/sbin/rabbitmq-server文件:

复制代码
[root@host1 sbin]# mv /sbin/rabbitmq-server /sbin/rabbitmq-server.bak
[root@host1 sbin]# ln -s /usr/lib/rabbitmq/bin/rabbitmq-server /sbin/rabbitmq-server
[root@host1 sbin]# ln -s /usr/lib/rabbitmq/bin/rabbitmq-env /sbin/rabbitmq-env

然后启动rabbitmq,启动成功。

相关推荐
隐积4 小时前
3.1.7.Qt容器大家族(3):QVariant——万能盒子
开发语言·qt
六点_dn6 小时前
RabbitMQ学习笔记-部署和使用
笔记·学习·rabbitmq
名字还没想好☜6 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
初级代码游戏7 小时前
iOS开发 Swift 速记1:变量和基本数据类型
开发语言·ios·swift
酷在前行8 小时前
【R生态】PERMANOVA 进阶实战:距离选择、PERMDISP、两两比较与受限置换(保姆级教程)
开发语言·r语言
cxr8288 小时前
Graphify vs GitNexus vs CodeGraph — 三工具架构深度对比
开发语言·架构·知识图谱
废弃的小码农10 小时前
功能测试--Day07--Python编程基础
开发语言·python
fengci.10 小时前
Microweber CMS 未授权路径穿越漏洞(CVE-2026-65694)
android·开发语言·前端·学习·php
程序员zgh10 小时前
C++ 拷贝赋值运算符 详解
c语言·开发语言·c++
念何架构之路10 小时前
restartmanager-重启管理子系统
java·开发语言