Make hardlinking kernel-devel optional

Chris Adams cmadams at hiwaay.net
Wed Feb 1 01:26:03 UTC 2006


Once upon a time, Dave Jones <davej at redhat.com> said:
> only if you have a huge number of kernels installed, which shouldn't be the case.

If you don't have a huge number of kernels installed, hardlink isn't a
big benefit.  The kernel-devel package is 14MB installed.  Hardlinking
with 3 kernel-devel packages installed will save no more than 28MB (and
probably less).  That is lost in the noise of a normal system.  Just
doing "yum update" will often use much more than 28MB; even after a "yum
clean packages" on a rawhide system I see 90MB in /var/cache/yum.

Also, hardlink apparently may not be very efficient.  I whipped up a
version in perl that (in my limited testing) appears faster.  Others
have written C and C++ (and maybe IIRC python) versions that also appear
to be faster.  How about replacing it with something better performing?

The solution of "rpm -e hardlink" is also not very good, as some people
use hardlink for other things (and so can't just remove it).

As a compromise, how about only kicking hardlink off if there are more
than X kernel-devel packages installed (where X is more than the norm,
like 5)?  Or how about making the hardlink run as a cron job?

Another though: why the "find | while ; do hardlink"?  You should just
be able to do:

if [ -x /usr/sbin/hardlink ] ; then
  /usr/sbin/hardlink /usr/src/kernels/*FC*
fi

The post script is forking hardlink over 5000 times as well as causing
thousands of repeated directory lookups by find and the shell (that
hardlink then has to do anyway), instead of just letting one run of
hardlink do its job (it should recurse just fine).

-- 
Chris Adams <cmadams at hiwaay.net>
Systems and Network Administrator - HiWAAY Internet Services
I don't speak for anybody but myself - that's enough trouble.




More information about the fedora-devel-list mailing list