在 Vagrant 配置期间初始化 ~/.subversion 配置目录

在 Vagrant 配置期间初始化 ~/.subversion 配置目录

设置基于 Linux 的流浪汉盒子和配置,我正在研究以下问题:

在配置阶段,我正在安装 Subversion。我还想在配置阶段编辑文件,~/.subversion/servers以便获得必要的代理设置。

我知道如何做到这一点(使用sed),但是有一个问题。

~/.subversion此时不存在。

直到您第一次调用 或其他操作时,目录~/.subversion才会真正被创建。svn infosvn status

因此我将其添加到了我的 Vagrantfile...

config.vm.provision "shell", inline: "svn info 2>/dev/null"

...和命令执行(出现错误,因为当然没有可以调用的工作目录info)...

==> default: Running provisioner: shell...
    default: Running: inline script
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

...但仍然没有~/subversion

我不太明白为什么,当我登录到虚拟机(通过)时svn info,该技巧(设置的)可以正常工作,但是在配置过程中执行时会失败,如上所示。~/.subversionvagrant ssh

如何~/.subversion在 Vagrant 配置阶段进行初始化(无需实际访问真实的 repo)?

答案1

config.vm.provision“shell”,内联:“svn info 2> / dev / null”

此行运行作为用户root

因此, 不成立~vagrant/.subversion,但是/root/.subversion

解决方案是以用户身份运行该行vagrant

config.vm.provision "shell", inline: "svn info 2>/dev/null", privileged: false

更好的是,运行命令"svn info 2>/dev/null; true"——这可以摆脱 Vagrant 报告,即配置命令返回非零退出状态。

相关内容