Não é possível atualizar o Macports (com o Mac OS X Mavericks)

149

Depois de atualizar o Mac OS X para a versão mais recente do Mavericks, tentei atualizar meus Macports automaticamente, mas falhou:

$ sudo port -v selfupdate
--->  Updating MacPorts base sources using rsync
receiving file list ... done

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

sent 36 bytes  received 76 bytes  74.67 bytes/sec
total size is 512  speedup is 4.57
MacPorts base version 2.2.0 installed,
MacPorts base version 2.2.1 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  70.67 bytes/sec
total size is 57702400  speedup is 544362.26
receiving file list ... done

sent 36 bytes  received 77 bytes  75.33 bytes/sec
total size is 512  speedup is 4.53
receiving file list ... rsync: change_dir "tarballs/PortIndex_darwin_13_i386" (in release) failed: No such file or directory (2)
done

sent 4 bytes  received 9 bytes  26.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(1400) [receiver=2.6.9]
Command failed: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/tarballs/PortIndex_darwin_13_i386/PortIndex /opt/local/var/macports/sources/rsync.macports.org/release/tarballs
Exit code: 23
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

checking build system type... x86_64-apple-darwin13.0.0
checking host system type... x86_64-apple-darwin13.0.0
checking target system type... x86_64-apple-darwin13.0.0
checking MacPorts version... 2.2.1
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.9
checking Xcode location... /Applications/Xcode.app/Contents/Developer
checking Xcode version... 5.0.1
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...
<snip>
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... configure: error: Can't find Tcl configuration definitions
Command failed: cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/base && CC=/usr/bin/cc OBJC=/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 SELFUPDATING=1 && make install SELFUPDATING=1
Exit code: 1
Error: Error installing new MacPorts base: command execution failed
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: command execution failed
$

Se eu apenas tentar atualizar uma porta específica, ela também falhará:

$ sudo port upgrade emacsapp
Password:
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
Error: emacsapp is not installed
$ sudo port search emacs
Password:
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
$ sudo port upgrade emacs-app
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
--->  Fetching archive for gperf
--->  Attempting to fetch gperf-3.0.4_2.darwin_13.x86_64.tbz2 from http://packages.macports.org/gperf
--->  Attempting to fetch gperf-3.0.4_2.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/gperf
--->  Attempting to fetch gperf-3.0.4_2.darwin_13.x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/gperf
--->  Fetching distfiles for gperf
--->  Attempting to fetch gperf-3.0.4.tar.gz from http://ykf.ca.distfiles.macports.org/MacPorts/mpdistfiles/gperf
--->  Verifying checksums for gperf
--->  Extracting gperf
Error: org.macports.extract for port gperf returned: command execution failed
Please see the log file for port gperf for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_gperf/gperf/main.log
Error: Problem while installing gperf
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
$

Qualquer ideia

  • se isso é causado por incompatibilidade entre o OS X Mavericks e o Macports?
  • como corrigi-lo?

Editar:

Tentei um computador diferente atualizando-o de 10.8.5 para 10.9 e, em seguida, tente fazer a atualização automática para macports, ele não funcionou novamente, mas deu um erro diferente:

$ sudo port -v selfupdate
--->  Updating MacPorts base sources using rsync
receiving file list ... done
base.tar

sent 13396 bytes  received 10355 bytes  15834.00 bytes/sec
total size is 4925440  speedup is 207.38
receiving file list ... done
base.tar.rmd160

sent 64 bytes  received 635 bytes  1398.00 bytes/sec
total size is 512  speedup is 0.73
MacPorts base version 2.2.1 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
Synchronizing local ports tree from file:///opt/local/var/macports/sources/svn.macports.org/trunk/dports/
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/opt/local/var/macports/sources/svn.macports.org/trunk/dports' is too old (format 10, created by Subversion 1.6)
Command failed: /usr/bin/svn update --non-interactive /opt/local/var/macports/sources/svn.macports.org/trunk/dports
Exit code: 1
Error: Synchronization of the local ports tree failed doing an svn update
Error: Couldn't sync the ports tree: Synchronization of 1 source(s) failed
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: /opt/local/bin/port: port selfupdate failed: Couldn't sync the ports tree: Synchronization of 1 source(s) failed
qazwsx
fonte
ótimo conselho - funcionou para mim
lynxoid

Respostas:

282

Instale o "Command Line Tools" primeiro:

sudo xcode-select --install

(Às vezes, é necessário concordar explicitamente com a licença via "sudo xcodebuild -license")

Em seguida, atualize as portas:

sudo port -v selfupdate
imxylz
fonte
36
Também pode ser interessante notar que você provavelmente deve concordar com os termos e condições fazendo: sudo xcodebuild -license. Execute as etapas e digite 'concordo' e pressione enter.
Astromax #
5
Se você não fizer isso, ao executar a atualização automática, algumas portas falharão.
Astromax #
8
Para mim, pelo menos, o contrato de licença é exibido sem a necessidade de solicitá-lo.
PaulSkinner #
Isso praticamente acertou em cheio. Obrigado!!
Edson Medina #
2
Em 26 de abril de 2014. Esses comandos não funcionam mais. Talvez você deva baixar "Command Line Tools para OS X Mavericks" em developer.apple.com/downloads/index.action# e instalá-lo.
precisa saber é o seguinte
37

Eu respondi uma pergunta semelhante. A localização da estrutura Tcl mudou, quebrando a infraestrutura MacPorts existente. O instalador 2.2.1 para Mavericks já se tornou disponível aqui . Faça uma lista de suas portas instaladas e considere a exclusão /opt/localantes da instalação. Você provavelmente precisará 'atualizar' tudo de qualquer maneira.

Brett Hale
fonte
6
Instalou o 2.2.1 e tudo começou a funcionar novamente. Não precisava remover nada. Obrigado pelo ponteiro.
Alex Polkhovsky
O mesmo aqui. Essa é a resposta correta. Sim, muitas pessoas não instalam as ferramentas de linha de comando, mas esse obviamente não é o problema aqui, como mostra o primeiro rastreamento fornecido.
PatchyFog
Isso está realmente correto, por sorte encontrei essa resposta logo após outras enganosas em outros lugares. Obrigado.
Hard-Boiled Wonderland
O macosx não vem com o tcl pré-instalado, não é?
Maysam Torabi
3

Pode haver uma chance de você não ter concordado com a licença do XCode. Se o xcode-install não ajudar, você pode executar o seguinte comando para concordar com a licença do Xcode. sudo xcodebuild -license

jishin
fonte
2

Eu tive o mesmo problema. Estou assumindo que você tinha utilitários de linha de comando do Xcode instalados anteriormente. Basta iniciar o XCODE e deixar concluir a configuração. Agora execute novamente o comando port e ele deve funcionar corretamente.

aduteese
fonte
1

Eu recebi um erro com a atualização automática e o resolvi fazendo uma nova instalação do MacPorts em http://www.macports.org/install.php . Agora eu posso executar o comando selfupdate sem erros e instalar outras portas.

O erro que eu estava vendo estava abaixo, parece o mesmo problema que Yo Sophia apontou:

$ sudo port selfupdate
Password:
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.3 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl

Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: command execution failed
hailong
fonte
0

Eu queria principalmente comentar a resposta de @ Brett acima (desculpe, SO n00b ainda, não permitido) e compartilhar minha experiência em atualização ... não é realmente uma resposta nova, mas espero que algumas informações úteis.

Eu baixei e instalei o instalador do Mavericks MacPorts como descrito acima, (mas sem remover / opt, conforme sugerido por @King Julian, o self updateque foi bom e, em seguida upgrade outdated, parece que ele está desinstalando e reinstalando todas as minhas portas com uma mensagem:

Warning: Deactivate forced.  Proceeding despite dependencies.

em cada um. Felizmente eu fiz uma cópia dos diretórios etc e apache2 / conf , para que eu possa recuperar minha configuração quando ela terminar ... depois de 30 minutos ou mais, gerou um erro

Unable to open port: extra characters after close-quote

Então eu fiz self updatenovamente eupgrade outdated parece correr novamente ...

Parece que isso pode ser feito (o LAMP está funcionando de qualquer maneira) - pode ter sido mais rápido começar do zero, mas verifique se você tem pelo menos algumas horas de folga para isso (e esteja conectado à rede elétrica;)

Desculpas se muita informação, mas espero que ajude!

jonnybradley
fonte
0

O problema parece estar com os Macports e a localização da estrutura Tcl e seu caminho após a instalação do Xcode. Sugiro instalar uma versão nova do Macports for Mavericks aqui: http://www.macports.org/install.php .

Yo Sophia
fonte
0

Eu tinha esse problema no Mountain Lion e, na verdade, tinha a ver com o MacPorts olhando para um caminho antigo do XCode (eu tinha várias versões, incluindo betas instaladas). Corri com a opção -d e verifiquei o arquivo config.log em /opt/local/var/macports/sources/rsync.macports.org/release/base e ele relatou alguns erros: -

--- snip ---
...
configure:3331: checking for C compiler version
configure:3340: gcc --version >&5
Configured with: --prefix=/Applications/Xcode5-DP3.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
xcrun: Error: could not stat active Xcode path '/Applications/Xcode5-DP3.app/Contents/Developer'. (No such file or directory)
configure:3351: $? = 0
configure:3340: gcc -v >&5
Configured with: --prefix=/Applications/Xcode5-DP3.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
xcrun: Error: could not stat active Xcode path '/Applications/Xcode5-DP3.app/Contents/Developer'. (No such file or directory)
...
--- snip ---

Então, eu dei o caminho correto usando: -

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

e isso consertou.

Eu recebi minhas dicas nesta página útil .

Escalão
fonte