世界上最伟大的投资就是投资自己的教育

整个网站 UI 正在用 tailwind 重写,持续更新维护

首页Linux
随风 · 练气

使用 vagrant 快速搭建 Rails 开发环境

随风发布于5444 次阅读

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 镜像初始化。

完结。

参考链接:

本站文章均为原创内容,如需转载请注明出处,谢谢。

0 条回复
暂无回复~~
喜欢
我的微信官网服务号微信视频号
程序员随风
统计信息
    学员: 22966
    视频数量: 1496
    文章数量: 470

© 汕尾市求知科技有限公司 | 专业版网站 | 关于我们 | 在线学员:1159

粤公网安备 44152102000088号粤公网安备 44152102000088号 | 粤ICP备19038915号

Top