"Linux Gazette...making Linux just a little more fun!"

The UnRpm-Install Package

Introduction

No matter what distribution of Linux you have installed, there will come a
time when you would like to install a package in one of the other
distribution's formats. No one distribution has available every possible
package, and the updates to packages often depend on a volunteer's inclination
and time constraints.

On a reasonably current and well-maintained Linux system, most of the
quality source-code packages will compile without much effort beyond perusal
of the README and INSTALL files. In other words, *.rpm and
*.deb packages aren't vitally necessary, though the ease of upgrading
or removal possible with these packages makes them a time-saving convenience.

But few people have both the time and/or inclination to compile every new
program from source. It does take more time than using a precompiled
package, and often a package maintainer will have access to patches which
haven't yet been incorporated into an official release. One of these patches
might be just what it takes to insure a successful installation on your
system! Therefore it stands to reason that the more different genera of
precompiled packages you have available, the wider the pool of available
software.

A year and a half ago I was running a Slackware 3.0 system, but had used
Redhat just long enough to appreciate the value of an rpm package. As I
remember, there were a few pieces of software which I was unable, no matter
what tweaking I did, to successfully compile. The rpm's available for those
packages were tempting, but I didn't want to start from scratch and reinstall
the Redhat Linux distribution just for a few packages. Poking around the
Redhat FTP site, I saw that the source for the then-current version of rpm
was available, and after various trials and tribulations I managed to
successfully compile and install it. The crucial factor which made it all
work was downloading and installing a newer version of cpio, which was
right there in the Redhat rpm directory. It wasn't the easiest installation
I've ever done, but I don't blame the folks at Redhat for not making it a
no-brainer. After all, they evidently worked long and hard developing the rpm
package system and they surely wanted to leverage its value in influencing
users to buy their distribution. Redhat is to be commended for resisting
purely commercial urges and making rpm freely available.

Two distributions later, I never have gotten around to reinstalling rpm,
partly because the Debian distribution has a utility called alien,
which will convert an *.rpm file into a *.deb file. This is
a nice utility, but sometimes I'd just like to poke around inside a package
and see what's there without actually installing it. Both rpm and Debian's
dpkg utility have command-line switches for just listing the
contents, or extracting individual files from a package. These aren't the
sort of switches I would use often enough to memorize, and it's a pain to read
the man page each time. So I gradually meander my way to the point of this
article...

UnRpm-Install

Recently, in nearly daily updates,
Kent Robotti has been releasing to the Sunsite archive site a
package of programs and scripts which simplify working with these various
package formats. UnRpm is most useful when used in conjunction with the
Midnight Commander file manager, as one component of the package is a
set of entries meant to be appended to the mc user menu.

This is what the package includes:

the version of cpio which works well with rpm

two shell scripts from the Slackware distribution, installpkg
and removepkg

rpm2cpio, a program from Redhat which converts an rpm
archive to a cpio archive

dpkgdeb, a program from the Debian distribution which unpacks,
packs, or provides information about a Debian archive file

unrpm and undeb, two shell scripts which can either be
used as is or be called by the Midnight Commander.

Update.mc, a shell script which will append entries for the above
scripts and programs to the /usr/lib/mc/mc.menu file

Install, a shell script which installs the above binaries and
shell scripts, and also thoughtfully renames any pre-existing
equivalents in case you may want to back out any of the installed files

The earlier versions of UnRpm-Install included statically-linked binaries, no
doubt to make them usable by a wider variety of users, but with the
disadvantage of large binaries. Since most systems have compatible
libc versions installed, which is the only library linked with the
binaries, recent versions have included the smaller dynamically-linked
versions.

The Midnight Commander in its recent incarnations has excellent
support built-in for treating these various archive formats as virtual
file-systems, allowing the user to browse through their contents without
actually expanding them. The menu entries provided by UnRpm expand upon these
capabilities, making it easier than ever to convert one format to another and
to see just what an archive will install on your system.

There's nothing in UnRpm-Install which you couldn't gather up yourself, from
various FTP sites or distribution cd's. What makes the package valuable is
that Kent Robotti has done this for you, and presented these disparate
binaries and scripts as a coherent whole, bound together by the Midnight
Commander used as archive manager.

Availability

Various versions of UnRpm-Install are still in the /pub/Linux/Incoming directory of
the Sunsite FTP
archive, but the most recent version will eventually make its way into
the archive
utility directory.