Vagrant 安装指南:从零开始搭建开发环境
Vagrant 是一款强大的虚拟化工具,能够帮助开发者快速创建和管理轻量级的、可复制的开发环境。它通过与 VirtualBox、VMware 或 Hyper-V 等虚拟机提供程序结合使用,让你在本地轻松运行虚拟机。本文将详细介绍如何在 Windows、macOS 和 Linux 系统上安装 Vagrant,并提供一些实用建议。
一、什么是 Vagrant?
Vagrant 由 HashiCorp 开发,旨在简化虚拟机配置和管理。通过一个简单的配置文件(Vagrantfile),你可以定义虚拟机的操作系统、网络设置和软件安装步骤。它特别适合团队协作,确保每个开发者的环境一致,避免“在我机器上能跑”的问题。
二、安装前的准备
在安装 Vagrant 之前,需要满足以下条件:
系统要求
- 操作系统:Windows 10/11、macOS(10.15 或更高版本)、Linux(主流发行版如 Ubuntu、CentOS 等)。
- 硬件:至少 4GB 内存(建议 8GB 或以上),足够的磁盘空间(取决于虚拟机镜像大小)。
- 虚拟化支持:确保 CPU 支持虚拟化技术(如 Intel VT-x 或 AMD-V),并在 BIOS 中启用。
依赖软件
Vagrant 需要一个虚拟机提供程序,以下是常见的选项:
- VirtualBox(推荐,免费):Vagrant 默认支持,安装简单。
- VMware 或 Hyper-V(可选):需要额外插件和许可。
建议先安装 VirtualBox,因为它是免费且与 Vagrant 兼容性最好的选择。
安装 VirtualBox
-
访问 VirtualBox 官网。

-
下载与你的操作系统匹配的版本(Windows、macOS 或 Linux)。

-
运行安装程序,按照提示完成安装。
三、安装 Vagrant
以下是不同操作系统的安装步骤,当前最新版本以 Vagrant 2.4.3(截至 2025 年 3 月 28 日)为例。
1. 在 Windows 上安装
-
下载安装包:
- 访问 Vagrant 官网。

- 点击“Windows”下的下载链接,选择 64 位版本(大多数现代系统适用)。

-
运行安装程序:
- 双击下载的
.exe文件(如vagrant_2.4.3_windows_amd64.exe)。 
- 按照向导点击“Next”,选择安装路径(默认即可),然后点击“Install”。

- 双击下载的
-
验证安装:
- 打开命令提示符(按 Win + R,输入
cmd,回车)。 - 输入以下命令:
vagrant --version - 如果返回类似
Vagrant 2.4.3,说明安装成功。 
- 打开命令提示符(按 Win + R,输入
2. 在 macOS 上安装
- 下载安装包:
- 访问 Vagrant 官网。
- 点击“macOS”下的下载链接,获取
.dmg文件。
- 安装:
- 双击
.dmg文件,打开安装窗口。 - 将 Vagrant 拖到“应用程序”文件夹中。
- 双击
- 验证安装:
- 打开终端(Terminal)。
- 输入:
vagrant --version - 看到版本号(如
Vagrant 2.4.3)即表示成功。
使用 Homebrew 安装(可选)
如果你使用 Homebrew,可以更方便地安装和更新 Vagrant:
brew install vagrant
3. 在 Linux 上安装(以 Ubuntu 为例)
- 更新包列表:
- 打开终端,运行:
sudo apt update
- 打开终端,运行:
- 下载并安装 Vagrant:
- 访问官网下载页面,获取
.deb文件,或者使用命令行:wget -O vagrant.deb https://releases.hashicorp.com/vagrant/2.4.3/vagrant_2.4.3_linux_amd64.deb sudo dpkg -i vagrant.deb - 如果遇到依赖问题,运行:
sudo apt-get install -f
- 访问官网下载页面,获取
- 验证安装:
- 输入:
vagrant --version - 确认版本号输出。
- 输入:
CentOS/RHEL 系统
使用 yum 或 dnf:
sudo yum install -y https://releases.hashicorp.com/vagrant/2.4.3/vagrant_2.4.3_x86_64.rpm
四、初次使用 Vagrant
安装完成后,可以通过以下步骤测试 Vagrant:
- 创建项目目录:
mkdir vagrant-test && cd vagrant-test - 初始化虚拟机:
- 运行以下命令,基于 Ubuntu 20.04 创建一个虚拟机:
vagrant init ubuntu/focal64 - 这会生成一个
Vagrantfile文件。
- 运行以下命令,基于 Ubuntu 20.04 创建一个虚拟机:
- 启动虚拟机:
vagrant up- Vagrant 会自动下载镜像并启动 VirtualBox 中的虚拟机。
- 登录虚拟机:
vagrant ssh- 你将进入虚拟机的命令行环境。
- 关闭并清理:
- 退出虚拟机:
exit。 - 停止虚拟机:
vagrant halt。 - 删除虚拟机:
vagrant destroy。
- 退出虚拟机:
五、常见问题及解决方法
- “Vagrant 命令未找到”:
- 原因:环境变量未配置。
- 解决:在 Windows 上重启命令提示符,或检查安装路径是否在 PATH 中;在 Linux/macOS 上运行
hash -r或重启终端。
- VirtualBox 启动失败:
- 原因:虚拟化未启用或 Hyper-V 冲突。
- 解决:进入 BIOS 启用 VT-x/AMD-V;在 Windows 上禁用 Hyper-V(
bcdedit /set hypervisorlaunchtype off)。
- 下载镜像缓慢:
- 解决:手动下载
.box文件并添加:vagrant box add ubuntu/focal64 /path/to/ubuntu-focal64.box
- 解决:手动下载
六、创建虚拟机
- 创建虚拟机:
打开cmd窗口,输入命令
vagrant init centos/7

初始化完成后,继续输入命令,这个下载的过程可能需要一定时间,耐心等待下载安装即可
vagrant up

安装成功后,打开VirtualBox就可以看到有台虚拟机

- 创建虚拟机:
六、总结
Vagrant 的安装过程简单直接,只需确保依赖 VirtualBox 等虚拟机软件,并根据操作系统选择合适的安装包。安装完成后,你可以通过几行命令快速启动一个开发环境,极大地提升效率。无论是个人项目还是团队协作,Vagrant 都是值得掌握的工具。
相关文章:
Vagrant 安装指南:从零开始搭建开发环境
Vagrant 是一款强大的虚拟化工具,能够帮助开发者快速创建和管理轻量级的、可复制的开发环境。它通过与 VirtualBox、VMware 或 Hyper-V 等虚拟机提供程序结合使用,让你在本地轻松运行虚拟机。本文将详细介绍如何在 Windows、macOS 和 Linux 系统上安装 V…...
APIGen-MT:高效生成多轮人机交互Agent数据的两阶段框架
APIGen-MT:高效生成多轮人机交互数据的两阶段框架 引言 随着人工智能技术的飞速发展,AI代理(Agent)已从简单的聊天机器人发展为能够执行复杂现实任务的系统,例如管理金融交易、安排预约和处理客户服务等。然而&#x…...
【NLP】 21. Transformer整体流程概述 Encoder 与 Decoder架构对比
1. Transformer 整体流程概述 Transformer 模型的整个处理流程可以概括为从自注意力(Self-Attention)到多头注意力,再加上残差连接、层归一化、堆叠多层的结构。其核心思想是利用注意力机制对输入进行并行计算,从而避免传统 RNN …...
《Vue Router实战教程》21.扩展 RouterLink
欢迎观看《Vue Router 实战(第4版)》视频课程 扩展 RouterLink RouterLink 组件提供了足够的 props 来满足大多数基本应用程序的需求,但它并未尝试涵盖所有可能的用例,在某些高级情况下,你可能会发现自己使用了 v-sl…...
开发一个答题pk小程序的大致成本是多少
答题 PK 小程序通常指的是一种允许用户之间进行实时或异步答题竞赛的应用程序,可能结合PK答题、积分系统、排行榜等功能。 一、首先,确定答题 PK 小程序的基本功能模块。这可能包括用户注册登录、题库管理、题目类型(单选、多选、判断等&am…...
Android 应用蓝牙连接通信实现
Android 应用蓝牙连接通信实现,主要包括如下步骤: 一.打开蓝牙 // 获取蓝牙适配器 BluetoothAdapter bluetoothAdapter BluetoothAdapter.getDefaultAdapter() 1.判断蓝牙是否打开, bluetoothAdapter.isEnabled() 2. 如果未打开,执行打开蓝牙…...
GPT-2 语言模型 - 模型训练
本节代码是一个完整的机器学习工作流程,用于训练一个基于GPT-2的语言模型。下面是对这段代码的详细解释: 文件目录如下 1. 初始化和数据准备 设置随机种子 random.seed(1002) 确保结果的可重复性。 定义参数 test_rate 0.2 context_length 128 tes…...
科技项目验收测试包括哪些内容?有什么作用?
在现代科技快速发展的背景下,科技项目的验收测试已成为项目管理中的重要环节。科技项目验收测试是一种系统性的方法,旨在评估一个科技项目是否达到预定的技术指标和要求,确认项目的完成质量。该测试通常在项目实施完成后进行,通过…...
Java 设计模式:组合模式详解
Java 设计模式:组合模式详解 组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组织成树形结构,以统一的方式处理单个对象和对象集合。组合模式适用于需要表示“部分-整体”层次结构的场景,例…...
java实现加密解密
AES加密/解密核心步骤 参考 https://flying-fish.blog.csdn.net/article/details/142688630?fromshareblogdetail&sharetypeblogdetail&sharerId142688630&sharereferPC&sharesourceweixin_48616345&sharefromfrom_link工具类 import javax.crypto.Cip…...
websoket 学习笔记
目录 基本概念 工作原理 优势 应用场景 HTTP协议与 webSoket协议之间的对比 消息推送场景 1. 轮询(Polling) 2. 长轮询(Long Polling) 3. 服务器发送事件(Server-Sent Events, SSE) 4. WebSocket…...
博途 TIA Portal之1200做从站与汇川EASY的TCP通讯
上篇我们写到了博途做主站与汇川EASY的通讯。通讯操作起来很简单,当然所谓的简单,也是相对的,如果操作成功一次,那么后面就很容易了, 如果操作不成功,就会很遭心。本篇我们将1200做从站,与汇川EASY做主站进行TCP的通讯。 1、硬件准备 1200PLC一台,带调试助手的PC机一…...
【数据结构_6下篇】有关链表的oj题
思路: 1.分别求出这两个链表的长度 2.创建两个引用,指向两个链表的头节点;找到长度长的链表,让她的引用先走差值步数 3.让这两个引用,同时往后走,每个循环各自走一步 然后再判定两个引用是否指向同一个…...
vscode+wsl 运行编译 c++
linux 的 windows 子系统(wsl)是 windows 的一项功能,可以安装 Linux 的发行版,例如(Ubuntu,Kali,Arch Linux)等,从而可以直接在 windows 下使用 Linux 应用程序…...
快速幂(蓝桥杯)
1. 递归实现 递归方法通过将问题分解为更小的子问题来实现。具体步骤如下: 如果指数 b 为 0,返回 1。 如果 b 是偶数,则递归计算 (a^2)b/2。 如果 b 是奇数,则递归计算 a⋅(a^2)(b−1)/2。 伪代码: function fas…...
狂神SQL学习笔记一:初识MySQL、关系型数据库和非关系型数据库
菜鸟教程学习一半了,但是已经疲倦了,所以换一个课程学习,来提升学习质量,可能会有很多已经学习到的地方,就当是复习巩固了。 按照SQL学习课程来划分,分为45集,所以可能也会写45篇文章ÿ…...
关于 Spring Boot 微服务解决方案的对比,并以 Spring Cloud Alibaba 为例,详细说明其核心组件的使用方式、配置及代码示例
以下是关于 Spring Boot 微服务解决方案的对比,并以 Spring Cloud Alibaba 为例,详细说明其核心组件的使用方式、配置及代码示例: 关于 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案! https://sca.aliyun.com/?spm7145af80…...
VS 基于git工程编译版本自动添加版本号
目录 概要 实现方案 概要 最近在用visual Studio 开发MFC项目时,需要在release版本编译后的exe文件自动追加版本信息。 由于我们用的git工程管理,即需要基于最新的git 提交来打版本。 比如: MFCApplication_V1.0.2_9.exe 由于git 提交信…...
小程序开发指南
小程序开发指南 目录 1. 小程序开发概述 1.1 什么是小程序1.2 小程序的优势1.3 小程序的发展历程 2. 开发准备工作 2.1 选择开发平台2.2 开发环境搭建2.3 开发模式选择 3. 小程序开发流程 3.1 项目规划3.2 界面设计3.3 代码开发3.4 基本开发示例3.5 数据存储3.6 网络请求3.7 …...
MySQL 超详细安装教程与常见问题解决方案
一、MySQL 安装教程 1. Windows 系统安装(以 MySQL 8.0 为例) 步骤 1:下载 MySQL Installer 访问 MySQL 官网下载页面。 选择 Windows (x86, 64-bit), MSI Installer(推荐使用完整版 mysql-installer-web-community-8.0.xx.xx.…...
pytorch软件封装
封装代码,通过传入文件名,即可输出类别信息 上一章节,我们做了关于动物图像的分类,接下来我们把程序封装,然后进行预测。 单张图片的predict文件 predict.py 按着路径,导入单张图片做预测from torchvis…...
【多线程-第四天-自己模拟SDWebImage的下载图片功能-看SDWebImage的Demo Objective-C语言】
一、我们打开之前我们写的异步下载网络图片的项目,把刚刚我们写好的分类拖进来 1.我们这个分类包含哪些文件: 1)HMDownloaderOperation类, 2)HMDownloaderOperationManager类, 3)NSString+Sandbox分类, 4)UIImageView+WebCache分类, 这四个文件吧,把它们拖过来…...
电脑提示“找不到mfc140u.dll“的完整解决方案:从原因分析到彻底修复
当你启动某个软件或游戏时,突然遭遇"无法启动程序,因为计算机中丢失mfc140u.dll"的错误提示,这确实令人沮丧。mfc140u.dll是Microsoft Foundation Classes(MFC)库的重要组成部分,属于Visual C Re…...
图像变换方式区别对比(Opencv)
1. 变换示例 import cv2 import matplotlib.pyplot as plotimg cv2.imread(url) img_cut img[100:200, 200:300] img_rsize cv2.resize(img, (50, 50)) (hight,width) img.shape[:2] rotate_matrix cv2.getRotationMatrix2D((hight//2, width//2), 50, 1) img_wa cv2.wa…...
图像颜色空间对比(Opencv)
1. 颜色转换 import cv2 import matplotlib.pyplot as plotimg cv2.imread("tmp.jpg") img_r cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_g cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_h cv2.cvtColor(img, cv2.COLOR_BGR2HSV) img_l cv2.cvtColor(img, cv2.C…...
【NLP】24. spaCy 教程:自然语言处理核心操作指南(进阶)
spaCy 中文教程:自然语言处理核心操作指南(进阶) 1. 识别文本中带有“百分号”的数字 import spacy# 创建一个空的英文语言模型 nlp spacy.blank("en")# 处理输入文本 doc nlp("In 1990, more than 60% of people in East…...
每天学一个 Linux 命令(15):man
可访问网站查看,视觉品味拉满:http://www.616vip.cn/15/index.html 每天学一个 Linux 命令(15):man 命令简介 man(Manual)是 Linux 中最核心的命令之一,用于查看命令、系统调用、库函数等的手册文档。它是用户和开发者获取帮助的核心工具,几乎覆盖了系统中的所有功…...
必刷算法100题之计算右侧小于当前元素的个数
题目链接 315. 计算右侧小于当前元素的个数 - 力扣(LeetCode) 题目解析 计算数组里面所有元素右侧比它小的数的个数, 并且组成一个数组,进行返回 算法原理 归并解法(分治) 当前元素的后面, 有多少个比我小(降序) 我们要找到第一比左边小的元素, 这样…...
Python依赖注入完全指南:高效解耦、技术深析与实践落地
Python依赖注入完全指南:高效解耦、技术深析与实践落地 摘要 依赖注入(DI)不仅是一种设计技术,更是一种解耦的艺术。它通过削减模块间的强耦合性,为系统提供了更高的灵活性和可测试性,特别是在 FastAPI 等…...
android弱网环境数据丢失解决方案(3万字长文)
在移动互联网时代,Android 应用已经成为人们日常生活中不可或缺的一部分。从社交媒体到在线购物,从移动办公到娱乐游戏,用户对应用的依赖程度与日俱增。然而,尽管网络基础设施在全球范围内得到了显著改善,弱网环境依然是一个普遍存在且难以完全避免的现实。特别是在一些发…...
