专栏首页哈雷彗星撞地球Mac 下安装运行Rocket.chat

Mac 下安装运行Rocket.chat

最近花了一周的时间,复习了HTML、CSS、原生JS,并学习了Node.js、CoffeeScript.js、MongoDB,入了下门。 因为准备在Rocket.chat 上做二次开发,所以先下载和安装了Rochet.chat 的环境。由于Rocket.chat在Mac环境下下载和运行非常简单,所以相关的文章非常少,但是还是有一些坑,会让我们怀疑是不是没这么简单,这里记录下Rocket.chat 的下载和运行过程。

Rocket.chat 简介

Rocket.Chat 是特性最丰富的 Slack 开源替代品之一。 它的github 地址是https://github.com/RocketChat/Rocket.Chat 主要功能:群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频 聊天,截图等等。 Rocket.Chat 原生支持 Windows,Mac OS X ,Linux,iOS 和 Android 平台。Rocket.Chat 通过 hubot 集成了非常流行的服务,比如 GitHub,GitLab,Confluence,JIRA 等等。 高级的特性包括:OTR 消息,XMPP 多用户聊天,Kerberos 认证,p2p 文件分享等等。 最重要的是它是100%开源,可以快速编译出iOS、Android 安装包。

准备工作

由于Rocket.chat 使用的是Meteor 框架,而Meteor 框架是对Node.js 的封装,源码中又使用到了CoffeeScript.js,使用的数据库是MongoDB,所以要在Rocket.chat 上做二次开发,就需要学习的技术有Meteor、Node.js、CoffeeScript.js、MongoDB、HTML(5)、CSS等。 其他资料: CoffeeScript中文网:http://coffee-script.org/ Meteor中文教程:http://zh.discovermeteor.com Rocket.chat 要运行,必须要安装Node.js、NPM、Meteor(包含了MongoDB)。

安装Node.js

Node.js 的安装很简单,只需要从官网下载pkg安装包,然后双击安装即可。Node.js 中包含了NPM,所以当Node.js安装完成后,NPM也安装完成了。 安装完成后可以在终端中测试一下:使用node -vnpm -v 可以查看安装的Node.js 和NPM的版本。

安装Meteor

Mac 下安装Meteor 使用一行命令即可:

curl https://install.meteor.com/ | sh

下载安装过程是这样的:

等下载到100%后,就代表Meteor 已经安装完毕。安装完毕,你会看到如下提示:

一般说来到这里,Meteror环境已经安装好了,我们可以先创建一个小工程,测试一下Meteor的环境,以确保Meteor环境正常(因为后面安装Rocket.chat会出现各种错误,导致你怀疑Metor有问题)。 创建一个小工程的指令,首先进入我们要保存的项目的文件夹,然后依次输入如下三个指令:

$ meteor create my_cool_app
$ cd my_cool_app
$ meteor

这里是终端提示的指令有一点点区别,~/代表是在当前用户根目录。

我依次输入的命令:

在浏览器中输入:http://localhost:3000/ ,然后会看到这样的页面,即代表小项目运行正常:

下载和运行Rocket.chat

下载Rocket.chat 最好使用git 的命令:

git clone https://github.com/RocketChat/Rocket.Chat.git

等工程源码下载完毕后,进入对应文件夹,然后运行:

cd Rocket.Chat
meteor

在执行meteor 命令,运行时可能会遇到如下的错误信息:

=> Started proxy.                             
=> Started MongoDB.                                                             
/Users/yf/.meteor/packages/meteor-tool/.1.4.2.zi1w5b++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/meteor-promise/promise_server.js:190
      throw error;
      ^

Error: EBADF: bad file descriptor, read
    at Error (native)
 => awaited here:
    at Promise.await (/Users/yf/.meteor/packages/meteor-tool/.1.4.2.zi1w5b++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/meteor-promise/promise_server.js:39:12)
    at Object.wrapper [as readFile] (/tools/fs/files.js:1522:32)
    at /tools/isobuild/isopack.js:979:15
    at Array.forEach (native)
    at Function._.each._.forEach (/Users/yf/.meteor/packages/meteor-tool/.1.4.2.zi1w5b++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)

这个错误提示,我怀疑是工程未下载完整,或者有文件缺失导致的。

我的做法:删除工程,然后在网络较好的情况下,重新执行 git clone 命令 下载工程。这个错误没有再出现。

如果遇到下面这个错误:

解决办法: 执行 npm cache clean 命令,清除npm 下载的库的缓存,然后再次运行,项目就会正常跑起来。

当项目正常运行,我们会看到如下提示信息:

如果你到了这里,恭喜你! Rocket.chat 已经正常跑起来了,我们可以在浏览器内输入http://localhost:3000/ ,就会看到Rocket.chat的登录页面。

提示: 第一个注册的用户是管理员,后面注册的都是普通用户。 管理员有管理系统的权限,这个自己去系统里摸索吧。

我登录之后是这样的:

Mac 下安装运行Rocket.chat到这里就OK了,希望能帮助你解决一些问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Node.js 撸第一个Web应用

    使用Node.js 创建Web 应用与使用PHP/Java 语言创建Web应用略有不同。 使用PHP/Java 来编写后台代码时,需要Apache 或者 Ng...

    Haley_Wong
  • Mac 下安装node.js

    Node.js 是一个用Chrome's V8 JavaScript engine 构建的 JavaScript 运行时框架。Node.js 使用事件驱动、非阻...

    Haley_Wong
  • Mac 升级至10.11后 CocoaPods不能用?现象解决方式

    一直不想升级到10.11,最近为了安装Xcode 7.3升级系统后,CocoaPods不能用了。 首先报的错误是:

    Haley_Wong
  • 网络设备配置管理与版本控制

    网络设备配置管理与版本控制 摘要 2014-12-25 我的系列文档 Netkiller Architect 手札 Netkiller Developer ...

    netkiller old
  • CVPR 2020 | 基于多智能体RL实现多轮连续交互,IteR-MRL使图像分割算法达到医用标准

    现有的交互式图像分割算法虽然能迭代式地更新分割结果,但很大程度上忽略了对连续交互之间动态性的探索,造成分割效率大大降低。

    机器之心
  • 我们为什么需要SDN?

    众所周知,相比发展迅速的计算机产业,网络产业的创新十分缓慢。每一个创新都需要等待数年才能完成技术标准化。为了解决这个问题,SDN创始人Nick McKeown教...

    博文视点Broadview
  • OC代码规范1——多用类型常量,少用#define预处理指令

    两年前针对这一点写过一篇文章Effective Objective-C 2.0——多用类型常量,少用#define预处理指令,本文是在这篇文章的基础上进行扩展的...

    拉维
  • 【刘挺】文本情感分析攻克机器人情商难题

    技术的创新在不断地“刷新”着传媒的体态,如何尽可能地做到对技术的日新月异“运筹帷幄”,让技术为“我们”所用,这个探讨,我们一直在进行中。在人工智能与传感技术正席...

    新智元
  • 在 Debian Stretch 上设置自动升级

    不少博主,出于安全、稳定的考虑,在自己的服务器上使用了 Debian 操作系统。我们知道,对于多数应用环境,特别是 LNMP 环境,绝大多数安全更新可以自行安装...

    Debian社区
  • Redis 存储机制 原

    Redis(REmote DIctionary Server) 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

    wuweixiang

扫码关注云+社区

领取腾讯云代金券