FreeBSD Ports Problem - Please help
Matthew Seaman
m.seaman at black-earth.co.uk
Fri Feb 12 08:52:10 UTC 2010
On 12/02/2010 04:22, M M wrote:
> I followed the FreeBSD guidebook and tried to install the ports
> 'graphics/sane-backends' and 'graphics/sane-frontends', but when I did this,
> FreeBSD told me I needed the latest installation of graphics/jpeg (which
> happened to be jpeg-8, and I only had jpeg-7 installed on my machine).
>
> So If I remember correctly, I ended up using *Portupgrade* for this process.
> I believe I ran 'Portupgrade -ai' which took quite a long time. Portupgrade
> worked great or whatever Port updating command I ran did a wonderful
> job....it updated the graphics/jpeg port on my machine.
The root of the problem you're seeing is due to the change in the
libjpeg.so ABI version: libjpeg.so.10 is installed by jpeg-8, but most
of your apps want to link against libjpeg.so.9 installed by jpeg-7.
Rebuilding all out of date ports (via portupgrade -a) should have been
the correct action to fix that. However, some problems with the update
were discovered and subsequently fixed. Have you seen this entry from
/usr/ports/UPDATING?
20100205:
AFFECTS: users of qt 3 and kde 3
AUTHOR: itetcu at FreeBSD.org
When building qt33 and kdelibs3 (at least), while they are installed,
because
of -L/usr/local/lib being passed too soon, the currently installed
libs are
used instead of the ones from the build. This makes the build fail if you
updated any of the libs this qt / kde libs are linked against (like
libjpeg).
For the moment the workaround, when you get to this, is to move the
old lib
out of the way, e.g.:
mv /usr/local/lib/libqt-mt.so /usr/local/lib/libqt-mt.so.old && \
cd /usr/ports/x11-toolkits/qt33/ && make && \
mv /usr/local/lib/libqt-mt.so.old /usr/local/lib/libqt-mt.so && \
portmaster -C x11-toolkits/qt33
(or portupgrade -w qt-33\*), etc.
I suggest the best thing to try first is: update your ports tree to the
latest using csup(1) or portsnap(8) or however you'ld usually do it.
Forcibly delete whatever libjpeg you have installed, and then reinstall
jpeg-8:
# pkg_delete -f jpeg-\* (This will give you alarming warning
messages, which you can ignore)
# cd /usr/ports/graphics/jpeg
# make install
# pkgdb -F
Apply the advice above to move the incorrectly linked shlibs out of the
way and rebuild them properly. This might make things work again.
If it doesn't try and identify any binaries in /usr/local/bin that link
against missing shlibs and re-install the ports that supply them.
Do that by running ldd(1) against the apps. Eg. like this:
% ldd /usr/local/bin/psi
/usr/local/bin/psi:
libz.so.5 => /lib/libz.so.5 (0x285ff000)
libXss.so.1 => /usr/local/lib/libXss.so.1 (0x28611000)
libaspell.so.16 => /usr/local/lib/libaspell.so.16 (0x28614000)
libQtDBus.so.4 => /usr/local/lib/qt4/libQtDBus.so.4 (0x286cc000)
[... etc ...]
What you're looking for are lines that say 'libfoo => not found (0x0)'
For any such, work out what port supplies that application, and
reinstall it:
# pkg_which /usr/local/bin/psi
# portupgrade -f `pkg_which /usr/local/bin/psi`
That's going to be long-winded and tedious, but should still be a bit
quicker than force-reinstalling everything that depends on jpeg, kde
and qt.
> Any advice would be greatly appreciated. At this point I am waiving the
> white flag and I would love to just get back to my original configuration
> and forget about installing the image scanner. Above all else, I am just
> trying to avoid a total reinstall of FreeBSD 8.0.
There's no need to go that far. If you want to take a nuke-and-repave
approach, you can do it by deleting and reinstalling just the affected
ports. In extremis, you could do something like this:
* Make a note of all the ports you have installed already that
depend on libjpeg:
% pkg_info -Rx jpeg > ports-I-want-installed
* Blow away libjpeg and everything that links against it:
# pkg_deinstall -fr graphics/jpeg
* Reinstall what you want from ports-I-want-installed. If you
choose the important leaf ports first (the ones that provide the
apps you actually use) then most of the ports on that list will
get automatically reinstalled as dependencies.
Cheers,
Matthew
--
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 267 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20100212/0f8d3551/signature.pgp
More information about the freebsd-ports
mailing list