Add support for DNF
If the folder `/car/cache/dnf` is present, the content will be cached like in the Yum plugin. A possible configuration to enable it: Vagrant.configure(2) do |config| config.vm.box = "fedora/24-cloud-base" if Vagrant.has_plugin?("vagrant-cachier") config.cache.scope = :machine config.cache.auto_detect = false config.cache.enable :dnf end endpull/180/head
parent
959ac6fbcc
commit
5141e1305a
@ -0,0 +1,20 @@
|
||||
# DNF
|
||||
|
||||
Used by Fedora guests, will get configured under guest's `/var/cache/dnf`. It will
|
||||
also [make sure](lib/vagrant-cachier/bucket/dnf.rb#L20) that `keepcache` is set to
|
||||
`1` on guest's `/etc/dnf/dnf.conf`.
|
||||
|
||||
To manually enable it:
|
||||
|
||||
```ruby
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = 'some-fedora-box'
|
||||
config.cache.enable :dnf
|
||||
end
|
||||
```
|
||||
|
||||
### :warning: Notice about Windows hosts :warning:
|
||||
|
||||
In case this bucket is enabled and a Windows host is in use, you might see an
|
||||
ugly stacktrace as described on [this comment](https://github.com/fgrehm/vagrant-cachier/issues/117#issuecomment-50548393)
|
||||
if some DNF repository is not available during provisioning.
|
@ -0,0 +1,26 @@
|
||||
module VagrantPlugins
|
||||
module Cachier
|
||||
class Bucket
|
||||
class Dnf < Bucket
|
||||
def self.capability
|
||||
:dnf_cache_dir
|
||||
end
|
||||
|
||||
def install
|
||||
if guest.capability?(:dnf_cache_dir)
|
||||
guest_path = guest.capability(:dnf_cache_dir)
|
||||
return if @env[:cache_dirs].include?(guest_path)
|
||||
|
||||
# Ensure caching is enabled
|
||||
comm.sudo("sed -i '/keepcache=/d' /etc/dnf/dnf.conf")
|
||||
comm.sudo("sed -i '/^[main]/a keepcache=1' /etc/dnf/dnf.conf")
|
||||
|
||||
symlink(guest_path)
|
||||
else
|
||||
@env[:ui].info I18n.t('vagrant_cachier.skipping_bucket', bucket: 'DNF')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,13 @@
|
||||
module VagrantPlugins
|
||||
module Cachier
|
||||
module Cap
|
||||
module RedHat
|
||||
module DnfCacheDir
|
||||
def self.dnf_cache_dir(machine)
|
||||
'/var/cache/dnf'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue