除了在我的客户机上安装 emacs 之类的应用程序外,我还想上传一些配置文件(例如,为 Clojure 开发配置 emacs)。遗憾的是,Vagrant 的文档没有提供任何有关如何执行此操作的线索。我想我必须将配置文件放入共享文件夹,然后将它们从客户机上的共享文件夹复制到所需的位置?
答案1
您可以使用“文件”配置程序。它似乎没有记录,但使用起来很简单。例如:
Vagrant.configure('2') do |config|
# ...
config.vm.provision :file do |file|
file.source = '~/.my.conf'
file.destination = '/home/vagrant/.my.conf'
end
end
第一个问题是,它是以 ssh 用户(默认为“vagrant”)身份运行的,没有 sudo,因此您需要对 VM 上的目录具有写权限。一种解决方法是将其复制到临时位置,然后使用普通的 shell 配置程序将其复制/移动到正确的位置。
第二个问题是目标路径没有正确扩展。因此使用~
或$HOME
很可能不会按预期工作。(另一方面,源路径是已扩展。
答案2
是的,您应该“将配置文件放入共享文件夹,然后将其从客户机上的共享文件夹复制到所需位置”。