如何解决这个模糊的脚本错误从rabbitmq/erlang
本文主要针对从Xray 2 -> 3升级后rabbitmq无法启动的情况。如果你试着运行$ XRAY_HOME / app /第三方/ rabbitmq / sbin / rabbitmqctl
二进制(例如运行“rabbitmqctl version”),它返回一个rabbitmqctl_escript:main/1
错误,那么你就遇到了这个问题。这通常是在更定制的安装中,所以我建议确保rabbitmq依赖项(socat和erlang)也作为升级的一部分安装,并且没有丢失。
这个特定的问题实际上似乎是Rabbitmq或Erlang中的一个bug。这个问题是由于rabbitmq二进制文件所在路径中的符号链接造成的,因此,例如,如果默认路径是/ opt / jfrog / x光/ app /第三方/ rabbitmq / sbin / rabbitmqctl
这里有一个符号链接/opt/jfrog/xray -> /data/opt/jfrog/xray所以实际的路径是/数据/ opt / jfrog / x光/ app /第三方/ rabbitmq / sbin / rabbitmqctl
然后因为二进制文件在符号链接上,它就会失败。你可以通过看a来验证它/ opt / jfrog / x光/ app /第三方/ rabbitmq / sbin / rabbitmqctl版本但是失败了。/数据/ opt / jfrog / x光/ app /第三方/ rabbitmq / sbin / rabbitmqctl版本成功,显示路径中的符号链接是问题。我们有时会在旧的自定义设置中看到这种情况,它通常在/xray/data目录中也有符号链接。这完全没问题,唯一的问题是rabbitmq二进制文件路径中的符号链接。要解决这个问题,需要删除文件系统这一部分中的符号链接。二进制位置没有太多数据,它都在$XRAY_HOME/var/data位置,所以符号链接二进制文件不会保存数据或任何东西。
关于这个有很多报道https://github.com/rabbitmq/rabbitmq-server/issues/1679
https://stackoverflow.com/questions/64133705/unable-to-start-rabbitmq-undefined-function-rabbitmqctl-escriptmain-1
但行为本身并不总是很清楚,所以如果你升级和有问题,这是一个好事情运行一个快速检查rabbitmq二进制文件或查看可能的符号链接,以确保这不是一个问题。
