class VagrantVbguest::Installers::CentOS

Public Class Methods

match?(vm) click to toggle source
Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 5
def self.match?(vm)
  super && communicate_to(vm).test('test -f /etc/centos-release')
end

Public Instance Methods

install(opts=nil, &block) click to toggle source

Install missing deps and yield up to regular linux installation

Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 10
def install(opts=nil, &block)
  install_kernel_deps(opts, &block)
  super
end

Protected Instance Methods

dependencies() click to toggle source
Calls superclass method
# File lib/vagrant-vbguest/installers/centos.rb, line 59
def dependencies
  if has_kernel_devel_info?
    # keep the original redhat dependencies
    super
  else
    # we should have installed kernel-devel-`uname -r` via install_kernel_devel
    ['gcc', 'binutils', 'make', 'perl', 'bzip2'].join(' ')
  end
end
has_kernel_devel_info?() click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 24
def has_kernel_devel_info?
  unless instance_variable_defined?(:@has_kernel_devel_info)
    @has_kernel_devel_info = communicate.test('yum info kernel-devel-`uname -r`', sudo: true)
  end
  @has_kernel_devel_info
end
has_rel_repo?() click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 31
def has_rel_repo?
  unless instance_variable_defined?(:@has_rel_repo)
    rel = release_version
    @has_rel_repo = communicate.test("yum repolist --enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates")
  end
  @has_rel_repo
end
install_kernel_deps(opts=nil, &block) click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 17
def install_kernel_deps(opts=nil, &block)
  unless has_kernel_devel_info?
    update_release_repos(opts, &block)
    install_kernel_devel(opts, &block)
  end
end
install_kernel_devel(opts=nil, &block) click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 53
def install_kernel_devel(opts=nil, &block)
  rel = has_rel_repo? ? release_version : '*'
  cmd = "yum install -y kernel-devel-`uname -r` --enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates"
  communicate.sudo(cmd, opts, &block)
end
release_version() click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 39
def release_version
  unless instance_variable_defined?(:@release_version)
    @release_version = nil
    communicate.sudo('cat /etc/centos-release') do |type, data|
      @release_version = data.to_s[/(\d+\.\d+(\.\d+)?)/, 1]
    end
  end
  @release_version
end
update_release_repos(opts=nil, &block) click to toggle source
# File lib/vagrant-vbguest/installers/centos.rb, line 49
def update_release_repos(opts=nil, &block)
  communicate.sudo('yum install -y centos-release', opts, &block)
end