MacPorts selfupdate falha no Mac OS X Lion

7

Recentemente, atualizei meu Mac Book Pro para o Lion e enfrentei desafios com o aplicativo MacPorts que tinha comigo. Eu tinha baixado e instalado o XCode 4.2 da loja de aplicativos (muito un-appstore como instalação BTW - você clica em instalar na loja de aplicativos, mas só baixou o aplicativo. Você precisa instalá-lo separadamente) antes de eu fazer a auto-atualização, mas não parecem importar. O aplicativo falha com os seguintes erros (seções relevantes abaixo) -

/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:252: warning: ISO C90 does not support ‘long long’

/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:253: warning: ISO C90 does not support ‘long long’

/usr/bin/cc -c -DUSE_TCL_STUBS -DTCL_NO_DEPRECATED -g -O2 -W -Wall -pedantic  -I/Library/Frameworks/Mono.framework/Versions/2.10.6/include   -DHAVE_CONFIG_H -I.. -I.  -I"/usr/include" -fno-common util.c -o util.o
In file included from util.h:36,
                 from util.c:37:

/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:252: warning: ISO C90 does not support ‘long long’

/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:253: warning: ISO C90 does not support ‘long long’

.
.
.

/usr/bin/cc -dynamiclib -g -O2 -W -Wall -pedantic  -I/Library/Frameworks/Mono.framework/Versions/2.10.6/include    -Wl,-single_module registry.o util.o entry.o entryobj.o ../cregistry/cregistry.a -o registry.dylib -L/System/Library/Frameworks/Tcl.framework/Versions/8.5 -ltclstub8.5   -L/Library/Frameworks/Mono.framework/Versions/2.10.6/lib -lsqlite3  
ld: warning: ignoring file 

/Library/Frameworks/Mono.framework/Versions/2.10.6/lib/libsqlite3.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:

  "_sqlite3_errmsg", referenced from:
      _set_sqlite_result in util.o
      _reg_sqlite_error in cregistry.a(registry.o)
      _reg_detach in cregistry.a(registry.o)
      _reg_close in cregistry.a(registry.o)
      _reg_attach in cregistry.a(registry.o)
      _reg_open in cregistry.a(registry.o)

.
.
.
.

"_sqlite3_create_collation", referenced from:
      _init_db in cregistry.a(sql.o)

ld: symbol(s) not found for architecture x86_64

collect2: ld returned 1 exit status

make[2]: *** [registry.dylib] Error 1

make[1]: *** [all] Error 1

make: *** [all] Error 1

shell command "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" returned error 2

Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: shell command failed (see log for details)

Até onde eu sei, eu não deveria estar tendo problemas, mas parece que não tenho outra opção a não ser reinstalar o MacPorts e todos os aplicativos nele.

    
por Nikhil 17.10.2011 / 17:08

1 resposta

6

Encontrei a resposta quando pesquisava no Google usando as mensagens de erro como consultas de pesquisa.

Basicamente, o problema é que eu também tinha instalado o framework Mono e, por alguma razão estranha, o MacPorts estava usando a versão do SQL Lite incluída no Mono Framework durante as etapas de criação e instalação. Esta versão do SQL Lite não é compatível com o aplicativo MacPorts e, como resultado, a instalação falhou.

A solução alternativa é mover temporariamente o /Library/Frameworks/Mono.framework/ para outro local e, em seguida, executar o comando selfupdate. Depois que a atualização automática for concluída, mova a pasta de volta para /Library/Frameworks/Mono.framework /.

Eu recebi a solução de Mark, que gentilmente blogou sobre isso aqui - link

    
por 17.10.2011 / 17:17