[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Package verification and "/usr/bin/install" tool replacements




Although debian packages may contain md5sums it seems package verification is
not available (unless I have missed something).

Also I find the traditional /usr/bin/install type tools rather primitive.

As I understand it a debian pkg relies on information in the tar archive itself
to store this information.

I had need for both a package verification tool (including minor repair abilities) as well as the ability to verify/fix file/dir/link user/goup IDs and modes.
I have developed a pkg system which meets my needs and it happens to be
very similar to the debian system. I would like to move to a debian pkg system
but I want to introduce the tools and features of my system.

Some of the ideas I have implemented include a "pkg info" file in each package
containing the
	pathname
	uid, gid (numeric)
	md5sum,
	size (useful to humans)
	mode
	symlink target (for symlinks)

a pkgverify command can be run on an installed package and the contents of this pkginfo file are used to ensure the pkg is installed correctly. The tool can also optionally
correct missing/broken dirs, symlinks  as well as uid, ,gid, mode info.

The second tool is an install configuration tool.
Say you have built an application you want to deploy. In this case we'll assume
it is home-grown and not a 3rd party pkg using configure (for eg).
You have a bunch of files which need to be installed in several locations, eg
/usr/local/bin  or /usr/local/pkgname/bin, etc  and so on
Hand crafting a set of "/usr/bin/install" comands is messy.

I have developed a tool that takes a simple file format and uses it to
construct an install tree. It also constructs the pkginfo file I mentioned above.
The benefit of this approach is ease of admin and uniformity of results.
It has various nice features like being able to produce multiple install trees (for example a developer-install tree which has include files, or a runtime tree which omits developer info). It is fully configurable and quite simple to use.

The third core tool assumes you have a 3rd party program say using configure which does produce a respecable install tree (probably using /usr/bin/install itself). This new tool is like a super-smart find which runs through the local copy of the install tree and constructs the install config file that would otherwise need to be built by hand, It does nice things like grouping include files and man pages into separate logical groups.

I have used these tools (and others) to manage some 600 machines with around 120,000 files on each split into a few hundred debian-like packages so I know it works well.

I'd be interested in sharing this with the debian community if there is enough enthusiasm and incentive to help build these features into the debian system
over the next few months.

regards
	Kim



Reply to: