所以我在流浪汉身上遇到了一些问题。我最初试图在流浪者 github 问题板上将此报告为一个问题,但他们一直在关闭问题而没有回应它们。 我猜他们认为我不值得他们花时间,或者他们只是表现得不专业。 无论如何,这就是问题所在:我将vagrant与virtualbox一起使用,并且最近发布了新版本的virtualbox,不幸的是,它与最新的vagrant安装不兼容。
但是,hashicorp 的人已经更新了源代码,以便它与新版本的 virtualbox 兼容,但您必须从源存储库构建流浪可执行文件(说明在这里(。 所以我按照说明进行操作,流浪汉就像以前一样工作......当我唯一需要运行的命令是流浪时。 我还应该提前提到,为了运行流浪者开发版本,当前工作目录需要是源代码存储库的根目录,并且开发版本只能使用以下命令和 ruby 运行:
bundle exec vagrant
话虽如此,我需要更新我的一个自定义框,所以我在 virtualbox 的更新版本中构建了一个 vm 并运行以下命令
bundle exec vagrant package --base go --vagrantfile ../../vagrant/vagrantfile
过了很久,流浪汉吐出以下错误
The executable 'bsdtar' Vagrant is trying to run was not found in the %PATH% variable. This is an `error. Please verify this software is installed and on the path.`
我还应该注意,我使用的是Windows机器,并且在使用已安装的流浪者版本时从未发生过此错误。在这一点上,我已经在 github 上发布了这个问题,以获得开发人员的一些意见,但他们(非常不专业地(决定忽略我的帮助请求并在不提供任何回应的情况下关闭问题。 我使用 GNUwin32 项目使许多 unix 命令可用于我的 Windows 环境,并将该文件夹添加到我的 PATH 环境变量中。 然后我再次运行相同的命令来创建我的新盒子,它可以工作!! 因此,我将其上传到流浪云,并尝试通过运行以下命令更新存储在我的系统上的流浪者框:
bundle exec vagrant box update
然后,在等待了一段时间之后,流浪汉向我吐出了这个错误:
The box failed to unpackage properly. Please verify that the box
file you're trying to add is not corrupted and that enough disk space
is available and then try again.
The output from attempting to unpackage (if any):
C:gnuwin32bin/bsdtar.EXE: invalid option -- s
Usage:
List: bsdtar.EXE -tf <archive-filename>
Extract: bsdtar.EXE -xf <archive-filename>
Create: bsdtar.EXE -cf <archive-filename> [filenames...]
Help: bsdtar.EXE --help
另一个错误,仍然涉及这个 bsdtar 工具。似乎没有其他人报告我遇到的问题,因为我认为他们只是在等待 hashicorp 发布新的官方安装,但是,只是为了让您了解他们的优先事项,已发布的 virtualbox 版本不再与 vagrant 一起使用已于 12 月 10 日发布。 已经一个多月了,仍然没有更新的版本。
所以,我希望有人能够找出为什么我在尝试使用 vagrant 的开发版本并提供解决方案时不断遇到这些错误。 如果没有,那么也许如果其他人能够重现该问题并将其报告给hashicorp,也许他们会听取其他人的意见。
如果你使用的是 Ubuntu 20.04,那么bsdtar被删除了。尝试安装libarchive-tools
软件包。
$ sudo apt-get install libarchive-tools
我想通了。 我最初的假设是正确的:由于 vagrant 是一个主要在 Linux 机器上运行的工具,然后 vagrant 在 Windows 中运行,安装包括一个 mingw 环境,其中包含 vagrant 运行所需的所有依赖项,并且已安装的 vagrant 可执行文件在运行时导入到控制台会话中。 这就是开发版本不断失败的原因:因为它没有导入这个 mingw 环境。 因此,为了解决这个问题,我首先从 github 克隆了流浪源代码存储库,并按照上面链接的说明从源存储库构建可执行文件。 然后,我将源存储库中的所有文件复制到以下文件夹中:
<hashicorp install folder root>Vagrantembeddedgems2.2.6gemsvagrant-<version num>
所以,对我来说,目标目录是C:HashiCorpVagrantembeddedgems2.2.6gemsvagrant-2.2.6
此目录与源代码存储库相同,将源代码存储库复制到上述文件夹会将 vagrant 的安装版本替换为 dev build。 在我这样做之后,运行以前正常失败的 vagrant 命令(如,不使用 ruby 或捆绑包(工作了。 我希望这能帮助其他人,Hashicorp认为不值得他们花时间。