При попытке использовать rabbitmqctl
, Я получаю следующую ошибку:
$ which rabbitmqctl
/usr/sbin/rabbitmqctl
$ sudo rabbitmqctl status
/usr/lib/rabbitmq/bin/rabbitmqctl: line 29: exec: erl: not found
(/usr/sbin/rabbitmqctl
скорее всего вызывает /usr/lib/rabbitmq/bin/rabbitmqctl
в его источнике: /usr/lib/rabbitmq/bin/${SCRIPT}
- гадание ${SCRIPT}
оценивает rabbitmqctl
)
Однако при простом доступе erl
из оболочки я достигаю оболочки erlang, как и ожидалось
$ which erl
/usr/local/bin/erl
$ ls -la /usr/local/bin/erl
lrwxrwxrwx 1 root root 21 Jul 18 02:03 /usr/local/bin/erl -> ../lib/erlang/bin/erl
$ erl
Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:16:16] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.9.1 (abort with ^G)
1>
Информация о настройке:
otp_src_R15B01.tar.gz
rabbitmq-server-2.8.4-1.noarch.rpm
. Конфигурация по умолчанию (без файлов конфигурации).Дорожка:
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
Посмотрев в источник rabbitmqctl
, кажется, это всего лишь простой вызов erl
, никакой магии:
exec erl \
-pa "${RABBITMQ_HOME}/ebin" \
-noinput \
-hidden \
${RABBITMQ_CTL_ERL_ARGS} \
-sname rabbitmqctl$$ \
-s rabbit_control \
-nodename $RABBITMQ_NODENAME \
-extra "$@"
Кажется, не могу понять, в чем проблема на самом деле ...
Как и ожидалось, это был PATH
проблема:
$ sudo which erl
which: no erl in (/sbin:/bin:/usr/sbin:/usr/bin)
Решили эту проблему, создав символическую ссылку для erl
:
sudo ln -s /usr/local/bin/erl /usr/bin/erl
Может быть, символическая ссылка на /usr/bin
можно как-то избежать (/usr/local/...
или что-то).