Archive::RPM man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Archive::RPM(3)	      User Contributed Perl Documentation      Archive::RPM(3)

NAME
       Archive::RPM - Work with a RPM

SYNOPSIS
	       use Archive::RPM;
	   my $rpm = Archive::RPM->new('foo-1.2-1.noarch.rpm');

	   # RPM2 header functions...

	   # other functions...

DESCRIPTION
       Archive::RPM provides a more complete method of accessing an RPM's
       meta- and actual data.  We access this information by leveraging RPM2
       where we can, and by "exploding" the rpm (with rpm2cpio and cpio) when
       we need information we can't get through RPM2.

TRAITS
       This package allows for the application of various "TraitFor" style
       traits through the with_traits() function, e.g.:

	   Archive::RPM->with_traits('Foo')->new(...);

       By default, we look for traits in the "Archive::RPM::TraitsFor"
       namespace, though this can be overridden by prepending a "+" to the
       full package name of the trait.

METHODS
       An object of this class represents an actual RPM, somewhere on the
       filesystem.  We provide all the methods RPM2::Header does, as well as
       additional functions to manipulate/extract the rpm itself (but not to
       install).

       Right now, our documentation is horrible.  Please see RPM2 for the
       methods provided by "RPM2::Header", and the source for the other
       functions we have defined.  We support all methods provided by
       RPM2::Header, except the "files" method (that's handled by other bits).

       new('file.rpm') | new(rpm => 'file.rpm', ...)
	   Creates a new Archive::RPM object.  Note that the rpm parameter is
	   required, and if it is the only one being passed the "rpm =>" may
	   be omitted.

	   rpm => 'filename'|Path::Class::File
	       Required.  Takes either a filename or a Path::Class::File
	       object pointing to the rpm.

	   auto_cleanup => 0|1
	       Default is 1; if the rpm is extracted to the filesystem, purge
	       this automatically.

       rpm Returns a Path::Class::File object representing the rpm we're
	   working with.

       extracted_to
	   Returns a Path::Class::Dir object representing where the rpm has
	   been exploded to.  If the rpm has not been exploded, it will be.

       has_been_extracted
	   Returns true if the rpm has been exploded; false if not.

       is_source_package | is_srpm | is_source
	   Returns true if this is a source rpm; false if not.

       has_files
	   True if this rpm contains any files. (Some, e.g. Fedora's "perl-
	   core" package, are "meta-packages" and do not deliver files; they
	   simply ensure a given set of dependencies exist on a system.	 Sort
	   of like Task::* CPAN dists.)

       num_files
	   Returns the number of files delivered.

       grep_files
	   Grep over the array of files; e.g.

	       my ($spec) = $srpm->grep_files(sub { /\.spec$/ });

       map_files
       files
	   Returns an array of all the dir/files delievered by the rpm.	 Note
	   that these are returned as Path::Class objects, and we use the
	   directories and files present on the filesystem after exploding the
	   rpm rather than the list described by the rpm itself.

       first_file
       last_file
       join_files
       num_changelog_entries
	   Returns the total number of changelog entries.

       changelog_entries
	   Returns an array of all the changelog entries.

       first_changelog_entry
	   Returns the first changelog entry; note that changelogs are stored
	   in reverse chronological order.  That is, the first changelog entry
	   is the newest entry.

       last_changelog_entry
	   Returns the oldest changelog entry.

       get_changelog_entry(Int)
	   Get a specific changelog entry.

       map_changelog_entries
       find_changelog_entry
       grep_changelog_entries

DIAGNOSTICS
       We tend to complain and die loudly on any errors.

SEE ALSO
       RPM2

LIMITATIONS
       Our documentation and test suite is clearly lacking, sadly.

       We also have to explode the rpm for anything more intense than simply
       looking at the header for info.	While this isn't really a _horrible_
       thing, it's annoying to have to, say, explode a 100MB ooffice rpm just
       to get a count of how many files there are in it.

       We do the "exploding" using external rpm2cpio and cpio binaries.	 While
       we could have used Archive::Cpio to handle the cpio extraction, it
       seemed a touch overkill; as there does not appear to be a Perl library
       to handle the "rpm2cpio" part, we may as well use the cpio bin.	(It's
       not like it's missing from many systems, anyways.

BUGS
       All complex software has bugs lurking in it, and this module is no
       exception.  If you find a bug please either email me, or (preferred) to
       this package's RT tracker at "bug-Archive-RPM@rt.cpan.org".

       Patches are welcome.

AUTHOR
       Chris Weyl  <cweyl@alumni.drew.edu>

LICENSE AND COPYRIGHT
       Copyright (c) 2009, 2010 Chris Weyl <cweyl@alumni.drew.edu>

       This library is free software; you can redistribute it and/or modify it
       under the terms of the GNU Lesser General Public License as published
       by the Free Software Foundation; either version 2.1 of the License, or
       (at your option) any later version.

       This library is distributed in the hope that it will be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Lesser General Public License for more details.

       You should have received a copy of the GNU Lesser General Public
       License along with this library; if not, write to the

	   Free Software Foundation, Inc.
	   59 Temple Place, Suite 330
	   Boston, MA  02111-1307  USA

perl v5.14.1			  2010-05-14		       Archive::RPM(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net