0

我尝试运行 sudo port selfupdate,但没有成功。我重新安装了port、xcode等。它仍然不起作用。只有端口升级过时才能正常工作。我认为它与tcl有关,但我不知道如何解决这个问题。

我使用 OSX 10.8.4、Xcode 4.6.3。

这是 sudo port -d -v selfupdate 的输出

--->  Updating MacPorts base sources using rsync
receiving file list ... done

sent 36 bytes  received 69 bytes  70.00 bytes/sec
total size is 4925440  speedup is 46908.95
receiving file list ... done

sent 36 bytes  received 76 bytes  44.80 bytes/sec
total size is 512  speedup is 4.57
MacPorts base version 2.1.3 installed,
MacPorts base version 2.2.0 downloaded.
--->  Updating the ports tree
Synchronizing local ports tree from rsync://rsync.macports.org/release/tarballs/ports.tar
receiving file list ... done

sent 36 bytes  received 70 bytes  42.40 bytes/sec
total size is 53770240  speedup is 507266.42
receiving file list ... done

sent 36 bytes  received 77 bytes  45.20 bytes/sec
total size is 512  speedup is 4.53
receiving file list ... done

sent 36 bytes  received 70 bytes  42.40 bytes/sec
total size is 9837455  speedup is 92806.18
receiving file list ... done

sent 36 bytes  received 77 bytes  75.33 bytes/sec
total size is 512  speedup is 4.53
--->  MacPorts base is outdated, installing new version 2.2.0
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

checking build system type... x86_64-apple-darwin12.4.0
checking host system type... x86_64-apple-darwin12.4.0
checking target system type... x86_64-apple-darwin12.4.0
checking MacPorts version... 2.2.0
checking for sw_vers... /usr/bin/sw_vers
checking for defaults... /usr/bin/defaults
checking for xcode-select... /usr/bin/xcode-select
checking Mac OS X version... 10.8.4
checking Xcode location... /Applications/Xcode.app/Contents/Developer
checking Xcode version... 4.6.3
checking for gcc... /usr/bin/cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/cc accepts -g... yes
checking for /usr/bin/cc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether we are using the GNU Objective C compiler... yes
checking whether gcc accepts -g... yes
checking for bsdmake... no
checking for pmake... no
checking for bzip2... /usr/bin/bzip2
checking for bzr... no
checking for chown... /usr/sbin/chown
checking for cp... /bin/cp
checking for cpio... /usr/bin/cpio
checking for cvs... /usr/bin/cvs
checking for diff... /usr/bin/diff
checking for dscl... /usr/bin/dscl
checking for dseditgroup... /usr/sbin/dseditgroup
checking for file... /usr/bin/file
checking for find... /usr/bin/find
checking for git... /usr/bin/git
checking for gnumake... /usr/bin/gnumake
checking for gnupatch... no
checking for gpatch... no
checking for gnutar... /usr/bin/gnutar
checking for gzip... /usr/bin/gzip
checking for hdiutil... /usr/bin/hdiutil
checking for hg... no
checking for launchctl... /bin/launchctl
checking for lipo... /usr/bin/lipo
checking for lsbom... /usr/bin/lsbom
checking for lzma... no
checking for make... /usr/bin/make
checking for mdfind... /usr/bin/mdfind
checking for mdls... /usr/bin/mdls
checking for mkbom... /usr/bin/mkbom
checking for mtree... /usr/sbin/mtree
checking for open... /usr/bin/open
checking for openssl... /usr/bin/openssl
checking for patch... /usr/bin/patch
checking for pax... /bin/pax
checking for rmdir... /bin/rmdir
checking for rsync... /usr/bin/rsync
checking for sandbox-exec... /usr/bin/sandbox-exec
checking for sed... /usr/bin/sed
checking for svn... /usr/bin/svn
checking for swig... /usr/local/bin/swig
checking for tar... /usr/bin/tar
checking for unzip... /usr/bin/unzip
checking for xar... /usr/bin/xar
checking for xcodebuild... /usr/bin/xcodebuild
checking for xcrun... /usr/bin/xcrun
checking for xz... no
checking for zip... /usr/bin/zip
checking for launchd... yes
checking for sed... (cached) /usr/bin/sed
checking which sed flag to use for extended regexp... -E (BSD)
checking for tar... (cached) /usr/bin/tar
checking whether tar supports -q... yes (bsdtar)
checking for tar... (cached) /usr/bin/tar
checking for gnutar... (cached) /usr/bin/gnutar
checking for which tar variant to use... /usr/bin/gnutar
checking for /usr/bin/gnutar --no-same-owner support... yes
checking for patch... (cached) /usr/bin/patch
checking for gpatch... no
checking for GNU (FSF) patch... /usr/bin/patch
checking how to mark unused variables... 
checking for gcc symbol visibility attribute... __attribute__((visibility("hidden")))
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... -D_THREAD_SAFE
checking how to run the Objective C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking objc/objc.h usability... yes
checking objc/objc.h presence... yes
checking for objc/objc.h... yes
checking if linking libobjc requires pthreads... no
checking for Apple Objective-C runtime... yes
checking for GNU Objective C runtime... no
configure: Using Apple Objective-C runtime
checking for Apple Foundation library... yes
configure: WARNING: GNUSTEP_SYSTEM_ROOT is not defined in your environment, preventing the use of GNUstep's Foundation library
configure: Using Apple Foundation library
checking for CoreFoundation framework... yes
checking for SystemConfiguration framework... yes
checking for IOKit framework... yes
checking for CFNotificationCenterGetDarwinNotifyCenter... yes
checking for whether we will build daemondo... yes
checking for ports tree... /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports
checking for MacPorts config directory... ${sysconfdir}/macports
checking for install user... root
checking for install group... admin
checking for macports user... macports
checking what permissions to use for installation directories... 0755
checking for Applications installation directory... /Applications/MacPorts
checking for Frameworks installation directory... /opt/local/Library/Frameworks
checking for Universal CPU architectures... x86_64 i386
checking how to run the C preprocessor... /usr/bin/cc -E
checking for ANSI C header files... (cached) yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for sys/wait.h that is POSIX.1 compatible... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking paths.h usability... yes
checking paths.h presence... yes
checking for paths.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking crt_externs.h usability... yes
checking crt_externs.h presence... yes
checking for crt_externs.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/fcntl.h usability... yes
checking sys/fcntl.h presence... yes
checking for sys/fcntl.h... yes
checking sys/cdefs.h usability... yes
checking sys/cdefs.h presence... yes
checking for sys/cdefs.h... yes
checking err.h usability... yes
checking err.h presence... yes
checking for err.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/sysctl.h usability... yes
checking sys/sysctl.h presence... yes
checking for sys/sysctl.h... yes
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking readline/history.h usability... yes
checking readline/history.h presence... yes
checking for readline/history.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking sys/paths.h usability... yes
checking sys/paths.h presence... yes
checking for sys/paths.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking for bzero... yes
checking for memset... yes
checking for fgetln... yes
checking for lockf... yes
checking for flock... yes
checking for setmode... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for strlcpy... yes
checking for copyfile... yes
checking for clearenv... no
checking for sysctlbyname... yes
checking if readlink conforms to POSIX 1003.1a... yes
checking CommonCrypto/CommonDigest.h usability... yes
checking CommonCrypto/CommonDigest.h presence... yes
checking for CommonCrypto/CommonDigest.h... yes
checking for readline in -lreadline... yes
checking whether rl_username_completion_function is declared... no
checking whether rl_filename_completion_function is declared... yes
checking whether rl_completion_matches is declared... yes
checking whether username_completion_function is declared... yes
checking whether filename_completion_function is declared... yes
checking whether completion_matches is declared... yes
checking for Tcl configuration... found /usr/lib/tclConfig.sh
checking for existence of /usr/lib/tclConfig.sh... loading
checking for Tcl public headers... /usr/include
checking for tclsh... /usr/bin/tclsh
checking for Tcl package directory... /Library/Tcl
checking whether tclsh was compiled with threads... yes
checking for curl-config... /usr/bin/curl-config
checking sqlite3.h usability... yes
checking sqlite3.h presence... yes
checking for sqlite3.h... yes
checking sqlite3ext.h usability... yes
checking sqlite3ext.h presence... yes
checking for sqlite3ext.h... yes
checking for Tcl sqlite3 location... /usr/lib/sqlite3
checking for SQLite >= 3003011... yes
checking for Tcl Thread package... no
patching file src/thread2.6/Makefile.in
patching file src/thread2.6/configure
patching file src/thread2.6/lib/ttrace.tcl
patching file src/thread2.6/generic/threadPoolCmd.c
Hunk #1 succeeded at 1693 (offset -17 lines).
checking how to build libraries... shared
checking that any existing MacPorts install can be upgraded... yes
configure: creating ./config.status
config.status: creating src/programs/daemondo/Makefile
config.status: creating Doxyfile
config.status: creating Makefile
config.status: creating Mk/macports.autoconf.mk
config.status: creating doc/base.mtree
config.status: creating doc/prefix.mtree
config.status: creating doc/macosx.mtree
config.status: creating doc/macports.conf
config.status: creating doc/pubkeys.conf
config.status: creating portmgr/freebsd/Makefile
config.status: creating src/Makefile
config.status: creating src/machista1.0/Makefile
config.status: creating src/macports1.0/macports_autoconf.tcl
config.status: creating src/port1.0/port_autoconf.tcl
config.status: creating src/registry2.0/registry_autoconf.tcl
config.status: creating src/programs/Makefile
config.status: creating src/macports1.0/macports_fastload.tcl
config.status: creating setupenv.bash
config.status: creating src/pkg_mkindex.sh
config.status: creating src/config.h
=== configuring in src/thread2.6 (/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/base/src/thread2.6)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/opt/local'  '--with-tclpackage=/Library/Tcl' '--with-install-user=root' '--with-install-group=admin' '--with-directory-mode=0755' '--enable-readline' 'CC=/usr/bin/cc' --cache-file=/dev/null --srcdir=.
checking for correct TEA configuration... ok (TEA 3.1)
checking for Tcl configuration... found /opt/local/lib/tclConfig.sh
checking for existence of /opt/local/lib/tclConfig.sh... loading
configure: --exec-prefix defaulting to TCL_EXEC_PREFIX /opt/local
checking for gcc... /usr/bin/cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/cc accepts -g... yes
checking for /usr/bin/cc option to accept ANSI C... none needed
checking how to run the C preprocessor... /usr/bin/cc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking if the compiler understands -pipe... yes
checking whether byte ordering is bigendian... no
checking for sin... yes
checking for main in -lieee... no
checking for main in -linet... no
checking net/errno.h usability... no
checking net/errno.h presence... no
checking for net/errno.h... no
checking for connect... yes
checking for gethostbyname... yes
checking dirent.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking values.h usability... no
checking values.h presence... no
checking for values.h... no
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for Tcl public headers... /opt/local/include
checking for pthread_mutex_init in -lpthread... yes
checking for pthread_attr_setstacksize... yes
checking for readdir_r... yes
checking for building with threads... yes
checking how to build libraries... shared
checking if 64bit support is enabled... no
checking if 64bit Sparc VIS support is requested... no
checking system version (for dynamic loading)... Darwin-12.4.0
checking for dlopen in -ldl... yes
checking for ar... ar
checking for required early compiler flags... none
checking for 64-bit integer type... using long
checking for build with symbols... no
checking for tclsh... /opt/local/lib/../bin/tclsh8.6
configure: creating ./config.status
config.status: creating Makefile
config.status: creating pkgIndex.tcl
===> making all in doc
gzip -c port.1 > port.1.gz
gzip -c macports.conf.5 > macports.conf.5.gz
gzip -c portfile.7 > portfile.7.gz
gzip -c portstyle.7 > portstyle.7.gz
gzip -c porthier.7 > porthier.7.gz
gzip -c portgroup.7 > portgroup.7.gz
===> making all in src
===> making all in src/thread2.6
/usr/bin/cc -pipe -DPACKAGE_NAME=\"thread\" -DPACKAGE_TARNAME=\"thread\" -DPACKAGE_VERSION=\"2.6\" -DPACKAGE_STRING=\"thread\ 2.6\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DNO_VALUES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 -DTCL_THREADS=1 -DTCL_WIDE_INT_IS_LONG=1 -DUSE_TCL_STUBS=1   -I"/opt/local/include"    -Os -Wall -Wno-implicit-int -fno-common -c `echo ./generic/threadCmd.c` -o threadCmd.o
./generic/threadCmd.c:3252:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
    if ((eventPtr->proc == TransferEventProc)) {
         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
./generic/threadCmd.c:3252:25: note: remove extraneous parentheses around the comparison to silence this warning
    if ((eventPtr->proc == TransferEventProc)) {
        ~               ^                   ~
./generic/threadCmd.c:3252:25: note: use '=' to turn this equality comparison into an assignment
    if ((eventPtr->proc == TransferEventProc)) {
                        ^~
                        =
1 warning generated.
/usr/bin/cc -pipe -DPACKAGE_NAME=\"thread\" -DPACKAGE_TARNAME=\"thread\" -DPACKAGE_VERSION=\"2.6\" -DPACKAGE_STRING=\"thread\ 2.6\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DNO_VALUES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 -DTCL_THREADS=1 -DTCL_WIDE_INT_IS_LONG=1 -DUSE_TCL_STUBS=1   -I"/opt/local/include"    -Os -Wall -Wno-implicit-int -fno-common -c `echo ./generic/threadSvCmd.c` -o threadSvCmd.o
./generic/threadSvCmd.c:2039:63: error: no member named 'errorLine' in 'struct Tcl_Interp'
        sprintf(msg, "\n    (\"eval\" body line %d)", interp->errorLine);
                                                      ~~~~~~  ^
/usr/include/secure/_stdio.h:49:56: note: expanded from macro 'sprintf'
  __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
                                                       ^
./generic/threadSvCmd.c:2140:25: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types]
    booleanObjTypePtr   = Tcl_GetObjType("boolean");
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
./generic/threadSvCmd.c:2141:25: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types]
    byteArrayObjTypePtr = Tcl_GetObjType("bytearray");
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
./generic/threadSvCmd.c:2142:25: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types]
    doubleObjTypePtr    = Tcl_GetObjType("double");
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~
./generic/threadSvCmd.c:2143:25: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types]
    intObjTypePtr       = Tcl_GetObjType("int");
                        ^ ~~~~~~~~~~~~~~~~~~~~~
./generic/threadSvCmd.c:2144:25: warning: assigning to 'Tcl_ObjType *' (aka 'struct Tcl_ObjType *') from 'const Tcl_ObjType *' (aka 'const struct Tcl_ObjType *') discards qualifiers [-Wincompatible-pointer-types]
    stringObjTypePtr    = Tcl_GetObjType("string");
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~
5 warnings and 1 error generated.
make[2]: *** [threadSvCmd.o] Error 1
make[1]: *** [all] Error 1
make: *** [all] Error 1
Command failed: cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/base && CC=/usr/bin/cc ./configure --prefix=/opt/local --with-tclpackage=/Library/Tcl --with-install-user=root --with-install-group=admin --with-directory-mode=0755 --enable-readline && make && make install SELFUPDATING=1
Exit code: 2
4

1 回答 1

0

Tcl 库的版本(特别是头文件,但即便如此)和代码试图构建的 Thread 扩展库(正式发生错误的地方)彼此不兼容。问题是 Thread 2.6 不能在没有更改的情况下使用晚于 Tcl 8.4 的版本:特别是,它需要将命令行选项-DUSE_INTERP_ERRORLINE传递给编译器(通常作为CFLAGSmake 变量的一部分)以导致现在 -已弃用的 API 将被公开。其他警告就是:警告。(一些损坏的旧编译器在正确处理方面存在问题const,因此仍有相当多的代码会出错。)

我不知道你为什么会遇到问题;MacPorts 在 10.8.4 上适用于我……</p>

于 2013-08-13T12:42:09.473 回答