世界上最伟大的投资就是投资自己的教育
使用 vagrant 快速搭建 Rails 开发环境
1. 介绍
这篇文章是写给要使用 rails 作为开发环境的新手的。我是在 mac 平台上使用,windows 平台也应该同样适用。
我们的目的是实现用 virtualbox 运行 ubuntu 系统,在里面创建 rails 的开发环境,而我们写代码,却不在 ubuntu 里,还是在你的 mac 上或 windows 中。
而 vagrant 就是对 virtualbox 进行包装,可以提供一些命令行工具对虚拟机 virtualbox 进行操作。
2. 安装 vagrant 和 virtualbox
首先要安装的是 vagrant 和 virtualbox。
分别进入它们的官网进行安装就可以了,它们都有二进制包的,找到适合你平台的就可以。
3. 使用 vagrant
要学会使用 vagrant,可以看其官方的文档。
一般来说我们大约是这样使用的。
先找到一个你需要的 linux 镜像,现把它添加到系统中,然后初始化这个镜像并启动它,因为它是一个 linux 系统,最后进入里面进行操作。
添加镜像的操作类似这样:
$ vagrant box add hashicorp/precise64
$ vagrant init hashicorp/precise64
或者类似这样
$ vagrant box add --name ubuntu-14.04 https://github.com/kraksoft/vagrant-box-ubuntu/releases/download/14.04/ubuntu-14.04-amd64.box
$ vagrant init ubuntu-14.04
但是我们不会这么做
我们会使用一个别人弄好的 box 来用。
它的地址是:https://github.com/rails/rails-dev-box。
把它 clone 下来,然后它会主动装好各种软件,比如 redis,postgresql 等,省事。
$ git clone https://github.com/rails/rails-dev-box.git
$ cd rails-dev-box
接着你执行下面的命令,它就会帮你下载镜像,并安装一些必要的软件。
$ vagrant up
等一切处理完毕。
再使用下面的命令进行虚拟机。
$ vagrant ssh
你已经进入到一个 linux 的环境中,你在虚拟机中可以执行很多操作,比如安装一些软件,这些软件都会保存下来的。
vagrant up
是把虚拟机启动的意思,如果要把虚拟机关掉,可以使用vagrant halt
。
下面列举一些 vagrant 的常用命令:
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机
4. 安装 ruby 环境
现在我们 ssh 进虚拟机,进行安装 ruby。
我们使用rvm来管理 ruby。
进入rvm
的官方首页,在首页上找到两条命令行,那个就是安装方法,在终端上分别贴一下。
例如:
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ \curl -sSL https://get.rvm.io | bash -s stable
这两条命令要在官方网页上找,因为那才是最新的
装好之后,就可以按ctrl + d
退出后,再重新vagrant ssh
进去。
下面我们准备用rvm
来安装 ruby。
不过在安装之前我们把 rvm 的 ruby 源改一下,改用国内的,这样安装起来快点。
它的地址是:https://ruby.taobao.org/。
我们使用下面的命令:
sed -i -E 's!https?://cache.ruby-lang.org/pub/ruby!https://ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db
改了源之后,下面来安装 ruby。
你可以安装任意一个版本的 ruby。
比如我安装的是 2.3.0 的。
$ rvm install 2.3.0
等装好之后,可以安装一下 rails。
同样在安装之前,可以换一下 gem 的源。
它的地址是:https://gems.ruby-china.org/。
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem install bunlder
$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org
再安装。
$ gem install rails
5. 设置开发环境
现在我们准备用 rails 生成一个项目,并把它跑起来。
首先进入/vagrant
目录,为什么要进入这个目录呢?
因为这个目录默认情况下是会映射到外面的主机 (虚拟机外面) 的一个目录,就是我们最早 clone 的那个rails-dev-box
目录。
它们的内容是一模一样的,不信你可以试一下,在/vagrant
新建一个文件,看外面的rails-dev-box
会不会也有那个文件。
现在用 rails 生成一个新项目。
$ cd /vagrant
$ rails new hello
进入hello
目录,然后运行这个项目。
$ cd hello
$ rails s --bind 0.0.0.0
--bind 0.0.0.0
表示绑定的 ip 地址是外面主机可以访问到的。
这个时候你会发现,我虽然把项目跑起来了,可是在外面主机的浏览器如何访问呢
可能你会使用ifconfig
命令来查看 ip 地址,但是你会发现那些 ip 地址都不能访问的。
6. 设置网络
现在我们来解决上面不能访问的问题。
我们只需要改一下配置文件,再重启一下虚拟机就可以。
打开rails-dev-box
中的Vagrantfile
文件,添加下面一行配置:
config.vm.network :private_network, ip: "192.168.33.10"
再使用下面的命令重启一下虚拟机。
$ vagrant reload
重启虚拟机,这样我们就能用 192.168.33.10 访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。
7. 打包分发
现在我们把这个开发环境弄好了,我们可以把这个打包分发给其他同事,这样同事就省事多了。
退出并关闭虚拟机后,执行下面的命令:
$ vagrant package
打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。
添加方法:
假设我们拿到的 box 存放路径是 ~/box/package.box,在终端里输入:
$ vagrant box add hahaha ~/box/package.box # 添加 package.box 镜像并命名为 hahaha
$ cd ~/dev # 切换到项目目录
$ vagrant init hahaha # 用 hahaha 镜像初始化。
完结。
参考链接:
本站文章均为原创内容,如需转载请注明出处,谢谢。
© 汕尾市求知科技有限公司 | Rails365 Gitlab | 知乎 | b 站 | csdn
粤公网安备 44152102000088号 | 粤ICP备19038915号
Top