Subj : Re: checkinstall type utility for binary distributions To : comp.os.linux From : ibuprofin Date : Thu Nov 11 2004 05:48 pm In article , 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 .