本文系统环境:Yosemite 10.10.5。由于系统、软件包等环境各异以及博文会随着时间推移会不再兼容,建议读者在某个步骤出错或者与博文结果相差太大时,读懂每个步骤的重点,多注意各步骤后斜体字内容。如遇到执行命令的权限问题,请在命令前增加 sudo 关键字,输入管理员密码执行。
直接执行下面命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
以系统能够正常使用 brew -v 命令为成功。
本步骤重点旨在安装工具,如果失败,请到官网 http://brew.sh/ 搜寻最新安装方法。遇到网页打不开或过慢情况,请考虑翻墙事项。
直接执行命令:
brew install virtualbox
由于名称 virtualbox 是泛名,如执行失败,请根据提示,修改名称即可。以下是某个具体的例程(就如一开始提到的,由于各方面因素,你的可能不一致,这些不应该影响你操作)
PINE:web mac$ brew install virtualbox
Error: No available formula with the name "virtualbox"
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
These formulae were found in taps:
Caskroom/cask/virtualbox-extension-pack Caskroom/versions/virtualbox-beta
Caskroom/cask/virtualbox
To install one of them, run (for example):
brew install Caskroom/cask/virtualbox-extension-pack
通过上述提示,你将命令修改为:
brew install Caskroom/cask/virtualbox
在执行,最后以系统能正常使用 virtualbox -v 命令为成功。
步骤二旨在命令行上安装 virtualbox 程序,如果上述方法不成功,请搜寻网上其他方法即可。
与步骤二一致,先执行以下泛命令,如果出错,跟步骤二一样,修改命令后在执行。最后以正常执行 vagrant -v 命令为成功
brew install vagrant
执行下面两条命令:
vagrant init ubuntu/trusty64;
vagrant up --provider virtualbox
此过程会下载虚拟机 box 文件,所以较慢。如遇网络问题,如上所述,仍是考虑翻墙。
最后以执行 vagrant status 命令后,显示一台正在运行的虚拟机为成功,例如:
PINE:web mac$ vagrant status
Current machine states:
default running (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
该步骤重点是用 vagrant 工具初始化一个适合 rails 的工作环境(虚拟机),命令中选用的是 Ubuntu 14.04 系统。如你有其他需求,可以在 vagrant 的 box 搜寻仓库 https://atlas.hashicorp.com/boxes/search 中查找,但注意一定要是适合 rails 的,因为这样之后安装环境能减少很多依赖问题。vagrant 命令使用问题,请参照官方文档 https://www.vagrantup.com/docs/
以上是建立好了一个适合 rails 的虚拟机,这个环境以后进行修改后可以重新打包分发给你的同事朋友,这样你们就拥有两份完全一致的系统。下面介绍在新建的 ubuntu 虚拟机环境中搭建出一个能够运行的 rails 环境,并使这个服务器跑起来。
# 先在命令行连接刚建立的虚拟环境:
vagrant ssh
# 进入虚拟ubuntu环境后执行下列命令安装rvm工具:
curl -L https://get.rvm.io | bash -s stable
安装完后执行 rvm -v
结果没问题即安装正确。
出问题可以参照 rvm 官方文档 http://rvm.io/ 中的操作步骤。
# 先安装ruby 2.2.3:
rvm insztall 2.2.3
# 接下来设置 Ruby 版本:
rvm 2.2.3 --default
# 测试安装和设置的结果:
ruby -v
如显示结果版本为 2.2.3,代表以上操作正确。
遇到问题,参照 rvm 官方操作 http://rvm.io/
修改 ruby 的 gem 源(此步骤非必需,解决国外服务器访问过慢问题):
gem source -r https://rubygems.org/;
gem source -a https://ruby.taobao.org
# 先安装rails需要的bundle包:
gem install bundler
# 设置bundle 使用国内源(此步骤也是必需,和上面一样解决国外服务器访问过慢问题):
bundle config 'mirror.https://rubygems.org' 'https://ruby.taobao.org'
# 安装 rails 环境
gem install rails
最后执行命令 rails -v 测试 rails 环境安装结果。
这里提供 ruby 官方文档地址:http://www.ruby-lang.org/zh_cn/documentation/ ,遇到问题请在此参照官方最新的 rails 安装方法
通过上述,所有工作已经完成,你可以将该辛苦制作的环境打包分发给同事朋友了。如果你还想继续验证 rails 环境的工作,想在宿主机中访问到环境中开启的 Web 服务,就继续往下看:
# 退出虚拟机环境:ctrl + d,然后在你的主机中找到vagrantfile并打开编辑,修改下面这行:
config.vm.network "private_network", ip: "192.168.50.4"
# 上面192.168.50.4是为虚拟机设置的ip地址,之后就是通过该地址访问虚拟机的Web服务。
# 让vagrant重新载入配置文件,使网络设置生效:
vagrant reload
# 完成后重新连接虚拟机:
vagrant ssh
进入虚拟机后,执行命令 ifconfig,显示有网卡 ip 为 192.168.50.4(上述设置的 ip)则上述操作生效。
这个步骤的目的是用 vagrant 让宿主机与 virtualbox 虚拟机互连,上面用的只是其中一种方式(私有网络 Private network),还有很多其他方式可以解决这个问题。
# 在虚拟机的命令行下,执行:
rails new demo --no-ri --no-doc
# 其中 --no-ri --no-doc 参数作用是取消下载ri以及doc文档,为项目新建节省时间,这个可以不指定。
# 完成后,进入新建的demo项目目录:
cd demo
# 用上面设置的ip(192.168.50.4)开启Web服务:
rails server -b 192.168.50.4
最后打开宿主机浏览器,访问:http://192.168.50.4:3000,如显示出 rails 欢迎界面,恭喜你,成功了。
如果出问题,你可以返回步骤八,试试颜色标识里提到的除了“私有网络 Private network”的其他方法,重新解决宿主机和虚拟机的互连问题!