最近花了一周的时间,复习了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了,希望能帮助你解决一些问题。

Mac 下安装运行Rocket.chat的更多相关文章

  1. 2019 Mac下安装运行Homestead环境

    为了能提高自己的价值,还是要坚持学习新东西才行.这不,从多学会一个PHP开发框架开始.在开始使用Laravel之前,很多"经验"告诉我要先安装Homestead,至于好处,大家可以 ...

  2. Mac环境下安装运行splash

    http://blog.csdn.net/chenhy8208/article/details/69391097 最近需要使用scrapy爬虫做一些开发,用到了splash.我本机是mac环境,跳着看 ...

  3. Mac 下安装Jenkins

    Mac 下安装Jenkins 开始 Jenkins是一个基于Java开发的一种持续集成工具,用于建工持续重复的工作,功能包括: 持续的软件版本发布/测试项目 监控外部调用执行的工作. 近期打算搭建自动 ...

  4. Mac下安装Wireshark,双击闪退

     Mac OS X上使用Wireshark抓包(http://blog.csdn.net/phunxm/article/details/38590561) Mac下安装Wireshark /Appli ...

  5. 【高可用HA】Apache (1) —— Mac下安装Apache Httpd到自定义路径(非/etc/apache2)

    Mac下安装Apache Httpd httpd版本: httpd-2.4.17 参考来源: Tomcat Clustering - A Step By Step Guide Apache HTTP ...

  6. Mac下安装HBase及详解

    Mac下安装HBase及详解 1. 千篇一律的HBase简介 HBase是Hadoop的数据库, 而Hive数据库的管理工具, HBase具有分布式, 可扩展及面向列存储的特点(基于谷歌BigTabl ...

  7. 配置apache,及mac下安装mysql

    先打开apache,在浏览器上输入  localhost     回车后会如果屏幕上显示:It works! 如下图: 这说明你的apache已开启 在window下配置apache: 1.找到apa ...

  8. Mac下安装 MongoDB

    Mac 下安装 MongoDB 一般有两种方法,一种是通过源码安装,一种是直接使用 homebrew ,个人推荐使用 homebrew ,简单粗暴. 1.安装 homebrew : /usr/bin/ ...

  9. 个人建站&mac下安装hexo

    title: 个人建站&mac下安装hexo date: 2018-04-18 16:34:02 tags: [mac,blog,个人建站,markdown] --- 这两天使用了markdo ...

随机推荐

  1. node.js使用scp2来进行scp操作

    示例: var client = require('scp2'); client.scp({ host: '175.84.24.92', username: 'remoteusername', pas ...

  2. Redis Cluster 4.0 on CentOS 6.9 搭建

    集群简介 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需 ...

  3. Python3玩转儿 机器学习(2)

    机器学习的基本任务 分类任务 回归任务 分类任务 手写输入数字识别 分类任务: 二分类任务 判断邮件是垃圾邮件或者不是垃圾邮件 判断发放给客户信用卡有风险或者没有风险 判断病患良性肿瘤还是恶性肿瘤 判 ...

  4. [SCOI 2010]字符串

    Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgw ...

  5. bzoj 3672: [Noi2014]购票

    Description 今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会. 全国的城市构成了一棵以SZ市为根的有根树,每个城市与它的 ...

  6. dp之背包总结篇

    //新手DP学习中 = =!! 前言:背包问题在dp中可以说是经典,作为一个acmer,到现在才正式学习dp,可以说是比较失败的.我个人比较认同一点,想要做一个比较成功的acmer,dp.搜索.数学必 ...

  7. VK Cup 2017 - Квалификация 1

    CF上的VK Cup 2017资格赛1,好像很水,因为只有俄文所以语言是最大的障碍--不过之后正式赛貌似就有英文了.(比赛貌似只有开俄文模式才看的到--) 时长1天,不随时间扣分.FallDream ...

  8. hdu 5442 (后缀数组)

    稍微学习了下第一次用后缀数组- - , 强行凑出答案 , 感觉现在最大的问题是很多算法都不知道 ,导致有的题一点头绪都没有(就像本题).  /*推荐 <后缀数组——处理字符串的有力工具>— ...

  9. APIO2017 懵逼记

    Day -1: 移步http://www.cnblogs.com/juruolty/p/6854795.html Day 0: CTSC铁牌后,下一个就是APIO了. lmy,sxy,cxc,lh过来 ...

  10. 上传本地项目到Github

    进入要上传的本地文件夹,右键打开Git Bash Here,然后进行以下步骤: 1.在命令行中,输入"git init",使Test文件夹加入git管理: 2.输入"gi ...