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.
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:
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:
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
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).
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
- In this SteamOS era where do the Linux gaming stand?
- Introduction to gnome maps
- How to manage processes with cgroup on Systemd