Помимо установки приложений, таких как emacs, на мою гостевую машину, я также хотел бы загрузить некоторые файлы конфигурации (например, для настройки emacs для разработки Clojure). К сожалению, документация Vagrant не дает ни малейшего представления о том, как это сделать. Думаю, мне придется поместить файлы конфигурации в общую папку, а затем скопировать их из общей папки на гостевом компьютере в нужные места?
Вы можете использовать "файловый" провайдер. Вроде бы недокументированный, но использование простое. Например:
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, поэтому вам необходимо иметь доступ для записи в каталог на виртуальной машине. Обходной путь - скопировать во временное место, а затем использовать обычный провайдер оболочки, чтобы скопировать / переместить его в нужное место.
Вторая проблема заключается в том, что целевые пути не раскрываются правильно. Итак, используя ~
или $HOME
скорее всего, не будет работать должным образом. (Исходный путь с другой стороны является расширен.)
Да, вам следует «поместить файлы конфигурации в общую папку, а затем скопировать их из общей папки на гостевой машине в желаемое место».