Class: LinuxAdmin::Rpm
- Inherits:
-
Package
- Object
- LinuxAdmin
- Package
- LinuxAdmin::Rpm
- Defined in:
- lib/linux_admin/rpm.rb
Constant Summary collapse
- RPM_CMD =
'/usr/bin/rpm'
Constants inherited from LinuxAdmin
Class Method Summary collapse
-
.import_key(file) ⇒ Object
Import a GPG file for use with RPM.
- .info(pkg) ⇒ Object
- .list_installed ⇒ Object
- .upgrade(pkg) ⇒ Object
Methods included from Common
Class Method Details
.import_key(file) ⇒ Object
Import a GPG file for use with RPM
Rpm.import_key("/etc/pki/my-gpg-key")
16 17 18 19 |
# File 'lib/linux_admin/rpm.rb', line 16 def self.import_key(file) params = {"--import" => file} run!("rpm", :params => params) end |
.info(pkg) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/linux_admin/rpm.rb', line 21 def self.info(pkg) params = { "-qi" => pkg} in_description = false out = run!(RPM_CMD, :params => params).output out.split("\n").each.with_object({}) do |line, rpm| tag,value = line.split(':') tag = tag.strip if tag == 'Description' in_description = true elsif in_description rpm['description'] ||= "" rpm['description'] << line + " " else tag = tag.downcase.gsub(/\s/, '_') rpm[tag] = value.strip end end end |
.list_installed ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/linux_admin/rpm.rb', line 5 def self.list_installed out = run!("rpm -qa --qf \"%{NAME} %{VERSION}-%{RELEASE}\n\"").output out.split("\n").each_with_object({}) do |line, pkg_hash| name, ver = line.split(" ") pkg_hash[name] = ver end end |
.upgrade(pkg) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/linux_admin/rpm.rb', line 40 def self.upgrade(pkg) cmd = "rpm -U" params = { nil => pkg } run(cmd, :params => params).exit_status == 0 end |