Назад | Перейти на главную страницу

RabbitMQ: erl не найден

При попытке использовать 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>

Информация о настройке:

Дорожка:

$ 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/... или что-то).