Erlang 编译rabbitMQ 2.4.1错误-[]escript:脚本失败:。。。需要由'ebin/bpqueue.beam';

Erlang 编译rabbitMQ 2.4.1错误-[]escript:脚本失败:。。。需要由'ebin/bpqueue.beam';,erlang,rabbitmq,amqp,Erlang,Rabbitmq,Amqp,rabbitMQ版本2.4.1 构建失败时会出现错误 []escript: script failed: {function_clause, [{erl_parse, build_type, [{atom,159,ok_or_error2}, [{type,pid,[]},{type,any,[]}]]}, {er

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.

问题在于所使用的erlang版本。
这是我的完整解决方案(最初发布)

第0步。错误消息 第一步。(erlang版本) 发件人:Emile Joubert
主题:Re:[rabbitmq讨论]生成失败:`deps.mk',由`ebin/bpqueue.beam'所需

$erl——版本
Erlang(BEAM)emulator 5.5.5版[源代码][异步线程:0]

不幸的是R11B-5太旧了。目前,您至少需要R12B-5来构建,R12B-3来运行rabbit。在Solaris上构建最新版本的Erlang非常简单

第二步。我在Solaris上安装rabbitMQ server 2.4.1的完整解决方案:
我有答案。我把问题贴出来,就是为了把答案贴出来。然而,stackoverflow说我必须等7个小时才能发布答案/
# 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. 
#!/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