Changes between Version 63 and Version 64 of ProblemHotlist
- Timestamp:
- Feb 23, 2011, 9:25:45 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ProblemHotlist
v63 v64 53 53 xmlwf is a part of the expat port (which is a dependency of many other ports, and thus is likely to be one of the first ports to ever get installed), but for some reason this file already exists on your computer, and MacPorts did not install it. The reason is that you have installed a 3rd-party software package -- possibly [http://www.swi-prolog.org/ swi-prolog] -- which was itself built with MacPorts, set to its default prefix, and therefore conflicts with your normal use of MacPorts in its default prefix. The developers of the 3rd-party package you installed should not have distributed their software in this manner; they should have configured MacPorts in a custom prefix instead, one that is unique to their software. (For example, in the case of swi-prolog, /usr/local/swi-prolog or /opt/swi-prolog would be good choices.) The cleanest solution for you at this point is to follow the [http://guide.macports.org/chunked/installing.macports.uninstalling.html MacPorts uninstallation instructions]. This will also remove the 3rd-party software package that installed itself unannounced into MacPorts' prefix. Then you can [http://guide.macports.org/chunked/installing.macports.html install MacPorts] again. 54 54 55 == A port failed to build, upgrade, or run with a message referring to libintl.3.dylib == #libintl55 == A command failed to run with a message referring to libpng12.0.dylib == #libpng 56 56 57 57 '''Error message:'''[[BR]] 58 58 {{{ 59 dyld: Library not loaded: /opt/local/lib/lib intl.3.dylib59 dyld: Library not loaded: /opt/local/lib/libpng12.0.dylib 60 60 }}} 61 61 62 62 '''Explanation:'''[[BR]] 63 When the gettext port was updated from 0.14.x to 0.15.x, the libintl library version changed from 3 to 8. Software always links against a specific library version, so the ports you currently have installed that depend on gettext are linked to the now-nonexistent version 3 libintl library. To fix this problem, all ports that depend on gettext will need to be rebuilt so that they link with the new version 8 libintllibrary. This may be quite a few ports.63 When the libpng port was updated from 1.2.x to 1.4.x, the libpng library version changed. Software always links against a specific library version, so the ports you currently have installed that depend on libpng are linked against a now-nonexistent version of the libpng library. To fix this problem, all ports that depend on libpng will need to be rebuilt so that they link with the new version of the libpng library. This may be quite a few ports. 64 64 65 65 '''Workaround:'''[[BR]] 66 Here is a script that can tell you what ports you have installed that depend on gettext.66 We have tried to find all affected ports and incremented the revision number. In most cases a simple upgrade should get them all fixed. 67 67 68 68 {{{ 69 #!/bin/bash 70 if test -z "$1"; then 71 echo "usage: $0 <libname>" 72 exit 1 73 fi 74 for file in `find /opt/local/lib -name *.dylib; find /opt/local/bin`; do 75 # Skip this match if it's a symbolic link 76 if test -f $file -a ! -L $file; then 77 # Look for references to the missing library 78 otool -L $file | grep --silent $1 79 if test "$?" = "0"; then 80 port provides `echo $file` 81 fi 82 fi 83 # Grab the name of the port and make sure to list each port just once 84 done | awk -F: ' { print $2 } ' | sort -u 69 sudo port selfupdate 70 sudo port upgrade outdated 85 71 }}} 86 72 87 Copy this script, paste it into a text editor, and save it, e.g. as depsearch.sh. Then run it in the Terminal, passing it the name of the library you want it to search for. In this case, to search for ports that depend on gettext, tell it to look for the library "libintl". E.g. if you saved the script to your Desktop, run it this way:73 If this does not help, force a rebuild of the port in question by using the following command: 88 74 89 75 {{{ 90 bash ~/Desktop/depsearch.sh libintl 76 sudo port -n upgrade --force $portname 91 77 }}} 92 78 93 Now you’ve got a list of ports you need to fix. Force uninstall each of these ports and remove their archives. 94 {{{ 95 port uninstall -f <port> 96 port clean --archive <port> 97 }}} 98 99 Once that’s done, force an install of each one. 100 {{{ 101 port install -f <port> 102 }}} 103 If you’ve got old nonactivated versions of the port installed, you'll need to remove the old versions first. You may remove all old versions this way. 104 {{{ 105 port -duf uninstall 106 }}} 79 You should also [http://guide.macports.org/#project.tickets file a ticket] against the port in question. 107 80 108 81 == A port failed to build with a message referring to 1/lib: No such file or directory == #lib-spaces