Vagrant无法找到虚拟机镜像

41

我正在使用安装有VirtualBox 5.0.14和vagrant 1.8.1的Windows 10。

在尝试添加一个box时,会出现以下错误:

命令: $ vagrant box add ubuntu/trusty64

错误:

未能找到'ubuntu/trusty64' box,或者无法在远程目录中访问它。 如果这是HashiCorp Atlas上的私有box,请通过vagrant login进行验证登录。 同时,请仔细检查名称。 展开的URL和错误消息如下所示:

URL: ["https://atlas.hashicorp.com/ubuntu/trusty64"] Error:

对于此问题有任何想法吗?


你可以直接下载文件:https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20160215.0.0/providers/virtualbox.box,然后从这个下载的文件添加一个 box。 - Frederic Henri
1
在Windows上,请尝试使用引号,例如“ubuntu/trusty64”。 - greenhorn
请注意,在 macOS 上您需要使用 'sudo',否则无法正常工作。 - zarko.susnjar
这些可能不是答案。发生的事情是Hashicorp更改了其下载URL!升级到Vagrant 2.x,您将不会遇到此问题。 - Oliver Williams
您使用VPN吗?当我启用它时,我遇到了这个问题,可能是因为服务器被列入黑名单。 - IT-bob
停止你的防病毒软件!它会起作用的。防病毒软件正在阻止下载请求。 - HumbleBee
7个回答

165

1
谢谢。我很惊讶你是怎么找到这个的,因为即使打开了--debug,它也没有提到curl。 - Benoit Vanalderweireldt
3
在OSX上,Vagrant 1.8.7和VirtualBox 5.1.X仍需要这个功能。 - bjw
在我的OSX上运行良好。 - user2694306
1
已在OSX上工作,使用Vagrant 1.8.7。谢谢! - vasya10
因为原帖是关于Windows的,所以被踩了。请另开一个关于OSX的问题。 - tpartee
显示剩余5条评论

52

2018年后最可能的主要原因: Hashicorp已更改下载URL。

为了快速解决,将以下内容添加到您的Vagrantfile中:

Vagrant::DEFAULT_SERVER_URL.replace('https://vagrantcloud.com')

然后再次运行vagrant up

或者

升级Vagrant到v2.0+。


更多细节请参考:https://github.com/hashicorp/vagrant/issues/9442


这也适用于 Vagrant 1.9。通过在我的 Vagrant 文件中添加 "Vagrant::DEFAULT_SERVER_URL.replace('vagrantcloud.com')",我能够下载 ubuntu/xenial64 vbox。 - Binita Bharati
在进行更改后运行vagrant up时,我遇到了错误uninitialized constant Vagrant::DEFAULT_SERVER_URL (NameError) - Barun Sharma
@BarunSharma 你的vagrant版本是多少?使用 vagrant -v 命令获取它。 - Attila Fulop
@AttilaFulop - 它是“Vagrant版本1.0.1”。 - Barun Sharma
@BarunSharma 1.0.1已经快7年了。我找不到引入常量的版本,但看起来1.0.1太老了。 - Attila Fulop
在我的Ubuntu 20.10上的vagrant 2.2.14上无法工作。我收到了这个错误:Message: FrozenError: can't modify frozen String - rubo77

4

我在找到你的答案之前就已经找到了那张票,但你的答案在这里绝对是正确的。安装完那个软件包后,Vagrant现在按预期工作。 - Buttle Butkus

3
新版本1.8.x的vagrant与Windows 10存在问题,如票号#6745及相关票号所述。我尝试了一些人们给出的建议,但唯一有效的方法是将vagrant降级到1.7.4版本。
首先卸载当前版本1.8.x。然后前往vagrant下载页面,选择下载旧版Vagrant。在那里,您可以选择vagrant_1.7.4.msi
安装1.7.4版本,重新启动计算机,然后就可以使用您提出的语句了。
$ vagrant box add ubuntu/trusty64

它应该开始下载,不会出现进一步的问题。

1
我曾经在启动Vagrant Box(使用Git作为终端,https://git-scm.com/download/win)时遇到了问题。
$ vagrant box add ubuntu/trusty64
The box 'ubuntu/trusty64' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Vagrant Cloud, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://vagrantcloud.com/ubuntu/trusty64"]
Error: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.

问题是我的杀毒软件(卡巴斯基)阻止我添加该框。 我停用了杀毒软件,命令就起作用了。
$ vagrant box add ubuntu/trusty64
$ vagrant init ubuntu/trusty64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

NASA@DESKTOP-P6O3UKQ MINGW64 /d/Vagrant1
$ vagrant up

这个问题的格式非常混乱。我认为你正在使用“代码块”来记录你的经验,而使用常规文本来记录终端的输入/输出?这正好是你不应该做的相反的方式。 - Michael Hoobler
@MichaelHoobler 但是..这是一个答案 :) - Scratte
@Scratte 你说得对,这是一个回答而不是问题。看起来有人编辑了你的帖子,但请在将来的问题/答案中正确使用“代码块”和其他格式化工具,以使您的帖子尽可能有用。我们很感激你的见解,如果因为格式奇怪而跳过这个答案,那就太可惜了。 :) - Michael Hoobler
1
@MichaelHoobler 感谢您的提示,但是...这不是我的答案。 - Scratte
谢谢您的提示,卡巴斯基是我的问题所在! - Ryhazerus

-1

我在Windows 10和Vagrant 1.9.1上遇到了同样的问题。我尝试了所有上面的技巧(安装VisualC ++,将Vagrant降级到1.7,从git bash复制curl,安装openssh),但最终我找到了解决方案:

  1. vagrant up --debug:它揭示了vagrant的主目录是我的用户主目录,其中包含非拉丁符号。当vagrant从外部URL下载框文件时,它会尝试将其保存在其主目录中,即~/.vagrant.d(对于Windows,例如C:/Users/Ольга/.vagrant.d)
  2. vagrant.d在home文件夹之外-更改文件\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.5.3\lib\vagrant\environment.rb第119行为@home_path = Util::Platform.fs_real_path("C:/vagrant/home/")-其中C:/vagrant/home可以是任何没有非拉丁符号的目录,例如c:/HashiCorp/Home。

-2

这将修复您的错误:

vagrant destroy

使用VirtualBox 5.18版本,然后安装Vagrant 1.9.2版本。重启你的电脑。现在进入你想要工作的目录。
vagrant init ubuntu/trusty64
vagrant up

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接