Re: checkinstall type utility for binary distributions

From: Moe Trin (ibuprofin_at_painkiller.example.tld)
Date: 11/12/04


Date: Thu, 11 Nov 2004 17:48:54 -0600

In article <LEIkd.32470$K7.15155@news-server.bigpond.net.au>, Rob Strover wrote:

>I've recently discovered the 'checkinstall' utility for creating an rpm (or
>deb) package from source distributed in a tarred format. This adds the
>advantage of rpm wrt un-installation, etc, where no rpm source (or binary)
>package is available.

Well, I see it at sunsite as part of the Slackware 'slack390' distribution,
and it seems (based on file dates) to have been around for a while.

>I also noticed the 'alien' utility. This *sounds* as though it is sort-of
>equivalent to 'checkinstall', but will operate on a binary package.

'alien' started out as a Debian utility.

>Could someone who has experience with these utilities please let me know
>whether this is correct, and if there are any potential traps an 'advanced'
>newbie might encounter.

You don't mention what distribution/version you are using, and that would
make a significant difference. 'rpms' built for distribution C (say for
example Caldera or Conectiva), and not always interoperable with other
distributions (some put things in different places).

NORMALLY for a newbie, I never recommend them trying to install anything
that doesn't come from their distributor. They know what the system looks
like, and have actually tested the package to see that it installs correctly
and this also gives some security against malware.

Once you know something about how things work, you can then start looking
at other sources. The prudent person doesn't act like some windoze wanker
blindly installing everything that their good buddy on IRC tells them about.
With Linux (and other open source O/S), you can usually find a tarball, or
the package source (for rpm, this is a .src.rpm), and you can then get in
there and read what is happening. The C source code is likely to be beyond
your skill, but the Makefile or rpm spec file is plain text. The sourcefile
will also include documentation what gives you a good insight of what is
going on.

For an rpm based system, I prefer to build my own packages from the sources
if I don't explicitly trust the source. This is not the most simple task,
but there is lots of documentation on the web about it. The key is that
spec file.

If it gets to messy, I will use a tarball, but see the trick below. This
really does mean reading the Makefile and seeing what is going to be
installed where. In some packages, you need to run ./configure to create
the Makefile first. That means reading the configure file - you should at
least glance through ANY such files before running them - that's just
common sense. Don't throw away the Makefile - the better authors will
include an 'uninstall:' target, which will remove the stuff that got
installed when you entered 'make install'.

>I'm reluctant to try these programs without this sort of advice because I'm
>not sure I have enough experience with linux to clean up any unfortunate
>mess if things don't work out correctly [short of re-installing the actual
>distribution, etc.] :-(

Oh, there's LOTS of things around this. Let's just start with 'rpm'.

rpm -qpl /path/to/name.of.package.rpm show what files are in an
uninstalled rpm.

rpm -U --test /path/to/name.of.package.rpm go through the motions of
installing the package - looking for conflicts.

rpm -e name.of.package <-- notice the difference remove an installed
binary rpm.

To find out what happens when you are installing/removing packages, here is
a very easy trick that works with ALL package managers, and works with
tarballs.

   1. touch /tmp/touchstone
   2. install/remove/do_your_thing
   3. find / -newer /tmp/touchstone -exec ls -lad {} \; > /some/filename

This means to create a file (1) before you start messing with things (2),
and then running the find command to locate stuff that has been messed
with since you created the file in step 1. If you stash this find
output, when you later want to remove the mess, this file will tell you
what had been done.

        Old guy



Relevant Pages

  • Re: Redhat to Freebsd
    ... >>researching security updates or in performing kernel or package updates. ... >>I assume it is only the Redhat distro that has the ease of RPM installation? ... So you can build from sources with ports, or install binaries ...
    (comp.unix.bsd.freebsd.misc)
  • Re: ./configure command
    ... The package is not available. ... machines which don't even have an OS at all, let alone RPM, ... There is not a "the tool to package and install on Fedora". ... If he wants to avoid trouble, ...
    (Fedora)
  • Re: [SLE] deCSS
    ... >> Anyone know of a reasonably easy decss program to copy DVDs to my hard ... This let's you compile from source but converts it to an rpm ... Then instead of make install you type checkinstall. ... package to meet the dependencies it may not be recognized by the other ...
    (SuSE)
  • Re: RH 9.0, Putting Samba on Linux with RPM?
    ... I need to install Samba with RPM. ... downloading the various manuals in the package forms. ...
    (linux.redhat.misc)
  • Re: Java on Linux
    ... > The correct procedure depends on your distribution. ... > If it is RedHat or another distribution that uses rpm (or can handle it ... install the rpm file in the usual manner. ... I have tried installing Java from the 8.3 distro disks but do not get ...
    (comp.lang.java.programmer)