2016-05-17 38 views
10

我剛剛安裝了命令流浪漢框:我如何獲得/遊民夾在Ubuntu/xenial64

vagrant init ubuntu/xenial64 

和與啓動它:

vagrant up --provider virtualbox 

後的ssh-ING我可以找不到文件夾/流浪者

我做錯了什麼?

根據documentation應該有/vagrant文件夾:

默認情況下,流浪將共享項目目錄(該目錄 與Vagrantfile)到/無業遊民。

這裏是一個screenshot這裏顯然沒有/遊民文件夾

我的主機環境:

  • Windows 7的
  • 流浪版本1.8.1
  • VBOX版本5.0.20r106931

這是我的流浪文件:

# -*- 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 

,這裏是我的配置文件:

默認坐騎
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 
+0

分享你的vagrant文​​件來查看配置 – lebobbi

+0

編輯描述及相關信息。 – gandra404

+0

可以請你分享輸出時,喲逃跑了嗎? –

回答

0

流浪A /流浪漢客戶機上被同步與文件夾,其中Vagrantfile是文件夾。

有些原因可能導致vagrant無法安裝共享文件夾,最常見的原因是您沒有正確安裝並初始化virtualbox驅動程序。當您的內核頭文件沒有相同時會發生這種情況虛擬包裝盒的版本。

首先確保你沒有對你的Vagrantfile這條線,因爲這將禁用同步文件夾:

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 up

記住,你可以重新配置虛擬機有你想要的共享文件夾,你可以做到這一點:

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

第一個參數是路徑到主機上的文件夾,第二一個是該文件夾將出現在訪客機器上的位置。

希望這可以幫助你。

+0

對不起,沒有你在主機上使用windows。不重視我的答案。 –

0

你可以嘗試安裝vbguest addition插件,看看是否有幫助。

$ vagrant plugin install vagrant-vbguest 

vb-guest plugin repo

此外,有時,當您在計算機上安裝VBOX,如果你不給的權限,它要安裝將無法正常運行的其他驅動程序。您可能需要重新安裝,以確保在要求安裝某些驅動程序時接受提示。

如果這些都不起作用,您可以嘗試在沒有GUI的情況下啓動,並在試圖啓動流浪機時粘貼輸出。

2

由於某種原因,ubuntu/xenial64沒有附帶同步/ vagrant文​​件夾。

我必須設置我自己在顛沛流離文件:

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

第一個選項是源(Windows)中的第二個目標(Ubuntu的)

Vagrant Synced Folders

+0

我認爲你的同步文件夾的源代碼應該是當前目錄''。「'而不是''vagrant'''。 – mschwaig

+0

已更新。我在一個盒子上開發多個應用程序,並喜歡將「vagrant」中的所有文件.gitignore。 –

+0

這可以解決丟失/ vagrant文​​件夾的問題,而不管同步技術如何(針對我的nfs)。使用xenial64和流浪1.8.5 – scones

10

更新:

此問題最終在版本v20160921.0.0及更高版本中得到修復官方的16.04流浪者箱子。 v20160909.0.0之前的版本也是固定的,但有另一個無關的問題,正如Poma在評論中指出的那樣。

您可以使用以下命令下載新版本,並且還可以使用新的版本替換舊的VM實例。但是,升級該框可以清除原始VM實例的

vagrant box update 

如果你不想爲你擦去VM出於​​某種原因,你仍然可以申請低於我原來的修復。

原貼:

顯然Ubuntu官方/ xenial64形象被打破,爲this bug report on launchpad表示。

下面是由路易·祖克曼與所有這一切仍然是不固定爲20160627.0.0版本從我可以告訴的問題的意見報價:

有許多的問題與xenial官方流浪漢箱:

  1. 必要的包丟失了(同步文件夾不工作,沒有配置管理)
  2. 默認/遊民同步文件夾被禁用
  3. 虛擬機名稱是靜態的,所以你只能有一臺主機包裝盒上的一個實例

[...]我修復的問題1和2

這些步驟:

  1. SSH入禁區,並手動安裝缺失的客人增加

    vagrant ssh 
    sudo apt-get install virtualbox-guest-utils 
    exit 
    
  2. 手動通過添加VirtualBox的你Vagrantfile提供程序特定的選項,手動丟失的掛載點添加到您的Vagrantfile

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

要解決,你必須給一個唯一的名稱框中的第三個問題。

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

這個問題有更詳細的討論here正如在這個答案的評論中指出的那樣。

+1

討論第三個問題[這裏](http://stackoverflow.com/a/37166099/4296747) –

+0

謝謝你,根據你的評論我更新了我的答案,以包括該修復以及。 – mschwaig

+0

config.vm.synced_folder「。」,「/ vagrant /」#修復破壞的ubuntu/xenial64圖像 這不適用於我:(主機操作系統是Mac OS X –

3

有沒有人不使用bento/ubuntu-16.04的原因?

看到這個迴應: https://github.com/mitchellh/vagrant/issues/7155

通過規範Ubuntu的命名空間下出版了16.04 箱子是非常有問題。他們不遵循關於如何構建Vagrant框的推薦指南,並且他們缺少關鍵組件,例如guest 增加,所需的軟件包,或者他們執行的操作如硬編碼 主機名,以使運行併發虛擬機成爲不可能。 ... 一般而言,用戶使用命名空間下的盒子獲得更多成功。一個常見的誤解是像「Ubuntu」 這樣的命名空間代表了Ubuntu盒子的規範空間。這是不真實的。

似乎有很多原因不使用ubuntu/xenial64框,只是使用bento命名空間中的工作框而不是嘗試破解ubuntu命名空間框來工作。 Ubuntu品牌對於某些人來說可能更舒服,但我認爲它已經被Vagrant打破了。

+0

這是正確的答案。「ubuntu/xenial64「盒子應該被刪除,因爲它仍然不符合標準。」bento/ubuntu-16.04「很好,但我使用這個:'boxcutter/ubuntu1604'。 –