因为rabbitmq是用erlang语言写的,所以装rabbitmq前第一步得先装erlang。

  我们到erlang官网https://www.erlang.org/downloads下载安装包,最新版本是22.0,下载时又被windows禁掉了,退而求其次,下21.3版本吧:

  下完后通过rz上传至wlf用户soft目录下,执行解压:

$ tar xvf otp_src_21..tar

  注意编译前需要借用root用户通过yum install命令先安装ncurses-devel和openssl-devel依赖,可以切换到root用户后执行:

yum install ncurses-devel
yum install openssl-devel

  很遗憾,普通用户这里没法绕开root用户,除非你的机器之前已经用root安装过以上两个依赖了。通过以下命令可以查看本机是否已经存在这两个依赖:

$ rpm -qa | grep -E "ncurses-devel*|openssl-devel*"
ncurses-devel-5.9-13.20130511.el7.x86_64
openssl-devel-1.0.1e-60.el7.x86_64

  可以发现我这里之前已经装了。

  配置下目录前缀,通过make命令开始编译、安装,貌似编译时间有点久:

$ cd otp_src_21.3
$ ./configure --prefix=/home/wlf/erlang

  检查成功后编译、安装一条龙:

$ make && make install

  结束后通过bin/erl命令确认安装成功:

$ cd ~
$ cd erlang/bin
$ ./erl
Erlang/OTP [erts-10.3] [source] [-bit] [smp::] [ds:::] [async-threads:] [hipe] Eshell V10. (abort with ^G)
> halt()
> .

  halt是退出系统的方法,别忘了下面的点。

  配置Erlang环境变量:

$ cd ~
$ vi .bash_profile

  在bash_profile最后加入export PATH=$PATH:/home/wlf/erlang/bin这一行:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH # Java_Home
JAVA_HOME=/home/wlf/jdk1..0_221
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JaVA_HOME # erlang
export PATH=$PATH:/home/wlf/erlang/bin

  保存后让它生效:

$ source .bash_profile

  ------------------------------------------------------------------------分割线------------------------------------------------------------------------

  搞定了erlang,再开始搞rabbitmq。同理,先去官网http://www.rabbitmq.com/download.html下载安装包,我们选通过git下载linux二进制版本的:

  会有点慢,压缩包rabbitmq-server-generic-unix-3.7.18.tar.xz下好了通过rz上传到wlf的soft目录下,在soft目录下开始解压,需要分两步走,先解压xz,再解压tar:

$ xz -d rabbitmq-server-generic-unix-3.7..tar.xz
$ cd ..
$ tar xvf soft/rabbitmq-server-generic-unix-3.7..tar

  rabbitmq是解压即可用的,但我们可以通过在配置文件来指定一些自定义设置,先进入配置目录:

cd rabbitmq_server-3.7./etc/rabbitmq/

  再通过vi新增rabbitmq.env.conf指定数据节点名称和路径

#node name
NODENAME=rabbit #data dir
MNESIA_BASE=/home/wlf/rabbitmq_server-3.7./data

  同理,新增rabbitmq.conf指定端口等设置:

#listen port
listeners.tcp.default = #log dir
log.dir = /home/wlf/rabbitmq_server-3.7./logs #open remote request
loopback_users = none

  配置完后记得手动创建日志目录logs。最后我们再次使用vi打开bash_profile配置下环境变量:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH # Java_Home
JAVA_HOME=/home/wlf/jdk1..0_221
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JaVA_HOME # erlang
export PATH=$PATH:/home/wlf/otp_src_21./bin # rabbitmq
export PATH=$PATH:/home/wlf/rabbitmq_server-3.7./sbin

  加上最后一行指定rabbitmq的执行目录之后,保存并用source命令让我们的配置生效。我们以后台进行方式启动rabbitmq:

$ rabbitmq-server -detatched

  ##  ##
## ## RabbitMQ 3.7.. Copyright (C) - Pivotal Software, Inc.
########## Licensed under the MPL. See https://www.rabbitmq.com/
###### ##
########## Logs: /home/wlf/rabbitmq_server-3.7./var/log/rabbitmq/rabbit.log
/home/wlf/rabbitmq_server-3.7./var/log/rabbitmq/rabbit_upgrade.log Starting broker...
completed with plugins.

  克隆会话登陆wlf,查看启动状态:

$ rabbitmqctl status
Status of node rabbit@wlf-test188 ...
[{pid,},
{running_applications,
[{rabbit,"RabbitMQ","3.7.18"},
{mnesia,"MNESIA CXC 138 12","4.15.6"},
{sysmon_handler,"Rate-limiting system_monitor event handler","1.1.0"},
{rabbit_common,
"Modules shared by rabbitmq-server and rabbitmq-erlang-client",
"3.7.18"},
{ranch,"Socket acceptor pool for TCP protocols.","1.7.1"},
{ssl,"Erlang/OTP SSL application","9.2"},
{public_key,"Public key infrastructure","1.6.5"},
{asn1,"The Erlang ASN1 compiler version 5.0.8","5.0.8"},
{observer_cli,"Visualize Erlang Nodes On The Command Line","1.5.2"},
{tools,"DEVTOOLS CXC 138 16","3.1"},
{os_mon,"CPO CXC 138 46","2.4.7"},
{recon,"Diagnostic tools for production use","2.5.0"},
{xmerl,"XML parser","1.3.19"},
{credentials_obfuscation,
"Helper library that obfuscates sensitive values in process state",
"1.1.0"},
{jsx,"a streaming, evented json parsing toolkit","2.9.0"},
{crypto,"CRYPTO","4.4.1"},
{stdout_formatter,
"Tools to format paragraphs, lists and tables as plain text",
"0.2.2"},
{inets,"INETS CXC 138 49","7.0.6"},
{lager,"Erlang logging framework","3.8.0"},
{goldrush,"Erlang event stream processor","0.1.9"},
{compiler,"ERTS CXC 138 10","7.3.2"},
{syntax_tools,"Syntax tools","2.1.7"},
{sasl,"SASL CXC 138 11","3.3"},
{stdlib,"ERTS CXC 138 10","3.8"},
{kernel,"ERTS CXC 138 10","6.3"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang/OTP 21 [erts-10.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:128] [hipe]\n"},
{memory,
[{connection_readers,},
{connection_writers,},
{connection_channels,},
{connection_other,},
{queue_procs,},
{queue_slave_procs,},
{plugins,},
{other_proc,},
{metrics,},
{mgmt_db,},
{mnesia,},
{other_ets,},
{binary,},
{msg_index,},
{code,},
{atom,},
{other_system,},
{allocated_unused,},
{reserved_unallocated,},
{strategy,rss},
{total,[{erlang,},{rss,},{allocated,}]}]},
{alarms,[]},
{listeners,[{clustering,,"::"},{amqp,,"::"}]},
{vm_memory_calculation_strategy,rss},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,},
{disk_free_limit,},
{disk_free,},
{file_descriptors,
[{total_limit,},
{total_used,},
{sockets_limit,},
{sockets_used,}]},
{processes,[{limit,},{used,}]},
{run_queue,},
{uptime,},
{kernel,{net_ticktime,}}]

   可以看到启动成功,使用端口5673.

  如果想访问管理界面,执行下管理插件安装命令即可:

rabbitmq-plugins enable rabbitmq_management

linux非root用户安装rabbitmq的更多相关文章

  1. linux非root用户安装jdk1.8

    如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录),然后开始进入linux的非root用户(如w ...

  2. 【tf.keras】Linux 非 root 用户安装 CUDA 和 cuDNN

    TensorFlow 2.0 for Linux 使用时报错:(cuDNN 版本低了) E tensorflow/stream_executor/cuda/cuda_dnn.cc:319] Loade ...

  3. Centos 非root用户安装rabbitmq

    RabbitMQ是一个开源消息队列服务器,您可以使用它来构建您的消息传递应用程序.简单地说,您可以将来自一个应用程序的消息放入队列,并从来自相同应用程序或不同应用程序的队列中检索消息.您可以使用多种编 ...

  4. linux非root用户安装ncurses-devel依赖

    很明显,如果我们通过yum或rpm下载安装,始终无法绕开root用户,除非我们不用yum或rpm.嗯,我们直接用源码安装.下载源码包,到http://ftp.gnu.org/gnu/ncurses/我 ...

  5. linux非root用户安装nginx

    先到官网http://nginx.org/en/download.html下载最新稳定版源码包,目前是1.16.1: 下完后通过rz上传至wlf用户soft目录下,退回上一级目录解压: $ cd so ...

  6. linux非root用户安装4.0.14版本redis

    先到官网https://redis.io/download下安装包,现在最新是5.0.5版本,可惜点击下载后被windows禁了,那就下4版本的,往下看Other versions的Old(4.0), ...

  7. linux非root用户安装5.7.27版本mysql

    先下安装包,到mysql官网https://dev.mysql.com/downloads/mysql/选好安装包版本.操作系统类型(默认是最新版本,点击右边链接Looking for previou ...

  8. Linux非root用户安装jdk和tomcat

    转载自:http://blog.csdn.net/wuyigong111/article/details/17410661,进行部分修改 创建一个用户 sgmm,并在其用户目录里面安装 jdk和tom ...

  9. linux 非root用户安装nginx

    第一步:首先下载依赖包 下载地址 pcre(www.pcre.org),zlib(www.zlib.org),openssl(www.openssl.org) 第二步:上传那个nginx的安装包 下载 ...

随机推荐

  1. Angular CLI behind the scenes, part one

    原文:https://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art074 --------------------------- ...

  2. 如何解决redis的并发竞争问题?

    这个也是线上非常常见的一个问题,就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了.或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了. 而且 ...

  3. 织梦dedecms会员中心分类管理无法修改、删除分类名

    member/mtypes.PHP 文件中添加 另外,member/myfriend_group.php文件中也存在同样的问题,也要添加,不添加的话好友分组中也是同样问题

  4. MySQL中怎么将LIMIT分页优化?

     1.语法:       *** limit [offset,] rows       一般是用于select语句中用以从结果集中拿出特定的一部分数据.       offset是偏移量,表示我们现在 ...

  5. keepalived 的 vrrp_script

    [root@centos01 keepalived]# cat check_httpd.sh 脚本需要有执行权限 通常情况下,利用keepalived做热备,其中一台设置为master,一台设置为ba ...

  6. Luogu5591 小猪佩奇学数学 【单位根反演】

    题目链接:洛谷 \[ Ans=\frac{1}{k}(\sum_{i=0}^n\binom{n}{i}p^ii-\sum_{i=0}^n\binom{n}{i}p^i(i \ \mathrm{mod} ...

  7. (19)打鸡儿教你Vue.js

    了解vue2.x的核心技术 建立前端组件化的思想 常用的vue语法 vue-router,vuex,vue-cli 使用vue-cli工具 Vue框架常用知识点 vue核心技术 集成Vue 重点看,重 ...

  8. 在Matlab中的plot

    在Matlab中画图时,经常会使用plot函数命令.一些隐含的画图命令也默认调用plot函数命令,如spy命令,可以画出矩阵的稀疏度图形. 另外,有时为了方便,会将一些处理图形的操作和命令列在一块,命 ...

  9. 三大框架 之 spring-JDBC

    目录 spring-JDBC模板 Spring的JDBC的模板 JDBC模板使用的入门 引入jar包 创建数据库和表 使用JDBC的模板 将连接池和模板交给Spring管理 配置文件配置Bean 使用 ...

  10. NoSql数据库Redis系列(3)——Redis数据持久化(RDB)

    大家都知道 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库 ...