linux非root用戶安裝rabbitmq


  因為rabbitmq是用erlang語言寫的,所以裝rabbitmq前第一步得先裝erlang。

  我們到erlang官網https://www.erlang.org/downloads下載安裝包,最新版本是22.0,下載時又被windows禁掉了,退而求其次,下21.3版本吧:

 

 

  下完后通過rz上傳至wlf用戶soft目錄下,執行解壓:

$ tar xvf otp_src_21.3.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 21 [erts-10.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] Eshell V10.3 (abort with ^G) 1> halt() 1> .

  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.8.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.18.tar.xz 
$ cd ..
$ tar xvf soft/rabbitmq-server-generic-unix-3.7.18.tar

  rabbitmq是解壓即可用的,但我們可以通過在配置文件來指定一些自定義設置,先進入配置目錄:

cd rabbitmq_server-3.7.18/etc/rabbitmq/

  再通過vi新增rabbitmq.env.conf指定數據節點名稱和路徑

#node name
NODENAME=rabbit

#data dir
MNESIA_BASE=/home/wlf/rabbitmq_server-3.7.18/data

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

#listen port
listeners.tcp.default = 5673

#log dir
log.dir = /home/wlf/rabbitmq_server-3.7.18/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.8.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.3/bin

# rabbitmq
export PATH=$PATH:/home/wlf/rabbitmq_server-3.7.18/sbin

  加上最后一行指定rabbitmq的執行目錄之后,保存並用source命令讓我們的配置生效。我們以后台進行方式啟動rabbitmq:

$ rabbitmq-server -detatched

  ##  ##
  ##  ##      RabbitMQ 3.7.18. Copyright (C) 2007-2019 Pivotal Software, Inc.
  ##########  Licensed under the MPL.  See https://www.rabbitmq.com/
  ######  ##
  ##########  Logs: /home/wlf/rabbitmq_server-3.7.18/var/log/rabbitmq/rabbit.log
                    /home/wlf/rabbitmq_server-3.7.18/var/log/rabbitmq/rabbit_upgrade.log

              Starting broker...
 completed with 0 plugins.

  克隆會話登陸wlf,查看啟動狀態:

$ rabbitmqctl status
Status of node rabbit@wlf-test188 ...
[{pid,10114},
 {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,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,0},
      {queue_procs,0},
      {queue_slave_procs,0},
      {plugins,11916},
      {other_proc,26385104},
      {metrics,195516},
      {mgmt_db,0},
      {mnesia,73328},
      {other_ets,2453808},
      {binary,160600},
      {msg_index,29040},
      {code,21581067},
      {atom,1131721},
      {other_system,13896508},
      {allocated_unused,13412720},
      {reserved_unallocated,0},
      {strategy,rss},
      {total,[{erlang,65918608},{rss,75112448},{allocated,79331328}]}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5673,"::"}]},
 {vm_memory_calculation_strategy,rss},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,10045002547},
 {disk_free_limit,50000000},
 {disk_free,132865421312},
 {file_descriptors,
     [{total_limit,65435},
      {total_used,2},
      {sockets_limit,58889},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,231}]},
 {run_queue,1},
 {uptime,186},
 {kernel,{net_ticktime,60}}]

   可以看到啟動成功,使用端口5673.

   如果想訪問管理界面,執行下管理插件安裝命令即可:

rabbitmq-plugins enable rabbitmq_management

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM