Gol*_*den 94 rsync synchronization sync vagrant vagrantfile
我想使用Vagrant为我的团队提供一个共同的开发环境.主机完全不同:
在VM内部我们想要运行Linux.
到目前为止,一切都很好.
现在我们的想法是每个开发人员都应该能够使用他们选择的IDE,因此我们引入了一个同步文件夹,该文件夹共享主机和VM之间的源代码.这基本上也适用......除了符号链接.
在我们的源代码中,我们实际上有一些符号链接,这在VM内部的Linux中不是问题,但在Windows上作为主机,这会导致问题.我们唯一不能做的就是摆脱符号链接,所以我们需要另一种方法来解决这个问题.
到目前为止,我们尝试了许多选择:
symlink has no referent
(每个符号链接有一个错误).我无法想象我们是这个星球上唯一或第一个遇到共享文件夹中的多平台主机和符号链接问题的人.
你如何解决这个问题,以便我们可以保持符号链接,但仍然使用不同的主机操作系统?
jdu*_*unk 91
接受的答案是不好的.该问题描述了同步文件夹的问题,而不是 共享文件夹.建议的解决方案对rsynced(非共享)文件夹没有影响.即使OP使用的是共享文件夹,接受的答案的建议也是已经整合到流浪者中的1.1版本,在OP发布问题前15个月发布(更不用说VirtualBox的共享文件夹非常慢).
我遇到了同样的问题:在OS X上,我遇到了symlink has no referent
rsync错误.我个人能够通过添加特定的rsync args来解决它vagrantfile
:
config.vm.synced_folder ".", "/var/www", type: "rsync", rsync__args: ["--verbose", "--archive", "--delete", "-z"]
Run Code Online (Sandbox Code Playgroud)
我还在vagrant的github上打开了这个问题,指出了一些看似错误的东西rsync__args
(特别是那个默认的args --copy-links
,似乎打破了另一个,--archive
至少就复制破坏的符号链接而言) ).
小智 59
出于安全原因,Virtualbox不允许在共享文件夹上使用符号链接.要启用符号链接,需要将以下行添加到Vagrantfile中的vm提供程序配置块:
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
Run Code Online (Sandbox Code Playgroud)
此外,在Windows上,vagrant up需要在具有管理员权限的shell中执行.没有必要的变通方法.
我尝试了所有这些选项以解决运行错误npm install
.
只需在管理员提示符中运行vagrant并加载vm(vagrant reload
)即可解决问题.
我回去并SharedFoldersEnableSymlinksCreate
从Vagrantfile中删除了配置,一切都还不错.