Rocket.Chat是基于Meteor和MongoDB的最丰富的Slack开源替代品之一。原生支持Windows,Mac OS,Linux,iOS和Android平台。Rocket.Chat通过hubot集成了非常流行的服务,比如GitHub,GitLab,Confluence,JIRA等等。高级的特性包括:OTR消息,XMPP多用户聊天,Kerberos认证,p2p文件分享等等。因项目存在大量CentOS6版本,需要验证能否在CentOS6版本安装Rocket.Chat。

官网

github

主要功能:

  • 群组聊天
  • 直接通信
  • 私聊群
  • 桌面通知
  • 媒体嵌入
  • 链接预览
  • 文件上传
  • 语音/视频
  • 聊天
  • 截图

技术:

  • 使用 Meteor,包括 Blaze 前端
  • 由 JavaScript 和 CoffeeSript 编写
  • MongoDB (because of Meteor)

优势:

  • 丰富的特性
  • Sandstorm 和 Docker 支持
  • 使用 Meteor 创建原生桌面和移动应用
  • 支持声音是视频聊天和屏幕分享
  • 使用 APIs, hubot 或者 webhooks 来接收第三方服务的通知
  • 各种语言本地化

CentOS6手动安装Rocket.Chat

环境及依赖:

  • centos6.8_x64(无网络环境)
  • gcc-c++
  • nodejs
  • GraphicsMagick
  • curl
  • mongodb-org

1. 安装gcc-c++

安装所需依赖包如下(按序安装,下同):

1
2
3
4
5
6
7
8
9
10
11
ppl-0.10.2-11.el6.x86_64.rpm
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
cpp-4.4.7-17.el6.x86_64.rpm
kernel-headers-2.6.32-642.el6.x86_64.rpm
glibc-headers-2.12-1.192.el6.x86_64.rpm
glibc-devel-2.12-1.192.el6.x86_64.rpm
libgomp-4.4.7-17.el6.x86_64.rpm
gcc-4.4.7-17.el6.x86_64.rpm
libstdc++-devel-4.4.7-17.el6.x86_64.rpm
gcc-c++-4.4.7-17.el6.x86_64.rpm

2. 安装mongoDB

安装所需依赖包如下:

1
2
3
4
5
mongodb-org-server-3.6.9-1.el6.x86_64.rpm
mongodb-org-mongos-3.6.9-1.el6.x86_64.rpm
mongodb-org-shell-3.6.9-1.el6.x86_64.rpm
mongodb-org-tools-3.6.9-1.el6.x86_64.rpm
mongodb-org-3.6.9-1.el6.x86_64.rpm

3. 安装GraphicsMagick

安装所需依赖包如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
libfontenc-1.1.2-3.el6.x86_64.rpm
freetype-2.3.11-17.el6.x86_64.rpm
libICE-1.0.6-1.el6.x86_64.rpm
libSM-1.2.1-2.el6.x86_64.rpm
libXau-1.0.6-4.el6.x86_64.rpm
libxcb-1.11-2.el6.x86_64.rpm
libXext-1.3.3-1.el6.x86_64.rpm
libjpeg-turbo-1.2.1-3.el6_5.x86_64.rpm
jasper-libs-1.900.1-16.el6_6.3.x86_64.rpm
lcms2-2.8-6.el6.x86_64.rpm
libpng-1.2.49-2.el6_7.x86_64.rpm
libtiff-3.9.4-10.el6_5.x86_64.rpm
libwmf-lite-0.2.8.4-25.el6_7.x86_64.rpm
fontconfig-2.8.0-5.el6.x86_64.rpm
libXfont-1.5.1-2.el6.x86_64.rpm
xorg-x11-font-utils-7.2-11.el6.x86_64.rpm
urw-fonts-2.4-11.el6.noarch.rpm
libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm
GraphicsMagick-1.3.28-1.el6.x86_64.rpm

4. 安装nodeJS

安装所需依赖包如下:

1
xz-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm

nodeJS为源码编译后的二进制包tar.xz,需要解压

1
2
xz node-v10.13.0-linux-x64.tar.xz
tar -xvf node-v10.13.0-linux-x64.tar -C /opt/

设置环境变量,vim /etc/profile:

1
2
3
export NODE_HOME=/opt/node-v10.13.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

source或重新登录生效

5. 安装npm包inherits和n

将inheritst和n包解压到node目录下的npm_packages目录

1
2
3
cd /opt/node-v10.13.0-linux-x64/ && mkdir npm_packeges
tar -zxvf inherits.tgz /opt/node-v10.13.0-linux-x64/npm_packeges
tar -zxvf n.tgz /opt/node-v10.13.0-linux-x64/npm_packeges

进入inherits和n包目录

1
2
npm install -g /opt/node-v10.13.0-linux-x64/npm_packeges/inherits
npm install -g /opt/node-v10.13.0-linux-x64/npm_packeges/n

6. 手动安装node8.11.3

1
2
3
mkdir -p /usr/local/n/versions/node
tar -zxvf node-v8.11.3-linux-x64.tar.gz -C /usr/local/n/versions/node/
mv /usr/local/n/versions/node/node-v8.11.3-linux-x64 /usr/local/n/versions/node/8.11.3

查看8.11.3是否成功安装

1
2
3
n

ο node/8.11.3

安装rocket.chat

解压rocket.chat包并安装

1
2
3
tar -xvf rocket.chat-0.71.1.tar -C /opt
mv /opt/bundle /opt/Rocket.Chat
cd /opt/Rocket.Chat/programs/server && npm install

Centos6.8安装时会碰到二个错误

  • 提示fibers@2.0.0这个库无法正常安装

详见github

  • 提示libstdc++.so.6: version `GLIBCXX_3.4.20’ not found

详见github

即由于CentOS6和部分低版本的CentOS7由于库版本老旧,无法满足Rocket.Chat的安装运行要求!

至此,测试验证结束,此方案不通。

CentOS6以Docker方式安装Rocket.Chat

安装docker

安装依赖包

1
2
3
4
5
6
lua-alt-getopt-0.7.0-1.el6.noarch.rpm
lua-lxc-1.0.11-1.el6.x86_64.rpm
lxc-libs-1.0.11-1.el6.x86_64.rpm
libcgroup-0.40.rc1-27.el6_10.x86_64.rpm
lua-filesystem-1.4.2-1.el6.x86_64.rpm
lxc-1.0.11-1.el6.x86_64.rpm

安装docker-io-1.7(CentOS6.8支持的版本)

1
rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm

配置国内镜像

在/etc/sysconfig/docker的"other_args="添加国内镜像源

1
other_args="--registry-mirror=https://pyyo9ltl.mirror.aliyuncs.com"

重新启动docker

1
service docker restart

安装Rocket.Chat

拉取必要镜像

1
2
docker pull rocketchat/rocket.chat
docker pull mongo:3.6.9

启动mongoDB

1
2
3
4
docker run \
--name rocketchat-mongodb \
-v /opt/rocket.chat/mongodb/data:/data/db \
-d mongo:3.6.9

启动Rocket.Chat

1
2
3
4
5
6
docker run \
--name rocketchat \
--link rocketchat-mongodb:mongo \
-v /opt/rocket.chat/uploads:/app/uploads \
-p 3000:3000 \
-d rocketchat/rocket.chat

访问Rocket.Chat: http://host_ip_or_domain_name:3000

总结

因此,CentOS6因为系统版本过低,Rocket.Chat不能很好的兼容安装;需要借助docker来实现。