|Subject:||Re: Follow Up Question On Upgrading And Ports|
|From:||Matthew Seaman (m.se...@black-earth.co.uk)|
|Date:||Feb 8, 2010 10:30:16 am|
On 08/02/2010 17:38, Tim Daneliuk wrote:
My ordinary practice with production FreeBSD machines is to:
- Regularly (weekly), update the sources, rebuild and reinstall world and kernels.
This implies you're running one of the -STABLE branches, rather than -RELEASE: updates to -RELEASE happen much less frequently than weekly...
- Regularly (several times a week), do a 'portupgrade -arR'
- Somewhat frequently do a 'pkgdb -F'
IOW, I keep the OS, kernels, and ports fairly up-to-date.
Yep. It's good to do that, although your methodology would be pretty hard to cope with on any more than a few machines.
However, per the thread on the proper updating method a few days ago, I just ran 'make delete-old' and 'make delete-old-libs' for the first time ever. After a reboot the system started grumbling about not being able to find libssl.so.4. I reinstalled the compat5,6,7 ports and all is well again. Running 'make delete-old-libs' seems to no longer want to get rid of libssl.so.4.
make delete-old-libs will blow away /usr/lib/libssl.so.X, but the compat ports will provide /usr/local/lib/compat/libssl.so.X
This leads to my questions:
1) With all the regular portupgrades I do, why is libssl.so.4 even being used any more? Isn't this a relic from the FBSD 4.x branch?
No -- libssl.so.4 would be from RELENG_6. RELENG_8 provides libssl.so.6, and the ports version of OpenSSL (and presumably 9-CURRENT too) has libssl.so.7
It's libc.so where the ABI version number is the same as the OS major version number. Other shlibs in base can have completely different ABI version numbers.
2) Why did the initial 'make delete-old-libs' clobber this file, but after the compat reinstalls, the same command no longer cares?
Compat libs are in a different location under /usr/local.
3) If I do an in-place upgrade to 8.x (I'll probably wait until 8.1) and immediately follow it with a 'portupgrade -arR', will I be guaranteed that every port will be migrated to the very latest 8.x libs?
Every port that is capable of being built from source, yes: some binary blobs may still need compat versions of shlibs. diablo-jdk comes to mind as a good example (needs compat7x). nvidia-driver-173 needs compat5x on my machine. However, such binary blobs are the exception rather than the rule.
Rebuilding all your ports is difficult and time-consuming, but it pays off in easier future maintenance, improved performance and better stability.
-- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard, Flat 3 Black Earth Consulting Ramsgate Kent, CT11 9PW Free and Open Source Solutions Tel: +44 (0)1843 580647