By Jose M Calhariz on Tuesday, 3 January, 2012, 00:44 - Software
In the past I had to install many times, by hand, extra software on Unix
machines, specially because of missing useful software like a C compiler or
because I like too much to use the bash. In the end it can get very messy I
promised myself to never do again a make install for manually
installing software in a Debian machine.
It's possible and it pays on the long run. When you take a program from
outside the distribution you need to: configure, compile, install and document
what you have done. So you can do it again with the next version. Specially
when you have done local modifications. If you put your software inside a
Debian package and follow the most sensible Debian Policy rules you get:
- The documentation on how to configure, build and install the software is in
debian/rules file.
- It's easy to upgrade or remove the software, because is a Debian
package.
- You can use a patch system like quilt or dpatch to isolate your local
changes from the upstream sources. If you create different patches files, for
every logical feature you enhance or fix, it will be easier to drop them when
the new version have the desired feature and to know what features needs to be
ported for the new version of the upstream software.
- You can do it even with the binaries of proprietary software. Its easy to
take an rpm or tar files with the binaries and insert them inside the sources
of a Debian package. With the proper care it's easy to update the sources for
the next upgrade.
For example I have been doing this for packaging the pristine upstream
binary of eclipse, because the teachers of my University usually requests a
newer version of eclipse than what is available from Debian stable or even
unstable.
Another example is the support software for HP hardware before HP officially
supported Debian. I have taken the original rpm files or the scexe scripts and
convert them into a debian file. Usually I need only to change two files with
every new release of software, the Makefile with the name of the new rpm file
and the debian/changelog with the new version and what is new.
In the end it's easier than it seams to create and maintain a Debian
package. It's a steep curve, but pays off on the long run.
The good thing is all this approaches are compatible with a puppet or chef
system for managing the Unix servers.