我如何能得到/ ubuntu / xenial64上的stream浪文件夹

我刚刚用命令安装了stream浪盒子:

vagrant init ubuntu/xenial64 

并启动它:

 vagrant up --provider virtualbox 

在ssh-ing之后,我找不到文件夹/stream浪汉

我做错了什么?

根据文件应该有/vagrant文件夹:

默认情况下,Vagrant会将您的项目目录(包含Vagrantfile的目录)共享到/ vagrant。

这里是一个截图 ,显然没有/ vagrant文​​件夹

我的主机环境是:

  • Windows 7的
  • stream浪汉版本1.8.1
  • Vbox版本5.0.20r106931

这是我的stream浪文件:

 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu/xenial64" config.vm.provision "shell", path: "provision.sh" config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine vb.gui = true # Customize the amount of memory on the VM: vb.memory = "4096" vb.cpus = "2" # Hack for nom global install # https://github.com/npm/npm/issues/7308 vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] end end 

这里是我的configuration文件:

 echo "------------------------------" echo "--- Updating packages list ---" echo "------------------------------" apt-get -y update echo "-----------------------" echo "--- Installing curl ---" echo "-----------------------" apt-get -y install curl echo "----------------------" echo "--- Installing git ---" echo "----------------------" apt-get -y install git echo "-----------------------------" echo "--- Installing python-pip ---" echo "-----------------------------" apt-get -y install python-pip yes | pip install --upgrade pip echo "--------------------------" echo "--- Installing node.js ---" echo "--------------------------" apt-get -y install nodejs echo "----------------------" echo "--- Installing npm ---" echo "----------------------" apt-get -y install npm 

更新:

这个问题终于在官方的16.04流浪盒v20160921.0.0及更高版本中得到了修复。 在此之前的版本v20160909.0.0也是固定的,但有另一个无关的问题,如波马在评论中指出的。

您可以使用以下命令下载新版本,并用新的版本替换旧的VM实例。 但是, 升级该框会清除原始VM实例。

 vagrant box update 

如果由于某种原因不想擦除虚拟机,则仍然可以应用下面的原始修复程序。

原帖:

显然官方的ubuntu / xenial64图像被破坏了,正如这个启动板上的bug报告所示 。

这里有一个由Louis Zuckerman的评论引用,所有的问题仍然是从20160627.0.0版本中20160627.0.0出来的:

官方的xenial流浪箱有很多问题:

  1. 必要的软件包丢失(同步文件夹不工作,没有配置管理)
  2. 默认/流浪同步文件夹被禁用
  3. 虚拟机名称是静态的,所以你只能在主机上有一个虚拟机的实例

[…]

这些步骤为我解决了问题1和2:

  1. ssh进入包装盒并手动安装缺少的客人补充品

     vagrant ssh sudo apt-get install virtualbox-guest-utils exit 
  2. 手动将缺少的安装点添加到您的Vagrantfile

     config.vm.synced_folder ".", "/vagrant/" # fix broken ubuntu/xenial64 image 

要解决第三个问题,您必须手动为该框添加一个特定的名称,方法是将VirtualBox的提供程序特定选项添加到您的Vagrant文​​件中。

 config.vm.provider "virtualbox" do |vb| vb.name = "This_Name_Is_Unique_For_This_Machine" end 

在这个问题的评论中指出了这个问题的更详细的讨论。

人们有没有使用bento / ubuntu-16.04的原因?

看到这个回应: https : //github.com/mitchellh/vagrant/issues/7155

在16.04的ubuntu命名空间下的规范发布的框非常破碎。 他们不按照建议的指导如何建立一个Vagrant框,他们缺少关键组件,如客人增加,所需的软件包,或者他们做的事情,如硬编码的主机名,使运行并发虚拟机不可能。 …一般来说,用户在bento命名空间下的盒子已经取得了更大的成功。 一个常见的误解是像“ubuntu”这样的命名空间代表了Ubuntu盒的规范空间。 这是不真实的。

似乎有很多原因不使用ubuntu / xenial64框,只是使用bento命名空间中的工作框,而不是试图破解ubuntu命名空间框的工作。 Ubuntu品牌对某些人来说可能会更舒服,但我认为它与Vagrant打破了关系。

出于某种原因,ubuntu / xenial64不带有同步/ vagrant文​​件夹。

我必须在流浪文件中设置我自己的:

 config.vm.synced_folder ".", "/vagrant" 

第一个选项是源(Windows),第二个是目标(Ubuntu)

流浪同步文件夹

Vagrant默认在与流浪文件所在的文件夹同步的访客机器上安装/ vagrant文​​件夹。

有一些原因,为什么vagrant无法安装您的共享文件夹,最常见的是,您没有正确安装和初始化virtualbox驱动程序。当没有在相同版本的虚拟内核标头时发生这种情况盒包装。

首先确保你的Vagrant文​​件没有这一行,因为这将禁用同步文件夹:

config.vm.synced_folder ".", "/vagrant", disabled: true

如果你没有,可能是你的系统上的virtualbox模块出现错误,我建议你检查驱动程序,执行以下步骤。

销毁正在运行的虚拟机:

vagrant destroy -f

您可以使用以下命令检查内核版本:

uname -r

之后,安装你的内核的标题:

sudo apt-get install linux-headers-'uname-r'

然后,为您的内核安装virtualbox软件包:

sudo apt-get install virtualbox virtualbox-dkms virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-additions-iso

加载virtualbox驱动程序:

sudo modprobe vboxdrv

现在,您可以尝试再次使用vagrant挂载虚拟机:

vagrant up

请记住,您可以重新配置您的虚拟机有尽可能多的共享文件夹,你可以做到这一点:

config.vm.synced_folder "src/", "/srv/website"

第一个参数是主机上文件夹的路径,第二个参数是文件夹出现在客机上的位置。

希望这可以帮助你。

你可以尝试安装vbguest addition插件,看看是否有帮助。

 $ vagrant plugin install vagrant-vbguest 

vb-guest插件回购

另外,有时当你在计算机上安装vbox时,如果你不想给它安装额外的驱动程序的权限,它将无法正常工作。 您可能需要重新安装,以确保在请求安装某些驱动程序时接受提示。

如果这些都不起作用,那么可以尝试在没有GUI的情况下启动,并在试图启动流浪机时粘贴输出。