# File lib/rpm.rb, line 163 def initialize(root='') @db = RPM::DB.new false, root end
# File lib/rpm.rb, line 80 def RPMdb.open(root='') RPMdb.new root end
# File lib/rpm.rb, line 84 def close @db = nil GC.start end
# File lib/rpm.rb, line 156 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 lib/rpm.rb, line 89 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
# File lib/rpm.rb, line 98 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
# File lib/rpm.rb, line 107 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
# File lib/rpm.rb, line 134 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
# File lib/rpm.rb, line 145 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
# File lib/rpm.rb, line 116 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
# File lib/rpm.rb, line 125 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