Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
mac virtualenv_mac安装vmware虚拟机,希望能够帮助你!!!。
关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。
虽然 Mac 上的 Vagrant 通常可以完美运行,但安装错误可能而且确实会发生。让我们解决每个系统上的潜在绊脚石。
早在 2010 年 3 月,由Hashicorp 的 Mitchell Hashimoto和他的犯罪伙伴John Bender首次推出,Vagrant是 一个用于虚拟机 (VM) 生命周期管理的开源命令行工具。该实用程序旨在通过简化此过程来提高开发效率。虽然 Vagrant 最初与 Oracle VirtualBox 绑定,但从 1.1 版开始,它还包括对VMware、KVM 等的支持。然而,尽管虚拟化在 Web 开发中很有帮助,但使用 Vagrant 并不总是万无一失的选择。
首先,Vagrant通过基于管理程序的不可变环境提供了更大的 灵活性。这使开发人员能够构建需要仅在其他系统上可用的功能的环境。
例如,如果您需要构建一个支持各种操作系统和内核的应用程序,您可以轻松创建多个虚拟机,这些虚拟机可以使用 Vagrant 运行测试。同样,如果您想复制客户的环境(操作系统、资源等),结合使用 VM 和 Vagrant 可能也特别有用。
要开始使用 Vagrant,请从官方Vagrant 下载页面下载安装程序或合适的包。以下说明适用于 Vagrant v2.3.3(截至 2022 年 12 月的最新版本)。
为了在 Windows 上安装 Vagrant ,您首先需要从 这里下载 MSI 包。接下来,您可以简单地运行该文件并完成常规安装过程。
注意:安装程序会自动将“vagrant”添加到您的系统路径中,因此它也可以在终端中使用。但是,如果找不到 Vagrant,请尝试注销并重新登录系统,因为这在 Windows 上很常见。
假设您已经安装了“brew”包管理器,要在 Mac 上快速设置Vagrant ,您可以使用以下单行命令运行安装:
```bashgt; brew install vagrant```
或者,如果您想从二进制文件 安装 Vagrant,请单击此处,下载应该会立即开始。
对于Linux系统,我们将演示Vagrant在Ubuntu 20.04上的安装过程:
安装密钥:
```bashgt; wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg```
添加存储库:
```bashgt; echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list```
拉取更新并运行安装:
```bashgt; sudo apt update && sudo apt install vagrant```
这里的所有都是它的!现在你需要做的就是打开你的终端并输入“vagrant”。然而,还值得指出的是,如果您单独运行 Vagrant,您将获得一个包含可用子命令的列表。
虽然Vagrant 安装错误 相当少见,但如果您的计算机上安装了多个虚拟机管理程序,则出现这种情况的可能性会大大增加。毕竟,当一个以上的虚拟机已经在使用时,管理程序不允许创建虚拟机。
以下是取自Vagrant 官方文档的几个快速解决方案,可以帮助您在存在另一个管理程序时使用 Vagrant 和 VirtualBox:
使用其他管理程序时,您可能会遇到以下错误:
```bashThere was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.Command: ["startvm", <ID of the VM>, "--type", "headless"]Stderr: VBoxManage: error: VT-x is being used by another hypervisor (VERR_VMX_IN_VMX_ROOT_MODE).VBoxManage: error: VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot(VERR_VMX_IN_VMX_ROOT_MODE)VBoxManage: error: Details: code NS_ERROR_FAILURE (0x), component ConsoleWrap, interface IConsole```
为了让 VirtualBox 正确运行,任何额外的管理程序都需要添加到系统的拒绝列表中。
为此,首先要了解管理程序的名称:
```bashgt; lsmod | grep kvmkvm_intel 6kvm 1 kvm_intelirqbypass 16384 1 kvm```
接下来,只需使用“黑名单”命令将管理程序添加到您的拒绝列表中。
```bashecho 'blacklist kvm-intel' >> /etc/modprobe.d/blacklist.conf```
最后,重新启动机器并再次使用“vagrant”命令。
在 Windows 上,如果您尝试启动VirtualBox VM,您可能会遇到刺耳的蓝屏。
为了正常使用 VirtualBox,您必须确保禁用 Hyper-V。使用以下简单命令关闭Windows 10上的功能:
```PowerShellgt; Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All```
在Windows 11上,您还可以使用提升的 Powershell:
```PowerShellgt; bcdedit /set hypervisorlaunchtype off```
或者,您可以从 Windows 系统设置中禁用 Hyper-V。
重新启动您的机器以应用这些更改。
如果您在尝试执行 VBoxManage 时遇到以下错误消息:
failed to open /dev/vboxnetctl: No such file or directory
完全重新安装 Virtualbox 或简单地使用以下命令:
sudo /Library/StartupItems/VirtualBox/VirtualBox restart
或者
sudo /Library/StartupItems/VirtualBox/VirtualBox start
请注意,在较新的版本中,该文件/Library/StartupItems/VirtualBox/VirtualBox不存在,因此您必须使用以下命令:
sudo launchctl load /Library/LaunchDaemons/org.virtualbox.startup.pl
Mac 上可能出现的另一个问题是当您听到某个应用程序“在我的机器上运行良好”时出现的经典问题,并且再多的乞求或哭泣也无法让它在其他任何地方都运行良好。
想象一下,您当前正在使用 Vagrant + VirtualBox 部署和测试本地环境。您团队中的一位软件工程师使用定制版本的 VagrantBox,到目前为止,该版本对他们来说运行良好。他们将被称为Developer 1。在他们的工作站上,VirtualBox v6.1.34、Vagrant 2.2 和 Ubuntu 都可以正常运行。
另一方面,显然开发者 2需要升级他们的本地环境。他们目前在自己的工作站上混合使用 MacOS、VirtualBox v6.1.24 和 Vagrant 2.1.x。
因此,至少乍一看,开发人员 2 的策略似乎很简单:
两个操作都成功完成,但结果肯定出乎意料——由于某种原因,安装在 VirtualBox 上的网站现在完全无法访问。有没有搞错!?
当遇到这样的谜题时,集思广益找出解决方案并采取如下所列的明智行动至关重要:
然而,在这种情况下,一切似乎都在正常运行,VirtualBox 实例本身内部没有任何明显的问题。
然后您的团队决定改变策略并确定是否可以从外部访问 VirtualBox 主机。使用简单的 ping 命令后,他们毫无准备地发现 100% 的数据包丢失。虽然这个消息有些令人不安,但也可能是整个社会的起因。
遵循此线程,他们最终发现 HostOnly 适配器现在必须接收不同范围的 IP 地址。这显然是从VirtualBox v6.1.30更新开始的(所有内容的补丁更新):
192.168.55.х prior to the update192.168.56.х. after the update.
很明显,在最近修订的 VirtualBox用户手册中:
“在 Linux、Mac OS X 和 Solaris 上,Oracle VM VirtualBox 将只允许将 192.168.56.0/21 范围内的 IP 地址分配给仅主机适配器。”
您团队中的每个人都松了一口气。创建新的 HostOnly 适配器并更改 VirtualBox 实例中的适配器后,问题突然消失。解决方案的关键 Web 组件终于可以访问了,开发人员 2 终于高兴了。
如此兴奋,您可能会寻找Vagrant 替代品,这是情有可原的。但是,如果您这样做,您可能会遇到许多将实用程序与容器(通常是 Docker)进行比较的网站。但这实际上是一个有效的比较吗?事实证明,它实际上是,只要你意识到两者之间的区别。
Docker 相对于虚拟机管理程序的许多优势也可以被视为劣势——这取决于您需要它做什么。那么,让我们从一个大问题开始:加载时间。虽然容器可以快速启动,因为它们基本上只是一组进程,但这也意味着它使用主机内核。因此,容器将不依赖于虚拟化硬件,而是直接使用主机的硬件。
管理程序还可以拥有内存、CPU 时间、驱动器空间等形式的专用资源。另一方面,容器与主机上的其他进程共享资源。同样,虽然 Vagrant 使您能够创建一个完整的虚拟机——这将需要更多的时间和资源——但 Docker 的容器化方法允许您以更少的资源更快地进行部署。
因此,考虑到这一点,请记住这不是比赛。这只是关于贵公司的需求。
虽然 Vagrant 无疑是一个强大的工具,但它也不能幸免于问题。如果您的公司缺乏专业知识或知识,专门的软件开发人员团队可能会提供帮助。毕竟,即使它只能“在我的机器上工作”,每个问题都有解决方案。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章