Не удается обновить Macports (с Mac OS X Mavericks)

После обновления Mac OS X до последней версии Mavericks я попытался самостоятельно обновить свои Macports, но это не удалось:

$ 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
$

Если я просто попытаюсь обновить конкретный порт, это тоже не удастся:

$ 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
$

Любая идея

  • если это вызвано несовместимостью между OS X Mavericks и Macports?
  • как это исправить?

Редактировать:

Я попробовал обновить его с 10.8.5 до 10.9 на другом компьютере, а затем попытался выполнить самообновление для macports, он снова не работал, но выдал другую ошибку:

$ 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

person qazwsx    schedule 27.10.2013    source источник
comment
trac.macports.org/wiki/Migration   -  person Ned Deily    schedule 27.10.2013
comment
отличный совет - работал у меня   -  person lynxoid    schedule 28.10.2013


Ответы (9)


Сначала установите «Инструменты командной строки»:

sudo xcode-select --install

(Иногда требуется явное согласие с лицензией через "sudo xcodebuild -license")

Затем обновите порты:

sudo port -v selfupdate
person imxylz    schedule 28.10.2013
comment
Также стоит отметить, что вам, вероятно, следует согласиться с условиями, выполнив: sudo xcodebuild -license. Выполните шаги, введите «согласен» и нажмите «Ввод». - person astromax; 30.10.2013
comment
Если вы этого не сделаете, при запуске самообновления некоторые порты выйдут из строя. - person astromax; 30.10.2013
comment
По крайней мере, для меня лицензионное соглашение появляется без запроса. - person PaulSkinner; 01.11.2013
comment
Это в значительной степени прибивает. Спасибо!! - person Edson Medina; 07.11.2013
comment
xcode-select: note: install requested for command line developer tools ... все, он должен делать больше, чем это? самообновление порта по-прежнему не удается ... - person Michael; 18.11.2013
comment
хорошо, так что, по-видимому, команда xcode-select запускает процесс графического интерфейса ... поскольку я был подключен через ssh, я ничего не видел. - person Michael; 18.11.2013
comment
убедитесь, что вы выполнили команду sudo xocdebuild -license, прокрутите до конца с пробелом и введите согласие. - person EvilPenguin; 10.01.2014
comment
По состоянию на 26 апреля 2014 г. Эти команды больше не работают. Возможно, стоит загрузить инструменты командной строки для OS X Mavericks с developer.apple.com/downloads/index .action # и установите его. - person qazwsx; 26.04.2014

Я ответил на аналогичный вопрос. Местоположение фреймворка Tcl изменилось, нарушив существующую инфраструктуру MacPorts. Установщик 2.2.1 для Mavericks с тех пор стал доступен здесь. Составьте список установленных портов и подумайте об удалении /opt/local перед установкой. Скорее всего, вам все равно придется все «обновить».

person Brett Hale    schedule 28.10.2013
comment
Установил 2.2.1, и все снова заработало. Удалять ничего не пришлось. Спасибо за указатель. - person Alex Polkhovsky; 29.10.2013
comment
То же самое. Это правильный ответ. Да, многие люди не устанавливают инструменты командной строки, но, очевидно, проблема не в этом, как показывает первая предоставленная трассировка. - person PatchyFog; 19.11.2013
comment
Это действительно правильно, повезло, что я нашел этот ответ вскоре после других вводящих в заблуждение ответов. Спасибо. - person Hard-Boiled Wonderland; 07.12.2013
comment
macosx не поставляется с предустановленным tcl, не так ли? - person Maysam Torabi; 24.02.2014

Возможно, вы не согласились с лицензией XCode. Если xcode-install не помогает, вы можете запустить следующую команду, чтобы согласиться с лицензией Xcode. sudo xcodebuild -license

person jishin    schedule 28.06.2014

есть настоящая ошибка с

gperf @ 3.0.4: ошибка: объявитель ожидаемого параметра

к счастью, у этой проблемы есть собственный билет на MacPorts ticket 40918

если что, вы можете прочитать обо всех проблемах в Mavericks по адресу http://trac.macports.org/wiki/MavericksProblems < / а>

person juanho    schedule 28.10.2013

Я была такая же проблема. Я предполагаю, что у вас ранее были установлены утилиты командной строки Xcode. Просто запустите XCODE и дайте ему завершить настройку. Теперь перезапустите команду порта, и она должна работать правильно.

person aduteese    schedule 16.11.2013

У меня возникла ошибка при самообновлении, и я решил ее, выполнив новую установку MacPorts с http://www.macports.org/install.php. Теперь я могу без ошибок запустить команду selfupdate и установить другие порты.

Ошибка, которую я видел, была ниже, похоже, та же проблема, что указала Йо София:

$ 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
person hailong    schedule 26.02.2014

В основном я хотел прокомментировать ответ @Brett выше (извините, SO n00b все еще не разрешен) и поделиться своим опытом обновления ... не совсем новый ответ, но, надеюсь, некоторая полезная информация.

Я загрузил и установил установщик Mavericks MacPorts, как описано выше (но без удаления / opt, как было предложено @King Julian, сделал self update, что было хорошо, а затем upgrade outdated, и, похоже, он удаляет и переустанавливает все мои порты с сообщением:

Warning: Deactivate forced.  Proceeding despite dependencies.

на каждом. К счастью, я сделал копию директорий etc и apache2 / conf, так что я смогу вернуть свою конфигурацию, когда она в конечном итоге закончится ... через 30 минут или около того выкинул ошибку

Unable to open port: extra characters after close-quote

Так что я снова сделал self update, и похоже, что upgrade outdated снова работает ...

Так что, похоже, это можно сделать (ЛАМПА все равно работает) - возможно, было бы быстрее начать заново с нуля, но убедитесь, что у вас есть хотя бы пара свободных часов для этого (и быть подключенным к электросети;)

Приносим извинения, если слишком много информации, но надеюсь, что это поможет!

person jonnybradley    schedule 02.11.2013

Проблема, похоже, связана с Macports и расположением фреймворка Tcl и его путем после установки Xcode. Я предлагаю установить свежую версию Macports для Mavericks здесь: http://www.macports.org/install.php.

person Yo Sophia    schedule 02.12.2013

У меня была эта проблема с Mountain Lion, и на самом деле это было связано с тем, что MacPorts смотрели на старый путь XCode (у меня было несколько версий, включая бета-версии). Я запустил с параметром -d и проверил файл config.log по адресу /opt/local/var/macports/sources/rsync.macports.org/release/base и сообщил о некоторых ошибках: -

--- 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 ---

Итак, я указал правильный путь, используя: -

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

и это исправило это.

Я получил подсказки на этой полезной странице.

person Echelon    schedule 11.12.2013