vagrant怎么在宿主机操作虚拟机里面的系统管理和软件安装
安装vagrant参考:Vagrant虚拟机方案:docker的开源跨平台替代Vagrant-CSDN博客
在安装配置好vagrant之后,怎么在宿主机操作虚拟机里面的系统管理和软件安装呢?
以FreeBSD虚拟系统为例:
虚拟机镜像使用generic/freebsd14或者bento/freebsd-14.3 ,这个虚拟机镜像大小只有652M左右,启动后没有带python环境。
编辑 Vagrantfile
文件实现自定义环境和软件安装,添加如下配置:
config.vm.provision "shell", inline: <<-SHELL# 更新 pip 和指定包(例如 gpt4free)pip3 install --upgrade pip gpt4free
SHELL
强制重新运行 Provisioner:
vagrant provision
注意:这只会重新执行
provision
脚本,不会重启虚拟机。
当然,需要先vagrant up启动才行。
实践
在实际操作中,发现该FreeBSD系统没有python环境,需要自己装。
修改Vagrantfile
文件
config.vm.provision "shell", inline: <<-SHELL#apt-get updatepkg updatepkg install -y python312python3.12 -m ensurepip -U# apt-get install -y apache2SHELLconfig.vm.provision "shell", inline: <<-SHELL# 更新 pip 和指定包(例如 gpt4free)pip3 install --upgrade pip gpt4free -i https://pypi.tuna.tsinghua.edu.cn/simpleSHELL
主要是添加了pkg update和pkg install 软件,以及python安装pip的部分。
经验总结
关于Vagrantfile怎么写,
需要先vagrant up虚拟机,然后到虚拟机里去操作一遍,才能知道具体应该怎么写文件。
当前来说,vagrant在Mac/Linux/Windows下都很方便安装,FreeBSD下还不太好安装。所以解决方案是在Linux下使用Vagrant,起FreeBSD的虚拟机,然后在FreeBSD里安装需要的软件。
后期需要实现在虚拟机FreeBSD里安装Linux仿真,以启动一些AI软件。
调试
启动报错default: /tmp/vagrant-shell: line 2: pip: command not found
安装python环境
pkg update 怎么自动确认呢? 哦,好像不需要确认。除非有错....
pkg install 也可以加-y,如
pkg install -y python312