rabbitMQ版本2.4.1 使用
构建失败[]escript: script failed: {function_clause,
[{erl_parse,
build_type,
[{atom,159,ok_or_error2},
[{type,pid,[]},{type,any,[]}]]},
{erl_parse,yeccpars2,7},
{erl_parse,yeccpars0,2},
{epp,parse_file,2},
{epp,parse_file,2},
{epp,parse_file,2},
{epp,parse_file,2},
{epp,parse_file,2}]}
make: *** No rule to make target `deps.mk', needed by `ebin/
bpqueue.beam'. Stop.
这是命令的历史。
$ uname -a SunOS dev21 5.10 Generic_141445-09 i86pc i386 i86pc$ erl --version Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [kernel-poll:false] $ python --version Python 2.6.2 $ make --version GNU Make 3.81 $ wget 'http://www.rabbitmq.com/rabbitmq-signing-key-public.asc' $ wget 'http://www.rabbitmq.com/releases/rabbitmq-server/v2.4.1/ rabbitmq-server-2.4.1.zip.asc' $ wget 'http://www.rabbitmq.com/releases/rabbitmq-server/v2.4.1/ rabbitmq-server-2.4.1.zip' $ gpg --verify rabbitmq-server-2.4.1.zip.asc rabbitmq-server-2.4.1.zip gpg: Signature made Thu Apr 07 09:04:47 2011 PDT using DSA key ID 056E8E56 gpg: Good signature from "RabbitMQ Release Signing Key <i...@rabbitmq.com>" $ unzip rabbitmq-server-2.4.1.zip $ cd rabbitmq-server-2.4.1 $ make clean /bin/sh: python2.5: not found rm -f ebin/*.beam rm -f ebin/rabbit.app ebin/rabbit.boot ebin/rabbit.script ebin/ rabbit.rel rm -f include/rabbit_framing.hrl src/rabbit_framing_amqp_*.erl codegen.pyc rm -f docs/*.[0-9].gz docs/*.man.xml docs/*.erl src/ rabbit_ctl_usage.erl rm -f rabbit.plt rm -f deps.mk $ make /bin/sh: python2.5: not found python codegen.py body codegen/amqp-rabbitmq-0.9.1.json src/ rabbit_framing_amqp_0_9_1.erl python codegen.py body codegen/amqp-rabbitmq-0.8.json src/ rabbit_framing_amqp_0_8.erl xsltproc --stringparam modulename "`basename src/ rabbit_ctl_usage.erl .erl`" \ docs/usage.xsl docs/rabbitmqctl.1.xml > src/ rabbit_ctl_usage.erl.tmp sed -e 's/"/\\"/g' -e 's/%QUOTE%/"/g' src/rabbit_ctl_usage.erl.tmp > src/rabbit_ctl_usage.erl.tmp2 fold -s src/rabbit_ctl_usage.erl.tmp2 > src/rabbit_ctl_usage.erl.tmp3 mv src/rabbit_ctl_usage.erl.tmp3 src/rabbit_ctl_usage.erl rm src/rabbit_ctl_usage.erl.tmp src/rabbit_ctl_usage.erl.tmp2 python codegen.py --ignore-conflicts header codegen/amqp- rabbitmq-0.9.1.json codegen/amqp-rabbitmq-0.8.json include/ rabbit_framing.hrl rm -f deps.mk echo src/bpqueue.erl:src/delegate.erl:src/delegate_sup.erl:src/ file_handle_cache.erl:src/gatherer.erl:src/gen_server2.erl:src/ gm.erl:src/gm_soak_test.erl:src/gm_speed_test.erl:src/gm_tests.erl:src/ pg_local.erl:src/priority_queue.erl:src/rabbit.erl:src/ rabbit_access_control.erl:src/rabbit_alarm.erl:src/ rabbit_amqqueue.erl:src/rabbit_amqqueue_process.erl:src/ rabbit_amqqueue_sup.erl:src/rabbit_auth_backend.erl:src/ rabbit_auth_backend_internal.erl:src/rabbit_auth_mechanism.erl:src/ rabbit_auth_mechanism_amqplain.erl:src/ rabbit_auth_mechanism_cr_demo.erl:src/ rabbit_auth_mechanism_plain.erl:src/rabbit_backing_queue.erl:src/ rabbit_basic.erl:src/rabbit_binary_generator.erl:src/ rabbit_binary_parser.erl:src/rabbit_binding.erl:src/ rabbit_channel.erl:src/rabbit_channel_sup.erl:src/ rabbit_channel_sup_sup.erl:src/rabbit_client_sup.erl:src/ rabbit_command_assembler.erl:src/rabbit_connection_sup.erl:src/ rabbit_control.erl:src/rabbit_direct.erl:src/ rabbit_error_logger.erl:src/rabbit_error_logger_file_h.erl:src/ rabbit_event.erl:src/rabbit_exchange.erl:src/ rabbit_exchange_type.erl:src/rabbit_exchange_type_direct.erl:src/ rabbit_exchange_type_fanout.erl:src/ rabbit_exchange_type_headers.erl:src/ rabbit_exchange_type_topic.erl:src/rabbit_framing.erl:src/ rabbit_guid.erl:src/rabbit_heartbeat.erl:src/rabbit_limiter.erl:src/ rabbit_log.erl:src/rabbit_memory_monitor.erl:src/rabbit_misc.erl:src/ rabbit_mnesia.erl:src/rabbit_msg_file.erl:src/rabbit_msg_store.erl:src/ rabbit_msg_store_ets_index.erl:src/rabbit_msg_store_gc.erl:src/ rabbit_msg_store_index.erl:src/rabbit_net.erl:src/ rabbit_networking.erl:src/rabbit_node_monitor.erl:src/ rabbit_prelaunch.erl:src/rabbit_queue_collector.erl:src/ rabbit_queue_index.erl:src/rabbit_reader.erl:src/ rabbit_registry.erl:src/rabbit_restartable_sup.erl:src/ rabbit_router.erl:src/rabbit_sasl_report_file_h.erl:src/ rabbit_ssl.erl:src/rabbit_sup.erl:src/rabbit_tests.erl:src/ rabbit_tests_event_receiver.erl:src/rabbit_types.erl:src/ rabbit_upgrade.erl:src/rabbit_upgrade_functions.erl:src/ rabbit_variable_queue.erl:src/rabbit_version.erl:src/ rabbit_vhost.erl:src/rabbit_writer.erl:src/supervisor2.erl:src/ tcp_acceptor.erl:src/tcp_acceptor_sup.erl:src/tcp_listener.erl:src/ tcp_listener_sup.erl:src/test_sup.erl:src/vm_memory_monitor.erl:src/ worker_pool.erl:src/worker_pool_sup.erl:src/worker_pool_worker.erl:src/ rabbit_framing_amqp_0_9_1.erl:src/rabbit_framing_amqp_0_8.erl:src/ rabbit_ctl_usage.erl:include/gm_specs.hrl:include/rabbit.hrl:include/ rabbit_auth_backend_spec.hrl:include/ rabbit_auth_mechanism_spec.hrl:include/ rabbit_backing_queue_spec.hrl:include/ rabbit_exchange_type_spec.hrl:include/rabbit_msg_store.hrl:include/ rabbit_msg_store_index.hrl:include/rabbit_framing.hrl: | escript generate_deps deps.mk ebin []escript: script failed: {function_clause, [{erl_parse, build_type, [{atom,159,ok_or_error2}, [{type,pid,[]},{type,any,[]}]]}, {erl_parse,yeccpars2,7}, {erl_parse,yeccpars0,2}, {epp,parse_file,2}, {epp,parse_file,2}, {epp,parse_file,2}, {epp,parse_file,2}, {epp,parse_file,2}]} make: *** No rule to make target `deps.mk', needed by `ebin/ bpqueue.beam'. Stop.
Again, the notable error was
rabbit_msg_store_index.hrl:include/rabbit_framing.hrl: | escript generate_deps deps.mk ebin []escript: script failed: {function_clause, [{erl_parse, build_type, [{atom,159,ok_or_error2}, [{type,pid,[]},{type,any,[]}]]}, {erl_parse,yeccpars2,7}, {erl_parse,yeccpars0,2}, {epp,parse_file,2}, {epp,parse_file,2}, {epp,parse_file,2}, {epp,parse_file,2}, {epp,parse_file,2}]} make: *** No rule to make target `deps.mk', needed by `ebin/bpqueue.beam'. Stop.*
答案 0 :(得分:1)
问题是使用的erlang版本。
这是我的完整解决方案(最初发布here))
# My version of Sun OS (Solaris).
$ uname -a
SunOS dev21 5.10 Generic_141445-09 i86pc i386 i86pc
# my version of erlang (the problem source)
$ erl --version
Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0]
[kernel-poll:false]
# making rabbitMQ server version 2.4.1 (here is the failure)
$ make
...
[]escript: script failed: {function_clause,
[{erl_parse,
build_type,
[{atom,159,ok_or_error2},
[{type,pid,[]},{type,any,[]}]]},
{erl_parse,yeccpars2,7},
{erl_parse,yeccpars0,2},
{epp,parse_file,2},
{epp,parse_file,2},
{epp,parse_file,2},
{epp,parse_file,2},
{epp,parse_file,2}]}
make: *** No rule to make target `deps.mk', needed by `ebin/
bpqueue.beam'. Stop.
来自:Emile Joubert&lt; em ... @ rabbitmq.com&gt;
主题:Re:[rabbitmq-discuss]构建失败:`deps.mk',需要`ebin / bpqueue.beam'
$ erl --version
Erlang(BEAM)模拟器版本5.5.5 [源代码] [async-threads:0]
不幸的是R11B-5太旧了。你需要至少建造R12B-5和R12B-3来运行兔子。在Solaris上构建最新版本的Erlang是相当直接的。
#!/usr/bin/env bash
set -eu
# check versions (for good bug reports)
python --version
# ouput: Python 2.6.2
make --version
gcc --version
# ouput: gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)
# create a work space
cd ${HOME}
mkdir rabbitmq-workspace
cd rabbitmq-workspace
# get erlang R12B-5
ERLANG_HOME=${HOME}/erlang-R12B-5
PATH="${ERLANG_HOME}:${ERLANG_HOME}/bin:${PATH}"
export PATH
wget 'http://www.erlang.org/download/otp_src_R12B-5.tar.gz'
# compile erlang R12B-5
gunzip -c otp_src_R12B-5.tar.gz | tar -xvf -
cd 'otp_src_R12B-5'
LANG=C
export LANG # Bourne shell
./configure --prefix="${ERLANG_HOME}"
make
make install
${ERLANG_HOME}/bin/erl -version
# ouput: Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.6.5
cd ..
# get rabbitmq server
wget 'http://www.rabbitmq.com/rabbitmq-signing-key-public.asc'
wget 'http://www.rabbitmq.com/releases/rabbitmq-server/v2.4.1/rabbitmq-
server-2.4.1.zip.asc'
wget 'http://www.rabbitmq.com/releases/rabbitmq-server/v2.4.1/rabbitmq-
server-2.4.1.zip'
gpg --verify rabbitmq-server-2.4.1.zip.asc rabbitmq-server-2.4.1.zip
# compile rabbitmq server
unzip rabbitmq-server-2.4.1.zip
cd rabbitmq-server-2.4.1
make clean
make
# run rabbitmq server
PATH="${ERLANG_HOME}/bin:${PATH}"
# NOTE that the default "sh" on Solaris will fail to run the script - must use "xpg4 sh"
sudo /usr/xpg4/bin/sh ./scripts/rabbitmq-server