Install git-core +svn fails with MacPort
I tried s开发者_运维技巧everal tricks, clean all, and no luck. Any tips?
sudo port install git-core +svn +doc
---> Computing dependencies for git-core
---> Building db46
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/work/db-4.6.21/build_unix" && /usr/bin/make -j2 all " returned error 2
Command output: /bin/sh ./libtool --mode=compile /usr/bin/gcc-4.2 -c -O2 -arch x86_64 -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers ../dist/../db_dump185/db_dump185.c
/bin/sh ./libtool --mode=compile /usr/bin/gcc-4.2 -c -I. -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O2 -arch x86_64 ../dist/../common/util_sig.c
/usr/bin/gcc-4.2 -c -O2 -arch x86_64 -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers ../dist/../db_dump185/db_dump185.c -fno-common -DPIC -o .libs/db_dump185.o
/usr/bin/gcc-4.2 -c -I. -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O2 -arch x86_64 ../dist/../common/util_sig.c -fno-common -DPIC -o .libs/util_sig.o
../dist/../db_dump185/db_dump185.c: In function 'main':
../dist/../db_dump185/db_dump185.c:211: warning: assignment makes pointer from integer without a cast
../dist/../db_dump185/db_dump185.c:213: warning: assignment makes pointer from integer without a cast
../dist/../db_dump185/db_dump185.c:228: error: 'DB' has no member named 'seq'
../dist/../db_dump185/db_dump185.c:228: error: 'R_NEXT' undeclared (first use in this function)
../dist/../db_dump185/db_dump185.c:228: error: (Each undeclared identifier is reported only once
../dist/../db_dump185/db_dump185.c:228: error: for each function it appears in.)
../dist/../db_dump185/db_dump185.c:233: error: 'DB' has no member named 'seq'
../dist/../db_dump185/db_dump185.c: In function 'db_hash':
../dist/../db_dump185/db_dump185.c:261: error: 'DB' has no member named 'internal'
../dist/../db_dump185/db_dump185.c:263: error: 'DB' has no member named 'internal'
../dist/../db_dump185/db_dump185.c: In function 'db_btree':
../dist/../db_dump185/db_dump185.c:288: error: 'DB' has no member named 'internal'
make: *** [db_dump185.lo] Error 1
make: *** Waiting for unfinished jobs....
/usr/bin/gcc-4.2 -c -I. -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O2 -arch x86_64 ../dist/../common/util_sig.c -o util_sig.o >/dev/null 2>&1
Error: The following dependencies failed to build: p5-svn-simple subversion-perlbindings apr-util db46 cyrus-sasl2 gettext neon serf subversion p5-term-readkey rsync popt
Error: Status 1 encountered during processing.
It has been suggested (e.g. here and here) that moving aside /usr/local and then doing port clean db46 and then installing will fix things.
This didn't work for me. However, this did:
sudo mv /usr/local /usr/local.hold
# using -f to ignore dependencies, since we're about to re-install it
sudo port -f uninstall db46
sudo port clean db46
# See note below, you may actually want to install something different
# (like your git-core install)
sudo port install db46
sudo mv /usr/local.hold /usr/local
I don't actually know if the /usr/local steps were relevant in my case -- I suspect not, as I don't have db46 installed there. I think it was just that a previous version of db46 was causing problems.
This strikes me as being a bug in db46 and/or its port definition or configure script or something, which causes it to reference a header file that's installed on the system somewhere instead of a version of the same header file from the build tree. I haven't dug into it to find out, though.
Also note: I was actually building this for another port, and it wanted the +universal variant (not sure why, but whatever) -- so my port install step above was kinda useless, because when I did a port install on the other package I wanted, it re-did it with +universal, and had the same problem again! Sigh. Still, doing a sudo port -f uninstall db46
and sudo port clean db46
again and then doing my main install made everything work.
Did you upgrade to SNOW LEOPARD (or any other Mac OS X version) recently?
Follow this guide and your problems will go away.
精彩评论