Version 63 (modified by ryandesign (Ryan Carsten Schmidt), 14 years ago) (diff) |
---|
Problem Hotlist
A port build fails on Snow Leopard with: "file is not of required architecture"
If you had MacPorts installed before upgrading to Snow Leopard, see Migration.
man port fails with error message
Error message:
$ man port Cannot open the message catalog "man" for locale "de_DE.UTF-8" (NLSPATH="<none>") No manual entry for port
Workaround:
Add the following line to your .profile or .bash_profile.
unset MANPATH
Ticket: #13444
port fails with: Image error: /opt/local/bin/a2p…
Error message:
Error: Activating perl5 5.8.8_0 failed: Image error: /opt/local/bin/a2p is being used by the active perl5.8 port. Please deactivate this port first, or use the -f flag to force the activation.
The perl ports recently changed the paths for builtin modules, which can potentially cause issues resulting in this error message.
Workaround:
The current method to get around this issue is to run
port -f uninstall perl5
then run your initial install command.
Fetch failures
If fetch failed for a port, you can still get the distfile from anywhere else. For example, the main MacPorts distfiles mirror contains most ports' distfiles, or maybe the homepage of the software lists alternative download locations for source tarballs. Just download the distfile and save it to ${prefix}/var/macports/distfiles/<portname>/
. Make sure you get a file with exactly the same name (watch out for .tar.gz
and .tar.bz2
!) If a port clean --all
has been done the distfile directory will have been removed. The directory for each port is created at the beginning of the fetch phase.
Note: Checksum failures after a fetch are typically a separate issue. See the FAQ.
Image error: /opt/local/bin/xmlwf already exists and does not belong to a registered port
When installing a port with MacPorts, you encounter this error:
Error: Target org.macports.activate returned: Image error: /opt/local/bin/xmlwf already exists and does not belong to a registered port. Unable to activate port expat.
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 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 MacPorts uninstallation instructions. This will also remove the 3rd-party software package that installed itself unannounced into MacPorts' prefix. Then you can install MacPorts again.
A port failed to build, upgrade, or run with a message referring to libintl.3.dylib
Error message:
dyld: Library not loaded: /opt/local/lib/libintl.3.dylib
Explanation:
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 libintl library. This may be quite a few ports.
Workaround:
Here is a script that can tell you what ports you have installed that depend on gettext.
#!/bin/bash if test -z "$1"; then echo "usage: $0 <libname>" exit 1 fi for file in `find /opt/local/lib -name *.dylib; find /opt/local/bin`; do # Skip this match if it's a symbolic link if test -f $file -a ! -L $file; then # Look for references to the missing library otool -L $file | grep --silent $1 if test "$?" = "0"; then port provides `echo $file` fi fi # Grab the name of the port and make sure to list each port just once done | awk -F: ' { print $2 } ' | sort -u
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:
bash ~/Desktop/depsearch.sh libintl
Now you’ve got a list of ports you need to fix. Force uninstall each of these ports and remove their archives.
port uninstall -f <port> port clean --archive <port>
Once that’s done, force an install of each one.
port install -f <port>
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.
port -duf uninstall
A port failed to build with a message referring to 1/lib: No such file or directory
Error message:
apple-darwin9-gcc-4.0.1: 1/lib: No such file or directory make: *** Error 1
Explanation:
When upgrading from Tiger to Leopard without removing the previous Mac OS version, updated versions of some libraries in /usr/
and /usr/lib/
are moved from /old/path/
to /old/path 1/
. Notice the space before 1
. This makes some configure
scripts build bad build instructions, making the build phases of several ports fail.
Two incriminated directories have been encountered :
/usr/X11R6 1/ /usr/lib/ruby 1/
Workaround:
In order to fix this problem, you can remove the backups created by the installers, and then clean the work directory of the failed port so that its configure script will be re-run:
port clean --work <port>
Corrupt Filemap
Error message:
Error: unknown node kind in database (database is corrupted?)
Workaround:
Probably something went wrong while a port was being (un)installed or (de)activated, such as a kernel panic or the machine losing power. You can fix the database file (/opt/local/var/macports/receipts/file_map.db
) by downloading the following script:
http://svn.macports.org/repository/macports/contrib/repairfilemap/repairfilemap.tcl
Follow the instructions in the comments at the beginning of the script. You can invoke the script by typing:
chmod +x repairfilemap.tcl sudo ./repairfilemap.tcl