On Apr 20, 2009, at 09:43, Scott Haneda wrote:
On Apr 20, 2009, at 7:25 AM, Daniel J. Luke wrote:
$sudo /opt/local/sbin/postfix start
dyld: Library not loaded: /opt/local/lib/mysql5/mysql/
libmysqlclient.16.dylib
Referenced from: /opt/local/sbin/postfix
Reason: image not found
Trace/BPT trap
You upgrade mysql and it removed a library that postfix depended
on. (/opt/local/lib/mysql5/mysql/libmysqlclient.16.dylib).
When you removed and re-installed postfix, it found the newer
mysql library and worked again.
One way of dealing with this sort of thing would be to have a
staging server where you can test upgrades before you push them to
your production machine (or if you have a cluster, you might be
able to remove one machine from the cluster, test the upgrade on
it, and move it back into the cluster once you are confident that
the upgrade worked)
Why did mysql allow it?
mysql didn't allow or not allow anything. Sometimes software is
upgraded in ways that require other software to be rebuilt (an ABI-
incompatible change). In this case, the library version number is
increased, and other software must be rebuilt against the new
library. MacPorts has no mechanism to automatically rebuild software
that needs it, so you must do so manually. It is a Google Summer of
Code project this year to add to MacPorts the mechanism to do this
automatically if needed.
In your specific case, postfix was built to use libmysqlclient.
16.dylib but that version of that library is no longer on your
system. Did you perhaps switch from using the mysql5-devel port
(which provides MySQL 5.1.x and libmysqlclient.16.dylib) to using the
mysql5 port (which provides MySQL 5.0.x and libmysqlclient.15.dylib)?
If you switch between MySQL 5.0.x and 5.1.x you must rebuild any
ports that depend on MySQL, because of the differing library version
numbers.
_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users