5

Я попытался установить несколько пакетов и получил следующие ошибки:

$ sudo port install pkgconfig
--->  Computing dependencies for pkgconfig
--->  Dependencies to be installed: libiconv
--->  Installing libiconv @1.14_0
Error: org.macports.install for port libiconv returned: no destroot found at: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_libiconv/libiconv/work/destroot
Error: Failed to install libiconv
Please see the log file for port libiconv for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_libiconv/libiconv/main.log
Error: The following dependencies were not installed: libiconv
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port pkgconfig failed

Это выглядело как проблема macports. Поэтому я попытался обновить порты. Выдало ту же ошибку (уничтожение не найдено):

$ sudo port upgrade outdated
--->  Installing expat @2.1.0_0
Error: org.macports.install for port expat returned: no destroot found at: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_expat/expat/work/destroot
Please see the log file for port expat for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_expat/expat/main.log
Error: Problem while installing expat
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets

Я пробовал sudo port selfupdate , но это не сработало. Однако sudo port -v selfupdate сработало. Когда я пытаюсь установить expat через порт sudo , например, sudo port install -fp expat , я получаю следующее:

no destroot found at: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_expat/expat/work/destroot

Ошибка предложила мне взглянуть на созданный ею журнал, который можно найти здесь: http://pastebin.com/H39VTf7b. Это касается чего-то с правами пользователя, хотя я запускаю команду с помощью sudo.

После этого я попытался вручную создать каталог для экспата. Тогда он блестяще не сумел сказать мне, что у него нет разрушений для ncurses. Создано это также (наряду с chown to macports). Теперь это не работает для gawk (файл журнала: http://pastebin.com/E5w66mqe). Я не могу пройти через все зависимости и создать для них каталоги. Я также понятия не имею, как это исправить. Я попытался изменить владельца файлов macports на "macports" безрезультатно ..

РЕДАКТИРОВАТЬ: Я также переустановил инструменты командной строки. Еще ничего.

2 ответа2

12

Ошибка "no destroot found at" возникает, когда установка из двоичного архива не удалась ранее (по крайней мере, я так думаю, я не копался в ней и не исправлял ее, потому что до сих пор не мог воспроизвести).

В любом случае, решение этой проблемы не в том, чтобы что-то делать вручную, а в том, чтобы запустить sudo port clean $portname и повторить попытку. Это первое, что вы должны попробовать при сбое сборки, и это исправляет 100% ошибок "no destroot found".

Кстати, вы не должны использовать ключ -p при установке или обновлении. Это считается вредным в этом случае. Он не удаляется, потому что он полезен для некоторых операций, которые не зависят друг от друга, таких как sudo port -p fetch outdated . MacPorts часто принудительно перестраивает порты без изменений, чтобы подобрать обновленную версию зависимости. Если вы запускаете sudo port -p upgrade outdated это может привести к перестройке, даже если обновленная версия зависимости не удалось построить, игнорируя точку обновления.

Ваша установка gawk завершилась неудачно, потому что ваш двоичный файл /opt/local/bin/xz поврежден, и он не смог извлечь исходный код из-за этого:

:info:extract dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
:info:extract   Referenced from: /opt/local/lib/libintl.8.dylib
:info:extract   Reason: Incompatible library version: libintl.8.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0

По иронии судьбы, именно такая ситуация может возникнуть, когда вы запускаете обновление с -p . Чтобы исправить эту конкретную ошибку, вам нужно перестроить порт gettext : sudo port -nf upgrade gettext . Вы также должны запустить sudo port rev-upgrade чтобы обнаружить подобные проблемы и автоматически исправить их (или хотя бы попытаться).

2

Как примечание стороны; если пакеты, связанные с Python, показывают ошибки уничтожения, проверьте двойную установку с помощью pip. В моем конкретном случае я установил py27-funcsigs в качестве пакета порта и funcsigs, также установленный с pip. Я должен был сначала удалить версию pip.

sudo -H pip uninstall funcsigs
sudo port clean py27-funcsigs
sudo port install py27-funcsigs

надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .