Dec 062011
 

Recently I’ve discovered this great program that helps a lot to avoid one of my worst nightmare, to have a lot of packages installed from the sources, and lose track of them in my system, how ?

CheckInstall keeps track of all files installed by a “make install” or equivalent, creates a Slackware, RPM, or Debian package with those files, and adds it to the installed packages database, allowing for easy package removal or distribution.

That a dream come true for me, and probably other system administrators.

Let’s see how to use it.

Installation

CheckInstall it’s available in all the main distributions, so you can just use your favorite package manager to install it, on my ubuntu i’ve sed

sudo aptitude install checkinstall

How to use

Using checkinstall is really simple. Suppose you have just recompiled a program from its source, using the classic two commands:

./configure
make

At this point, instead of giving make install use the checkinstall command. Once you become superuser (root) you should give, from the source directory, a command like this:

sudo checkinstall

This will start a wizard that will make some questions and then will install the package:

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.

The package documentation directory ./doc-pak does not exist. 
Should I create a default set of package docs?  [y]: 

Preparing package documentation...OK

Please write a description for the package.
End your description with an empty line or EOF.
>> pdfcrack
>> 

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values: 

0 -  Maintainer: [ linuxaria@xubuntu-home ]
1 -  Summary: [ pdfcrack ]
2 -  Name:    [ pdfcrack ]
3 -  Version: [ 0.11 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ pdfcrack-0.11 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ pdfcrack ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue: 

Installing with make install...

========================= Installation results ===========================
make: *** No rule to make target `install'.  Stop.

****  Installation failed. Aborting package creation.

Cleaning up...OK

Bye.



Ok, for my example I’ve used a package that don’t has “make install”, so i’ve got an error, otherwise the installed package would have been added to my package manager database.

It’s also possible to supply the information from the command line and skip the wizard with option like these:

checkinstall -y --pkgname=pdfcrack --pkgversion=0.11 --pkgrelease=1 --pkglicense=GPL --pkgsource=http://sourceforge.net/projects/pdfcrack/
  • Package name: pdfcrack
  • Package versione: 0.11
  • Release: 1
  • License: GPL
  • Original source:http://sourceforge.net/projects/pdfcrack

Note

By default the output package format for checkinstall it’s the Debian format (*. deb). If you want to create a package for Slackware, the additional parameter to be passed to checkinstall is -S or -R if you want to create a package for RedHat (*.rpm).

Conclusion

So with a few effort you can have all your packages in your package manager database, a thing that has a great value in my opinion.
You can query it to know which package (and version) you have installed and you can easily remove a package with all his files.
I’ve not tested the require options, but it would be a good plus if it’s working properly to keep the list of dependencies

Popular Posts:

Flattr this!

  One Response to “Checkinstall, install from the source in the best way”

  1. Great piece of information. keep it dude…

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*