I'm trying to install emqttd on my Raspberry Pi3 but am faced with the following error.
When I do cd emqttd && make && make dist
I get this error:
make[1]: Entering directory '/home/pi/emqttd/deps/gproc'
make[1]: *** No targets. Stop.
make[1]: Leaving directory '/home/pi/emqttd/deps/gproc'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
I'm new to RPi and linux so please help me with a newbie instruction. Thanks.
I tried Shreyas Murali's answer but I get this error:
pi@raspberrypi:~ $ cd emqttd-relx && make
DEP emqttd
DEP emqttd_dashboard
DEP emqttd_recon
DEP emqttd_reloader
DEP emqttd_stomp
DEP emqttd_auth_ldap
DEP emqttd_auth_http
DEP emqttd_auth_mysql
DEP emqttd_auth_pgsql
DEP emqttd_auth_redis
DEP emqttd_auth_mongo
DEP emqttd_plugin_template
DEP emqttd_sn
DEP emqttd_coap
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd'
DEP gproc
make[2]: Entering directory '/home/pi/emqttd-relx/.erlang.mk/rebar'
./bootstrap
Recompile: src/rebar
Recompile: src/rebar_abnfc_compiler
Recompile: src/rebar_app_utils
Recompile: src/rebar_appups
Recompile: src/rebar_asn1_compiler
Recompile: src/rebar_base_compiler
Recompile: src/rebar_cleaner
Recompile: src/rebar_config
Recompile: src/rebar_core
Recompile: src/rebar_cover_utils
Recompile: src/rebar_ct
Recompile: src/rebar_deps
Recompile: src/rebar_dia_compiler
Recompile: src/rebar_edoc
Recompile: src/rebar_erlc_compiler
Recompile: src/rebar_erlydtl_compiler
Recompile: src/rebar_escripter
Recompile: src/rebar_eunit
Recompile: src/rebar_file_utils
Recompile: src/rebar_getopt
Recompile: src/rebar_lfe_compiler
Recompile: src/rebar_log
Recompile: src/rebar_metacmds
Recompile: src/rebar_mustache
Recompile: src/rebar_neotoma_compiler
Recompile: src/rebar_otp_app
Recompile: src/rebar_otp_appup
Recompile: src/rebar_port_compiler
Recompile: src/rebar_proto_compiler
Recompile: src/rebar_proto_gpb_compiler
Recompile: src/rebar_protobuffs_compiler
Recompile: src/rebar_qc
Recompile: src/rebar_rel_utils
Recompile: src/rebar_reltool
Recompile: src/rebar_require_vsn
Recompile: src/rebar_shell
Recompile: src/rebar_subdirs
Recompile: src/rebar_templater
Recompile: src/rebar_upgrade
Recompile: src/rebar_utils
Recompile: src/rebar_xref
==> rebar (compile)
==> rebar (escriptize)
Congratulations! You now have a self-contained script called "rebar" in
your current working directory. Place this script anywhere in your path
and you can use rebar to build OTP-compliant apps.
make[2]: Leaving directory '/home/pi/emqttd-relx/.erlang.mk/rebar'
/home/pi/emqttd-relx/deps/emqttd
DEP lager
DEP gen_logger
DEP gen_conf
DEP esockd
DEP mochiweb
make[2]: Entering directory '/home/pi/emqttd-relx/deps/gproc'
DEPEND gproc.d
ERLC gproc.erl gproc_app.erl gproc_bcast.erl gproc_dist.erl gproc_info.erl gproc_init.erl gproc_lib.erl gproc_monitor.erl gproc_pool.erl gproc_ps.erl gproc_pt.erl gproc_sup.erl
src/gproc_dist.erl:23: Warning: behaviour gen_leader undefined
APP gproc.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/gproc'
make[2]: Entering directory '/home/pi/emqttd-relx/deps/lager'
DEP goldrush
make[3]: Entering directory '/home/pi/emqttd-relx/deps/goldrush'
DEPEND goldrush.d
ERLC glc.erl glc_code.erl glc_lib.erl glc_ops.erl glc_run.erl gr_app.erl gr_context.erl gr_counter.erl gr_counter_sup.erl gr_manager.erl gr_manager_sup.erl gr_param.erl gr_param_sup.erl gr_sup.erl gre.erl
APP goldrush.app.src
make[3]: Leaving directory '/home/pi/emqttd-relx/deps/goldrush'
DEPEND lager.d
ERLC error_logger_lager_h.erl lager.erl lager_app.erl lager_backend_throttle.erl lager_common_test_backend.erl lager_config.erl lager_console_backend.erl lager_crash_log.erl lager_default_formatter.erl lager_file_backend.erl lager_format.erl lager_handler_watcher.erl lager_handler_watcher_sup.erl lager_manager_killer.erl lager_msg.erl lager_stdlib.erl lager_sup.erl lager_transform.erl lager_trunc_io.erl lager_util.erl
APP lager.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/lager'
make[2]: Entering directory '/home/pi/emqttd-relx/deps/gen_logger'
DEPEND gen_logger.d
ERLC console_logger.erl error_logger_logger.erl gen_logger.erl lager_logger.erl
APP gen_logger.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/gen_logger'
make[2]: Entering directory '/home/pi/emqttd-relx/deps/gen_conf'
DEPEND gen_conf.d
ERLC gen_conf.erl
APP gen_conf.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/gen_conf'
make[2]: Entering directory '/home/pi/emqttd-relx/deps/esockd'
DEPEND esockd.d
ERLC esockd.erl esockd_acceptor.erl esockd_acceptor_sup.erl esockd_access.erl esockd_app.erl esockd_cidr.erl esockd_connection.erl esockd_connection_sup.erl esockd_gen.erl esockd_keepalive.erl esockd_listener.erl esockd_listener_sup.erl esockd_net.erl esockd_ratelimit.erl esockd_server.erl esockd_sup.erl esockd_transport.erl esockd_udp.erl
APP esockd.app.src
GEN rebar.config
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/esockd'
make[2]: Entering directory '/home/pi/emqttd-relx/deps/mochiweb'
DEPEND mochiweb.d
ERLC mochifmt.erl mochifmt_records.erl mochifmt_std.erl mochiglobal.erl mochihex.erl mochijson.erl mochijson2.erl mochilists.erl mochilogfile2.erl mochinum.erl mochitemp.erl mochiutf8.erl mochiweb.erl mochiweb_base64url.erl mochiweb_charref.erl mochiweb_cookies.erl mochiweb_cover.erl mochiweb_headers.erl mochiweb_html.erl mochiweb_http.erl mochiweb_io.erl mochiweb_mime.erl mochiweb_multipart.erl mochiweb_request.erl mochiweb_response.erl mochiweb_session.erl mochiweb_util.erl mochiweb_websocket.erl
APP mochiweb.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/mochiweb'
DEPEND emqttd.d
ERLC emqttd.erl emqttd_access_control.erl emqttd_access_rule.erl emqttd_acl_anonymous.erl emqttd_acl_internal.erl emqttd_acl_mod.erl emqttd_alarm.erl emqttd_app.erl emqttd_auth_anonymous.erl emqttd_auth_clientid.erl emqttd_auth_mod.erl emqttd_auth_username.erl emqttd_base62.erl emqttd_boot.erl emqttd_bridge.erl emqttd_bridge_sup.erl emqttd_bridge_sup_sup.erl emqttd_broker.erl emqttd_cli.erl emqttd_client.erl emqttd_cluster.erl emqttd_cm.erl emqttd_cm_sup.erl emqttd_conf.erl emqttd_ctl.erl emqttd_gen_mod.erl emqttd_guid.erl emqttd_hook.erl emqttd_http.erl emqttd_keepalive.erl emqttd_message.erl emqttd_metrics.erl emqttd_mnesia.erl emqttd_mod_presence.erl emqttd_mod_retainer.erl emqttd_mod_rewrite.erl emqttd_mod_subscription.erl emqttd_mod_sup.erl emqttd_mqueue.erl emqttd_net.erl emqttd_node.erl emqttd_opts.erl emqttd_packet.erl emqttd_parser.erl emqttd_plugins.erl emqttd_pmon.erl emqttd_pool_sup.erl emqttd_pooler.erl emqttd_protocol.erl emqttd_pubsub.erl emqttd_pubsub_sup.erl emqttd_router.erl emqttd_serializer.erl emqttd_server.erl emqttd_session.erl emqttd_session_sup.erl emqttd_sm.erl emqttd_sm_helper.erl emqttd_sm_sup.erl emqttd_stats.erl emqttd_sup.erl emqttd_sysmon.erl emqttd_sysmon_sup.erl emqttd_time.erl emqttd_topic.erl emqttd_trace.erl emqttd_trace_sup.erl emqttd_trie.erl emqttd_vm.erl emqttd_ws.erl emqttd_ws_client.erl emqttd_ws_client_sup.erl gen_server2.erl lager_emqtt_backend.erl priority_queue.erl
src/emqttd_cli.erl:276: Warning: function if_valid_qos/2 is unused
APP emqttd.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_dashboard'
DEPEND emqttd_dashboard.d
ERLC emqttd_auth_dashboard.erl emqttd_dashboard.erl emqttd_dashboard_admin.erl emqttd_dashboard_alarm.erl emqttd_dashboard_app.erl emqttd_dashboard_cli.erl emqttd_dashboard_client.erl emqttd_dashboard_metric.erl emqttd_dashboard_overview.erl emqttd_dashboard_route.erl emqttd_dashboard_session.erl emqttd_dashboard_subscription.erl emqttd_dashboard_sup.erl emqttd_dashboard_topic.erl emqttd_dashboard_user.erl emqttd_meter_access.erl emqttd_meter_define.erl
APP emqttd_dashboard.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_dashboard'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_recon'
DEP recon
make[2]: Entering directory '/home/pi/emqttd-relx/deps/recon'
DEPEND recon.d
ERLC recon.erl recon_alloc.erl recon_lib.erl recon_trace.erl
APP recon.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/recon'
DEPEND emqttd_recon.d
ERLC emqttd_recon_app.erl emqttd_recon_cli.erl emqttd_recon_gc.erl emqttd_recon_sup.erl
APP emqttd_recon.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_recon'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_reloader'
DEPEND emqttd_reloader.d
ERLC emqttd_reloader.erl emqttd_reloader_app.erl emqttd_reloader_cli.erl emqttd_reloader_sup.erl
APP emqttd_reloader.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_reloader'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_stomp'
DEPEND emqttd_stomp.d
ERLC emqttd_stomp.erl emqttd_stomp_app.erl emqttd_stomp_client.erl emqttd_stomp_frame.erl emqttd_stomp_heartbeat.erl emqttd_stomp_proto.erl emqttd_stomp_sup.erl emqttd_stomp_transaction.erl
src/emqttd_stomp_proto.erl:253: Warning: variable 'Id' is unused
src/emqttd_stomp_proto.erl:255: Warning: variable 'Id' is unused
APP emqttd_stomp.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_stomp'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_auth_ldap'
DEPEND emqttd_auth_ldap.d
ERLC emqttd_auth_ldap.erl emqttd_auth_ldap_app.erl
APP emqttd_auth_ldap
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_auth_ldap'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_auth_http'
DEPEND emqttd_auth_http.d
ERLC emqttd_acl_http.erl emqttd_auth_http.erl emqttd_auth_http_app.erl
APP emqttd_auth_http.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_auth_http'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_auth_mysql'
DEP mysql
DEP ecpool
make[2]: Entering directory '/home/pi/emqttd-relx/deps/mysql'
DEPEND mysql.d
ERLC mysql.erl mysql_cache.erl mysql_encode.erl mysql_protocol.erl
APP mysql.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/mysql'
make[2]: Entering directory '/home/pi/emqttd-relx/deps/ecpool'
DEPEND ecpool.d
ERLC ecpool.erl ecpool_app.erl ecpool_pool.erl ecpool_pool_sup.erl ecpool_sup.erl ecpool_worker.erl ecpool_worker_sup.erl
APP ecpool.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/ecpool'
DEPEND emqttd_auth_mysql.d
ERLC emqttd_acl_mysql.erl emqttd_auth_mysql.erl emqttd_auth_mysql_app.erl emqttd_auth_mysql_client.erl emqttd_auth_mysql_sup.erl
APP emqttd_auth_mysql.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_auth_mysql'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_auth_pgsql'
DEP epgsql
make[2]: Entering directory '/home/pi/emqttd-relx/deps/epgsql'
DEPEND epgsql.d
ERLC epgsql.erl epgsql_binary.erl epgsql_errcodes.erl epgsql_fdatetime.erl epgsql_idatetime.erl epgsql_sock.erl epgsql_types.erl epgsql_wire.erl epgsqla.erl epgsqli.erl ewkb.erl
APP epgsql.app.src
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/epgsql'
DEPEND emqttd_auth_pgsql.d
ERLC emqttd_acl_pgsql.erl emqttd_auth_pgsql.erl emqttd_auth_pgsql_app.erl emqttd_auth_pgsql_sup.erl
APP emqttd_auth_pgsql.app.src
GEN rebar.config
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_auth_pgsql'
make[1]: Entering directory '/home/pi/emqttd-relx/deps/emqttd_auth_redis'
DEP eredis
make[2]: Entering directory '/home/pi/emqttd-relx/deps/eredis'
mkdir -p ebin
cp -f -- src/eredis.app.src ebin/eredis.app
sed "s/{{EXTRA_OPTS}}/ {d,namespaced_types},/" Emakefile.src > Emakefile
erl -noinput -eval 'up_to_date = make:all()' -s erlang halt
Recompile: src/eredis_sub_client
Recompile: src/eredis_sub
Recompile: src/eredis_parser
src/eredis_parser.erl:26: can't find include lib "eunit/include/eunit.hrl"
{"init terminating in do_boot",{{badmatch,error},[{erl_eval,expr,3,[]}]}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
Makefile:10: recipe for target 'compile' failed
make[2]: *** [compile] Error 1
make[2]: Leaving directory '/home/pi/emqttd-relx/deps/eredis'
../../erlang.mk:312: recipe for target 'deps' failed
make[1]: *** [deps] Error 2
make[1]: Leaving directory '/home/pi/emqttd-relx/deps/emqttd_auth_redis'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
pi@raspberrypi:~/emqttd-relx $
I have installed erlang and all of it's packages with the followind commands but unfortunately the problem in not solved:
sudo apt-get install erlang
sudo apt-get install erlang-dev erlang-edoc erlang-eunit erlang-reltool erlang-crypto erlang-eldap erlang-public-key erlang-runtime-tools erlang-ssl
Please help.
erlang-eunit
package.try installingapt-get install erlang-dev erlang-edoc erlang-eunit