Linux安装rabbitMQ和erlang坎坷之路

转载自[https://www.cnblogs.com/qinersky902/p/5247754.html] -----非常详细的步骤,防止链接失效,我就copy过来了,原文在rabbitmq安装配置时有几处需要注意的,我入的坑备注在括号里,搜索关键字------注意三骚

一 Erlang安装
1. RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境.
从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包,Linux和MacOSX下载的版本是 http://www.erlang.org/download.html
2. 然后解压下载的gz包 tar -zxvf *.tar.gz
3. cd 进入解压出来的文件夹
4. 执行./configure --prefix=/opt/erlang 就会开始编译安装 会编译到 /opt/erlang 下 如果不报错就执行make 和 make install
5. 如果报错:
6. [root@localhost ~]# yum install gcc
继续报错
redhat默认自带的yum源需要注册,才能更新,报错:
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
可替换为centos对应的源。 操作如下:
1. 检查是否安装yum包。查看RHEL是否安装了yum,若是安装了,那么又有哪些yum包:
rpm -qa |grep yum
2. 删除redhat自带的yum包
rpm -qa|grep yum|xargs rpm -e --nodeps(不检查依赖,直接删除rpm包)
rpm -qa |grep yum (查询确认)
[iyunv@localhost ~]#
3. 下载新的yum包。使用Centos6.5的yum包
1) 查看版本号和系统类别:
cat /etc/redhat-release
arch

2)根据上一步,找到对应的yum包,然后下载。我的服务器对应的为:

wget http://mirrors.163.com/centos/6/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

wget http://mirrors.163.com/centos/6/yum-3.2.29-40.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

3)执行:
    rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-3.2.29-40.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
    如果这一步报错,大底如下:
        libc.so.6 is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libc.so.6(GLIBC_2.0) is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libc.so.6(GLIBC_2.1.3) is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libglib-2.0.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libpthread.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libpython2.6.so.1.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libsqlite3.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libxml2.so.2 is needed by yum-metadata-parser-1.1.2-16.el6.i686
        libxml2.so.2(LIBXML2_2.4.30) is needed by yum-metadata-parser-1.1.2-16.el6.i686
    则说明下载安装的yum包与系统版本不匹配,需要重新下载安装。另外,163镜像站点对于6.0~6.5的资源均合并在6的目录下。
    
4)更换yum源,将原有源删除或备份到别的目下下:
    cd /etc/yum.repos.d/
    wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo
    vi CentOS6-Base-163.repo
    编辑文件,把文件里面的$releasever全部替换为版本号:6(注意,不是6.5!)最后保存!

4. 清除原有缓存,重建缓存:

clean all
yum makecache

5. 更新系统:

yum update

6. [root@localhost ~]#
yum install gcc

至此,如果不报错说明GCC安装成功

重新开始安装erlang

参考 http://blog.csdn.net/chszs/article/details/28638305

Erlang目前已经是Fedora和Debian/Ubuntu软件仓库中的一部分。

Erlang目前最新的版本是OTP 18.2。Erlang是一种编程语言,用于构建大规模、高可伸缩性、高可用性的软实时系统的编程语言。它已经在电信、金融、电子商务、网络电话和即时消息中得到应用。Erlang的运行时系统已经内建了对并发、分布式和容错的支持。

OTP是Erlang库和设计原则的集合,提供了开发各种系统的中间件。它包含了自己的分布式数据库、面向其它编程语言的接口、调试和发布处理工具等。

BEAM是Erlang代码执行所需的虚拟机。Erlang代码编译后的扩展名为.beam。ERTS是Erlang的运行时系统,他包括了BEAM、内核和标准库等组件。

官方推荐从源码安装Erlang,因此下面开始从源码安装OTP 18.2。

下载OTP 18.2源码:https://www.w3.org/download/otp_src_18.2.1.tar.gz

解压

按步骤执行

tar zvxf otp_src_18.2.tar.gz
mv otp_src_18.2/ otp
cd otp
./configure --prefix=/opt/erlang --without-javac

报错:
configure: error: No curses library functions found
configure: error: /bin/sh ‘/root/otp/erts/configure’ failed for erts

yum -y install ncurses-devel
./configure --prefix=/opt/erlang --without-javac

报错


********************** APPLICATIONS DISABLED **********************


crypto : No usable OpenSSL found
jinterface : Java compiler disabled by user
odbc : ODBC library - link check failed
orber : No C++ compiler found
ssh : No usable OpenSSL found
ssl : No usable OpenSSL found


以下按步骤执行

yum list | grep ssl

yum install openssl-devel

./configure --prefix=/opt/erlang --without-javac

yum list | grep ODBC

yum install unixODBC-devel

./configure --prefix=/opt/erlang --without-javac

yum install gcc-c++

./configure --prefix=/opt/erlang --without-javac

make

make install

/opt/erlang/bin/erl

Erlang/OTP 17 [erts-6.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V6.0  (abort with ^G)

1> EvenN = lists:filter (fun (N) -> N rem 2 == 0 end, lists:seq(1,100)).

[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,

 44,46,48,50,52,54,56,58|…]

有几种退出Erlang Shell的方法

命令方式1:执行init:stop().
命令方式2:执行halt().
快捷键方式1:Control+C 然后选a
快捷键方式2:Control+G 然后按q

编译完成以后,进入/opt/erlang,输入erl测试erlang是否安装成功。
修改/etc/profile文件,增加下面的环境变量:

#set erlang environment
export PATH=$PATH:/opt/erlang/bin

source /etc/profile使得文件生效
肯能会出现找不到包的情况,就直接yum install 吧

修改 vim /etc/profile文件,增加下面的环境变量

ERL_HOME=/opt/erlang

PATH=$ERL_HOME/bin:$PATH

export ERL_HOME PATH

Esc :wq 保存退出
注意三骚 这边如果是自己虚拟机的话,要用root账户或者给权限给文件夹,不然会显示只读模式

【安装总结】

从源码编译安装Erlang,有两个库或工具是必须的:

一是完整的GCC编译器环境
二是Ncurses开发库

还有一些库或工具,如果没有它们,在编译配置时会出现警告信息,而且可能不能通过配置。这些库有:

1)OpenSSL开发库

2)ODBC开发库

3)Java编译器

http://www.rabbitmq.com/download.html

二.安装RabbitMQ

第一条

rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.6.0-1.noarch.rpm

第二条

wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.0/rabbitmq-server-3.6.0-1.noarch.rpm
yum install rabbitmq-server-3.6.0-1.noarch.rpm

上面这两条语句任意一条就可以安装成功:

但是我在安装rabbitmq-server的过程中遇到了一个问题:

Error: Package: rabbitmq-server-3.6.0-1.noarch (/rabbitmq-server-3.6.0-1.noarch)
Requires: erlang >= R16B-3
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

这是由于erlang的版本问题,其实是没有影响的,你可以使用rpm -ivh --nodeps rabbitmq-server-3.6.0-1.noarch.rpm安装。

如果没有安装成功:就用下面的绝招

三 rabbitmq安装配置

  1. rabbitmq的安装有很多版本,我们使用Generic Unix版本。
  2. cd /
  3. wget http://www.rabbitmq.com/releases/rabbitmq-server/v2.7.1/rabbitmq-server-generic-unix-2.7.1.tar.gz 下载rabbitmq
  4. tar zxvf rabbitmq-server-generic-unix-2.7.1.tar.gz -C /opt解压到指定的文件夹下
  5. cd /opt,然后建立软链接 ln -s rabbitmq-server-generic-unix rabbitmq
  6. cd rabbitmq/sbin(注意三骚这边rabbitmq是安装目录,我的是cd rabbitmq_server-2.7.1/sbin),
  7. 使用./rabbitmq-server -detached可以实现后台启动
  8. 修改vim /etc/profile,添加环境变量
  9. #set rabbitmq environment
  10. export PATH=$PATH:/opt/rabbitmq/sbin
  11. source /etc/profile使得文件生效
  12. cd /opt/rabbitmq/sbin注意三骚同上备注 cd rabbitmq_server-2.7.1/sbin
  13. 使用./rabbitmqctl stop关闭rabbitmq
    这样就完成了安装
    启用管理方式(用网页方式管理MQ)cd /opt/rabbitmq/sbin/注意三骚同上备注 cd rabbitmq_server-2.7.1/sbin
    执行./rabbitmq-plugins enable rabbitmq-management注意s三骚原文这边plugin少了个s,需要注意
    然后访问http://localhost:55672

一 .如果安装成服务的就用这个来启动

[root@master ~]# service rabbitmq-server restart

WARNING: ignoring /etc/rabbitmq/rabbitmq.conf – location has moved to /etc/rabbitmq/rabbitmq-env.conf

Restarting rabbitmq-server: FAILED - check /var/log/rabbitmq/shutdown_log, _err

SUCCESS

rabbitmq-server.

[root@master ~]#

RPM安装的,那就启动进程,启动控制台插件就可以了

./rabbitmqctl status

./rabbitmqctl status

./rabbitmq-server –detached

启动 控制台插件

[root@slave5 bin]# ./rabbitmq-plugins enable rabbitmq_management

[root@ master ~]# /sbin/service rabbitmq-server start

Starting rabbitmq-server: SUCCESS

rabbitmq-server.

对应的关闭命令为:/sbin/service rabbitmq-server stop

5、管理

Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。

1). 服务器启动与关闭

  启动: rabbitmq-server –detached

  关闭:rabbitmqctl stop

  若单机有多个实例,则在rabbitmqctlh后加–n 指定名称

2). 插件管理

  开启某个插件:rabbitmq-pluginsenable xxx

  关闭某个插件:rabbitmq-pluginsdisablexxx

  注意:重启服务器后生效。

3).virtual_host管理

  新建virtual_host: rabbitmqctladd_vhost  xxx

  撤销virtual_host:rabbitmqctl  delete_vhost xxx

4). 用户管理

  新建用户:rabbitmqctl add_user xxxpwd

  删除用户:   rabbitmqctl delete_user xxx

  改密码: rabbimqctlchange_password {username} {newpassword}

  设置用户角色:rabbitmqctlset_user_tags {username} {tag ...}

          Tag可以为 administrator,monitoring, management

5). 权限管理

  权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}

           Vhostpath

           Vhost路径

           user

  用户名

          Conf

  一个正则表达式match哪些配置资源能够被该用户访问。

          Write

  一个正则表达式match哪些配置资源能够被该用户读。

           Read

  一个正则表达式match哪些配置资源能够被该用户访问。

6). 获取服务器状态信息

   服务器状态:rabbitmqctl status

   队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]

            Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,

            messages_unacknowledged,messages,consumers,memory

   Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...]

             Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.

   Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]       

             Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments

   Connection信息:rabbitmqctllist_connections [connectioninfoitem ...]

   Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。

   Channel信息:rabbitmqctl  list_channels[channelinfoitem ...]

  Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked

常用命令:

查看所有队列信息

rabbitmqctl list_queues

关闭应用

rabbitmqctl stop_app

启动应用,和上述关闭命令配合使用,达到清空队列的目的

rabbitmqctl start_app

清除所有队列

rabbitmqctl reset

更多用法及参数,可以执行如下命令查看

rabbitmqctl

3.rabbitmq常用命令
rabbitmq-server start 或者 service rabbitmq-server start #启动rabbitmq

rabbitmqctl list_exchanges

rabbitmqctl list_bindings

rabbitmqctl list_queues #分别查看当前系统种存在的Exchange和Exchange上绑定的Queue信息。

rabbitmqctl status #查看运行信息

rabbitmqctl stop #停止运行rabbitmq

rabbitmq-plugins enable rabbitmq_management

#启动rabbitmq的图形管理界面,这个操作必须重启rabbitmq, 然后在web中 http://127.0.0.1:15672 用户名和密码都是guest guest。如果局域网无法访问设置防火墙过滤规则或关闭防火墙。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值