[者也]安装过程中填的那些坑

本贴最后更新于 2812 天前,其中的信息可能已经事过景迁

者也】是由@huacnlee写的类似Quora的一个垂直问答社区,今天在本地安装过程中,填了一些坑,这篇文章不重点讲安装过程,而是说说安装过程中遇到的一些坑,希望对你有点帮助。

最终应用跑起来如图所示

zheye

 

环境:Mac + RVM + brew

先将工程clone下来

$ git clone git://github.com/huacnlee/quora.git

然后,使用mac命令行工具brew相继安装了MongoDB2.4.9,node.js0.10.25,Redis2.8.3 这三个软件的版本都比官网上面要求的高,但是没有关系。

$ brew install mongodb node.js redis

ruby的版本

首先确定你本机上面的ruby版本,我使用rvm进行ruby版本管理的,因为原来已经安装过ruby2.1.0这个版本,而官网上指定的是使用1.9.2,但是觉得高版本向下兼容,所以就在2.1.0这个版本下直接执行命令bundle来安装所有的gem包,结果不成功。

$ cd quora
$ bundle install --path vendor/bundle

反复几次后,只好从rvm中删除掉2.1.0这个版本,然后重新安装1.9.2。

$ rvm uninstall 2.1.0
$ rvm install 1.9.2

bundle的cache

继续安装过程,执行bundle命令。

bundle install --path vendor/bundle

根据提示发现Gemfile中有个git仓库无法clone下来,打开Gemfile文件一看,原因是该htmldiff.git项目已经没有在huacnlee下了,可能他自己已经忘了这回事了,只好在github下搜索原作者的项目地址,修改为如下所示即可。

gem "htmldiff", :git => "git@github.com:myobie/htmldiff.git"

再次执行bundle,又给一个错误提示,rake这个gem无法读取,一开始以为是权限问题,然后到bundle安装的指定目录vendor/bundle/ruby/1.9.1/cache下将该rake.gem文件加上全部的读写执行权限,但是还是失败。这个时候只有求助万能的Stackoverflow了,根据类似的问题,删除掉原来的cache目录(我是直接删掉了vendor/bundle这个目录),然后重新执行bundle命令,一切ok,所有gem安装成功。估计问题原因是在原来的ruby 2.1.0 环境下,执行过一次bundle命令,导致cache中已经存在了一些gem文件。

mongodb的配置

接下来就是修改一些配置文件的问题了,如下

$ cp config/mongoid.yml.default config/mongoid.yml
$ cp config/setting.yml.default config/setting.yml
$ cp config/redis.yml.default config/redis.yml

redis.yml和setting.yml文件不需要修改,需要修改的是mongoid.yml文件,看其中有这样一行代码。

uri: mongodb://root:666666@flame.mongohq.com:27070/quora

这是连接mongodb的url串,我们需要在mongodb中建立数据库quora和用户root,其密码是666666;建立成功后,执行命令启动应用。

$ script/rails s -e development_mongohq

报错,还是报错,是权限验证错误,对于我们这种在bug环境中长大的同志,这点问题还是可以解决的,经过排查发现是uri串中本地地址写错了,应该改为localhost,端口改为27017,如下。

uri: mongodb://root:666666@localhost:27017/quora

重新启动应用,一切OK!

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 93 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • OnlyOffice
    4 引用 • 24 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 175 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    116 引用 • 99 回帖 • 268 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 222 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 352 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 592 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 133 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 417 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 85 回帖
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • 996
    13 引用 • 200 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    25 引用 • 215 回帖 • 165 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 697 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 690 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 152 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 544 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖 • 1 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 398 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    123 引用 • 168 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 626 关注