On Fri, 22 Jun 2007, Keith Lofstrom wrote:
There is a program called "prelink" that works with the program loader
to rewrite the symbol tables in libraries and executables for faster
loading. It is turned on by default in Red Hat derived systems like
Scientific Linux.
Yikes!
I do disk-to-disk backups with dirvish/rsync (I like dirvish so much,
I host www.dirvish.org ;-) ) and have started doing file integrity
monitoring with osiris. It appears that "prelink" changes the
binaries and libaries while leaving ctime/mtime at previous values.
Just like a virus does, so prelink sets off all sorts of alarms.
Sorry, I would rather have slow, stable and safe instead of fast
and fragile, so bye-bye prelink .
In my (possibly badly distorted) view if prelinking give you anything then
any service using a prelinked binary or dynamically linked library should
be re-started after each prelink change.
After all the default prelink settings re-write the elf data every ~2
weeks but I expect machines to be up for far longer than that...
Also note that a freshly installed machine won't yet have any prelinked
stuff until the cron runs and mostly won't be *using* the prelinked
versions of files 'til the next reboot after that.
I'm currently running SL4x servers with prelink disabled and have it
turned off for the handful of 'test' SL5 Desktop machines we have - but I
might re-think things before we roll that out generally...
I plan to remove /etc/cron.daily/prelink, revert my binaries and
libraries with "prelink -au", then comment out all the "-l" lines
in /etc/prelink.conf so that the loader doesn't attempt to do it.
To turn off prelink just set PRELINKING=no in /etc/sysconfig/prelink and
the next time the cron-job is run (from cron or by hand) it will *undo*
all the prelink changes.
Then I will rebuild my backups, and reinitialize osiris.
Any flaws in my thinking?
I like stability too. Isn't it a pity that this magic can't be done
without altering files' contents!
-- Jon