相信大家对VMware和VirsualBox不会太陌生,虚拟化的好处在这里我就不多说了。那么我们就一起来学习用Vagrant 为自己来打造一个神奇的跨平台开发环境吧!!

开发过程中,我们经常碰到一个问题,总有成员会抱怨说:“我这里编译出错啊”,或者,“这个页面在我机器上运行不了啊”。这类问题层出不穷,大多是由于开发环境搭建过程中的不一致所产生。而我们每个人不可能所持的开发环境完全一致,毕竟每个人都有自己的喜好。

为了避免“这个页面只可以在我的电脑上运行的尴(wu)尬(nai)的局面”,怎么解决这个问题呢?

我们都知道VirtualBox是一个虚拟机,我们可以在上面虚拟一台或多台完整的计算机系统。那么也许可以由团队创建一个用于开发的虚拟机,确保这个虚拟机是可以完成工作的,然后将其分发给各个成员,让他们按照指示去搭建环境。

当然,这在一定程度上可以解决问题。但是,每次建立虚拟机的时候,总有许多参数需要设置,总是或多或少遗漏了些什么,最后导致虚拟机和需求不一样。而且,开发过程中,很可能会由于人为的错误,导致虚拟环境出现故障,需要重新搭建环境。。。。

Vagrant的出现,则很好的解决了上面的问题。Vagrant 可以很好的结合虚拟机(如VirtualBox、VMWare这个版本要付费,对应的Vagrant 也是收费),根据配置文件,轻松的创建多台虚拟机实验环境。我们可以在配置文件中指定,包括从哪里去下载这个虚拟机、网络该如何连通、主机名、IP地址,甚至可以指定开机后自动配置的脚本。


我们先介绍到这里,接下来我们开始安装。

Vagrant 可以运行在 Mac OS X、Linux,以及 Windows 上,和 VirtualBox 一样,都是免费的开源软件
既然是虚拟机的配置工具,那么我们首先得需要一个虚拟机,这里我们使用 VirtualBox 虚拟机。如果没有安装,直接从官方网站:https://www.virtualbox.org/wiki/Downloads下载安装即可。

然后,我们从 Vagrant 的官方网站(http://www.vagrantup.com/downloads)下载这个软件,下载后在各自的系统上安装。在这里我们使用Ubuntu 15.04

sudo apt-get install vagrant

sudo apt-get install virtualbox-qt

以上两行命令用于安装 Vagrant 和 VisualBox。

之后,命令行里面就多了一个vagrant命令。我们可以通过vagrant -v来检查所安装的 Vagrant 的版本。

作者:程序猿Timothy
链接:https://www.jianshu.com/p/2d4afce8fe12
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

什么是Vagrant的更多相关文章

  1. Vagrant 基础全面解析

    这篇 Vagrant 入门文章将带你创建一个 Vagrant 项目,这个过程将会用到 Vagrant 所提供的主要基本特性.如果想了解 Vagrant 能为你带来哪些好处,可以阅读 Vagrant 官 ...

  2. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  3. 使用packer制作vagrant centos box

    使用packer制作vagrant box:centos 制作vagrant box,网上有教程,可以自己step by step的操作.不过直接使用虚拟在VirtualBox中制作vagrant b ...

  4. vagrant 1.8.6 安装过程及总结遇到的坑

    下面先总结遇到的问题,这些问题如果你也遇到,可能需要搜索很多次才能找到原因. 如果想看安装过程,可以先直接跳到后面第二部分部分. 1 问题汇总: 1.1 vagrant版本过高问题. vagrant ...

  5. 快速打造跨平台开发环境 vagrant + virtualbox + box

    工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑 刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电 ...

  6. Vagrant基础简要记录

    Vagrant是一种开源软件,它为跨众多操作系统构建可重复的开发环境提供了一种方法.Vagrant使用提供者(provider)来启动隔离的虚拟环境.默认的提供者是Virtualbox Vagrant ...

  7. Mac OSX+VirtualBox+Vagrant+CentOS初体验

    1.安装VirtualBox VirtualBox下载地址 免费小巧非常适用,根据自己机器系统选择下载包 VirtualBox 安装包 2.安装并使用Vagrant 1)Vagrant下载地址 选择下 ...

  8. window 使用vagrant搭建开发开发环境

    # -*- mode: ruby -*-# vi: set ft=ruby : # All Vagrant configuration is done below. The "2" ...

  9. LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04

    工作一直用的是别人打包好的虚拟机开发环境,感觉确实很酷.所以准备自己配个开发环境,为之后自己开发一些有趣的东西做准备. ok,开始~~~ 一.安装软件 vagrant和virtualbox 此处需注意 ...

  10. Vagrant使用

    常用命令 命令 说明 vagrant up 运行vm vagrant status 查看当前虚拟机运行状态 vagrant suspend 暂停虚拟机 vagrant ssh ssh方式登录虚拟机 v ...

随机推荐

  1. Vue+abp微信扫码登录

    最近系统中要使用微信扫码登录,根据微信官方文档和网络搜索相关文献实现了.分享给需要的人,也作为自己的一个笔记.后端系统是基于ABP的,所以部分代码直接使用了abp的接口,直接拷贝代码编译不通过. 注册 ...

  2. Servlet+JSP及Tomcat常见面试题(面试必备)

    1.  什么是servlet? servlet是用来处理客户端请求并产生动态网页内容的java类 2.  Tomcat的缺省端口是多少,怎么修改? a)      默认端口号是8080 b)      ...

  3. 我所不知道的Makefile语法

    问题一: $(CC) -c $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ 这里的$^和$@是设么意思? 经过查找,该特殊符号的用法如下: 假如:all:library.cpp ma ...

  4. 深入浅出一下Java的HashMap

    在平常的开发当中,HashMap是我最常用的Map类(没有之一),它支持null键和null值,是绝大部分利用键值对存取场景的首选.需要切记的一点是——HashMap不是线程安全的数据结构,所以不要在 ...

  5. eclipse升级Android SDK Tool版本到25.2.5后运行项目报错Unable to build: the file dx.jar was not loaded from the SDK folder

    概述 由于最近通过SDK-Manager更新了build-tools,当要用到dx.jar这个包时,自动调用最新版本Android SDK build-tools中dx.jar,但是运行android ...

  6. Solr 16 - 增删改Solr中索引数据的几种方式 (在URL上或Web页面中操作)

    目录 1 添加/更新索引数据 1.1 JSON格式的操作 1.2 XML格式的操作 2 删除索引数据 2.1 删除符合特定条件的数据 2.2 删除指定ID的数据 2.3 删除全部索引数据 3 在doc ...

  7. C# winForm 窗口跳转后关闭上一个窗口的方法

    FrmMain main = new FrmMain(); main.Owner = this; this.Hide(); main.ShowDialog(); Application.ExitThr ...

  8. 如何在windows系统下安装swoole

    swoole框架是一个很神奇很厉害的框架,它弥补了PHP的本身的一些不足之处.其实swoole确切的说是一个使用C语言编写的PHP扩展,并且这个扩展不能够在windows系统使用,但是就目前的开发环境 ...

  9. 观察者模式与.Net Framework中的委托与事件

    本文文字内容均选自<大话设计模式>一书. 解释:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够 ...

  10. xml代码 解决eclipse乱码问题

    <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springf ...