我正在使用Vagrant和Docker作为提供商。
每当我使用任何命令启动vagrant
时,该目录将填充四个文件,前缀为“vagrant”,例如'vagrant20150902-10813-1p2j0fh'和一个前缀为'd'的目录,例如: 'd20150902-10813-14u60qc'。
这些都没有被自动删除,所以在几次重启后,我的pwd变得混乱了一组文件和目录,内容相同:
有没有人遇到过这样的麻烦?也许同步文件夹有问题?
流浪者%日期% - %id% - %rand1%(例如'vagrant20150902-12033-1j2np7i')和流浪者%日期% - %id% - %rand2%(例如'vagrant20150902-12033-v7vbh4')是空的。
vagrant%date% - %id% - %rand2%2 (例如'vagrant20150902-12033-v7vbh42')看起来像一个Gemfile:
source "https://rubygems.org"
source "http://gems.hashicorp.com"
gem "vagrant", "= 1.7.2"
group :plugins do
gem "vagrant-share", nil, {}
end
vagrant%date% - %id% - %rand2%2.lock (例如'vagrant20150902-12033-v7vbh42.lock')看起来像Gemfile.lock:
GEM
remote: https://rubygems.org/
remote: http://gems.hashicorp.com/
specs:
akami (1.2.2)
gyoku (>= 0.4.0)
nokogiri
builder (3.2.2)
celluloid (0.16.0)
timers (~> 4.0.0)
childprocess (0.5.5)
ffi (~> 1.0, >= 1.0.11)
erubis (2.7.0)
ffi (1.9.6)
gssapi (1.0.3)
ffi (>= 1.0.1)
...
PLATFORMS
ruby
DEPENDENCIES
vagrant (= 1.7.2)
vagrant-share
目录 d%date% - %id% - %rand3%(例如'd20150902-12033-1gkuid5')包含单个相同的文件 config :
BUNDLE_PATH: "/home/username/.vagrant.d/gems"
编辑:既没有项目Gemfile,也没有Gemfile.lock包含gem'vagrant',我已经从.deb包中安装了它。 Vagrant版本是1.7.4
这看起来很奇怪。我将问题追溯到调用Vagrant::Bundle#deinit
的{{3}}:
at_exit(&Vagrant::Bundler.instance.method(:deinit))
vagrant bin该方法在源代码中的显示方式:
def deinit
File.unlink(ENV["BUNDLE_APP_CONFIG"]) rescue nil
File.unlink(ENV["BUNDLE_CONFIG"]) rescue nil
File.unlink(ENV["GEMFILE"]) rescue nil
end
尝试取消链接ENV["BUNDLE_APP_CONFIG"]
,这是一个目录,导致错误随后被静音。此外,ENV["GEMFILE"]
未定义(ENV["BUNDLE_GEMFILE"]
),因此此行也会导致抑制错误。
现在我必须覆盖流浪汉中的Vagrant::Bundle#deinit
:
Vagrant::Bundler.class_eval do
def deinit
file1 = ENV["BUNDLE_CONFIG"][0..-2]
file2 = ENV["BUNDLE_GEMFILE"][0..-2]
gemfile_lock = "#{ENV["BUNDLE_GEMFILE"]}.lock"
FileUtils.rm_rf(ENV["BUNDLE_APP_CONFIG"])
File.unlink(ENV["BUNDLE_CONFIG"], ENV["BUNDLE_GEMFILE"], file1, file2, gemfile_lock)
end
end
# Schedule the cleanup of things
at_exit(&Vagrant::Bundler.instance.method(:deinit))
必须有一种更清洁的方法来做到这一点,太糟糕了,我还没有找到它。
Upd2 :Here's导致这些更改的问题,以及Here's提交。也许我错过了一些旗帜或env变量?
Upd3 :在here's
提交了一个问题