除了在客户机上安装emacs之类的应用程序之外,我还想上传一些configuration文件(例如为Clojure开发configurationemacs)。 可悲的是,Vagrant的文档没有提供如何做到这一点的线索。 我想我必须把configuration文件放到共享文件夹中,然后将它们从客机上的共享文件夹复制到所需的位置?
您可以使用“文件”预配器。 这似乎是无证的,但用法很简单。 例如:
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,所以你需要有对虚拟机目录的写权限。 解决方法是复制到临时位置,然后使用普通的shellconfiguration程序将其复制/移动到正确的位置。
第二个问题是目标path不能正确扩展。 所以使用~或$HOME最可能不会按预期工作。 (另一方面源path被扩展。)
是的,您应该“将configuration文件放入共享文件夹,然后将它们从客机上的共享文件夹复制到所需的位置”。