Vagrant - не поддерживается возможность "изменить имя хоста"
проблема заключается в возможности "change_host_name" не поддерживается гостем, когда я пытаюсь выполнить следующую командную строку:
vagrant up
это дает мне ошибку следующим образом:
Vagrant attempted to execute the capability 'change_host_name'
on the detect guest OS 'linux', but the guest doesn't
support that capability. This capability is required for your
configuration of Vagrant. Please either reconfigure Vagrant to
avoid this capability or fix the issue by creating the capability.
обратите внимание, что моя ОС: OS X Yosemite 10.10.5
гостевые дополнения версия: 4.2.0 и VirtualBox версия: 5.0
Я пробовал много решений других, которые сталкиваются с этой проблемой, но я не мог это исправить.
1 ответов
это https://github.com/mitchellh/vagrant/issues/7625. Он будет исправлен в следующем выпуске, до тех пор, если его блокировка вам, вы можете патч vagrant себя
если вы хотите подлечиться
Method1 :
- поиск
plugins/guests/ubuntu/guest.rb
файл в вашей установке vagrant- например
/opt/vagrant/embedded/gems/gems/vagrant-1.8.5/plugins/guests/ubuntu/guest.rb
на mac/linux по умолчанию установить - или
/opt/vagrant/embedded/gems/vagrant-1.8.5/plugins/guests/ubuntu/guest.rb
- окна :
C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.8.5\plugins\guests\ubuntu\guest.rb
- например
- заменить https://raw.githubusercontent.com/carlosefr/vagrant/1c631c18d1a654405f6954459a42ac19a1a2f096/plugins/guests/ubuntu/guest.rb (убедитесь, что у вас есть правильные права, если вы устанавливаете как admin, вы должны быть пользователем admin для сохранения файла)
-
альтернативно отредактируйте файл и замените все содержимое на
module VagrantPlugins module GuestUbuntu class Guest < Vagrant.plugin("2", :guest) def detect?(machine) # This command detects if we are running on Ubuntu. /etc/os-release is # available on modern Ubuntu versions, but does not exist on 14.04 and # previous versions, so we fall back to lsb_release. # # GH-7524 # GH-7625 # machine.communicate.test <<-EOH.gsub(/^ {10}/, "") if test -r /etc/os-release; then source /etc/os-release && test xubuntu = x$ID elif test -x /usr/bin/lsb_release; then /usr/bin/lsb_release -i 2>/dev/null | grep -q Ubuntu else exit 1 fi EOH end end end end
метода Method2 : альтернативный метод исправления файл с помощью :
сохраните следующий файл в разделе vagrant-guest.patch
commit 00fa49191dba2bb7c6322fa8df9327ca505c0b41
Author: Seth Vargo <sethvargo@gmail.com>
Date: Sat Jul 23 11:40:36 2016 -0400
guests/ubuntu: Revert detection
- Semi-reverts GH-7524
- Fixes GH-7625
diff --git a/plugins/guests/ubuntu/guest.rb b/plugins/guests/ubuntu/guest.rb
index 9aeb7aa..f60108e 100644
--- a/plugins/guests/ubuntu/guest.rb
+++ b/plugins/guests/ubuntu/guest.rb
@@ -2,7 +2,22 @@ module VagrantPlugins
module GuestUbuntu
class Guest < Vagrant.plugin("2", :guest)
def detect?(machine)
- machine.communicate.test("test -r /etc/os-release && . /etc/os-release && test xubuntu = x$ID")
+ # This command detects if we are running on Ubuntu. /etc/os-release is
+ # available on modern Ubuntu versions, but does not exist on 14.04 and
+ # previous versions, so we fall back to lsb_release.
+ #
+ # GH-7524
+ # GH-7625
+ #
+ machine.communicate.test <<-EOH.gsub(/^ {10}/, "")
+ if test -r /etc/os-release; then
+ source /etc/os-release && test xubuntu = x$ID
+ elif test -x /usr/bin/lsb_release; then
+ /usr/bin/lsb_release -i 2>/dev/null | grep -q Ubuntu
+ else
+ exit 1
+ fi
+ EOH
end
end
end
и выполните следующую команду, чтобы применить патч
sudo patch -p1 --directory /opt/vagrant/embedded/gems/gems/vagrant-1.8.5/ < vagrant-guest.patch
просто заменить /opt/vagrant/embedded/gems/gems/vagrant-1.8.5
(или /opt/vagrant/embedded/gems/vagrant-1.8.5/plugins/guests/ubuntu/guest.rb
) С вашей установкой папки vagrant