Не могу обновить Macports (с Mac OS X Mavericks)


149

После обновления 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


большой совет - работал для меня
lynxoid

Ответы:


282

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

sudo xcode-select --install

(Иногда необходимо явно согласиться с лицензией через «sudo xcodebuild -license»)

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

sudo port -v selfupdate

36
Также стоит отметить, что вы, вероятно, должны согласиться с условиями, выполнив: sudo xcodebuild -license. Выполните шаги и введите «согласиться» и нажмите Enter.
astromax

5
Если вы этого не сделаете, при запуске самообновления некоторые порты не будут работать.
astromax

8
По крайней мере, для меня выскакивает лицензионное соглашение без необходимости его запрашивать.
PaulSkinner

Это в значительной степени пригвождает это. Спасибо!!
Эдсон Медина

2
По состоянию на 26 апреля 2014 года. Эти команды больше не работают. Возможно, следует скачать «Инструменты командной строки для OS X Mavericks» с developer.apple.com/downloads/index.action# и установить его.
qazwsx

37

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


6
Установил 2.2.1, и все снова заработало. Не нужно ничего удалять. Спасибо за указатель.
Алексей Полховский

Тоже самое. Это правильный ответ. Да, многие люди не устанавливают инструменты командной строки, но это, очевидно, не является проблемой, как показывает первая приведенная трассировка.
PatchyFog

Это действительно правильно, к счастью, я нашел этот ответ вскоре после других вводящих в заблуждение других. Спасибо.
Вкрутую Страна чудес

macosx не поставляется с предустановленным tcl, не так ли?
Майсам Тораби

3

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



2

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


1

Я получил ошибку при самостоятельном обновлении и решил ее, выполнив новую установку 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

0

В основном я хотел прокомментировать ответ @ 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кажется, снова бежать ...

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

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


0

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


0

У меня была эта проблема на 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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.