class RPMdb
Public Class Methods
new(root='')
click to toggle source
# File lib/rpm.rb, line 162 def initialize(root='') @db = RPM::DB.new false, root end
open(root='')
click to toggle source
# File lib/rpm.rb, line 79 def RPMdb.open(root='') RPMdb.new root end
Public Instance Methods
close()
click to toggle source
# File lib/rpm.rb, line 83 def close @db = nil GC.start end
each() { |name, version.v, version.r| ... }
click to toggle source
# File lib/rpm.rb, line 155 def each raise RuntimeError, 'closed DB' if @db.nil? @db.each do |pkg| yield pkg.name, pkg.version.v, pkg.version.r end end
file(filespec)
click to toggle source
# File lib/rpm.rb, line 88 def file(filespec) raise RuntimeError, 'closed DB' if @db.nil? pkgs = [] @db.each_match(RPM::TAG_BASENAMES, filespec) do |pkg| [pkg.name, pkg.version.v, pkg.version.r] end pkgs end
group(groupname)
click to toggle source
# File lib/rpm.rb, line 97 def group(groupname) raise RuntimeError, 'closed DB' if @db.nil? pkgs = [] @db.each_match(RPM::TAG_GROUP, groupname) do |pkg| pkgs << [pkg.name, pkg.version.v, pkg.version.r] end pkgs end
package(packagename)
click to toggle source
# File lib/rpm.rb, line 106 def package(packagename) raise RuntimeError, 'closed DB' if @db.nil? pkgs = [] @db.each_match(RPM::DBI_LABEL, packagename) do |pkg| pkgs << [pkg.name, pkg.version.v, pkg.version.r] end pkgs end
provides(name)
click to toggle source
# File lib/rpm.rb, line 133 def provides(name) raise RuntimeError, 'closed DB' if @db.nil? pkg = nil @db.each_match(RPM::DBI_LABEL, name) {|p| pkg = p} if pkg then pkg.provides.collect {|prov| prov.name } else [] end end
requires(name)
click to toggle source
# File lib/rpm.rb, line 144 def requires(name) raise RuntimeError, 'closed DB' if @db.nil? pkg = nil @db.each_match(RPM::DBI_LABEL, name) {|p| pkg = p; break} if pkg then pkg.requires.collect {|req| [req.name, req.version.v, req.version.r] } else [] end end
whatprovides(caps)
click to toggle source
# File lib/rpm.rb, line 115 def whatprovides(caps) raise RuntimeError, 'closed DB' if @db.nil? pkgs = [] @db.each_match(RPM::TAG_PROVIDENAME, caps) do |pkg| pkgs << [pkg.name, pkg.version.v, pkg.version.r] end pkgs end
whatrequires(caps)
click to toggle source
# File lib/rpm.rb, line 124 def whatrequires(caps) raise RuntimeError, 'closed DB' if @db.nil? pkgs = [] @db.each_match(RPM::TAG_REQUIRENAME, caps) do |pkg| pkgs << [pkg.name, pkg.version.v, pkg.version.r] end pkgs end