Почему врач brew останавливается на mdfind?
Проблема
У меня были проблемы с доморощенным, поэтому я решил запустить brew doctor
, но он просто застопорился на mdfind. brew --config
также зависает на mdfind после вывода следующего:
HOMEBREW_VERSION: 0.9.4
ORIGIN: https://github.com/mxcl/homebrew
HEAD: c2cc58163b54a9ea2ee56febfc722396079c5b9a
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit sandybridge
OS X: 10.8.3-x86_64
Xcode: 4.6.2
CLT: 4.6.0.0.1.1365549073
LLVM-GCC: build 2336
Clang: 4.2 build 425
brew update
, похоже, работает:
$ brew update
Already up-to-date.
Я даже могу установить вещи:
$ brew install rsnapshot
==> Downloading http://rsnapshot.org/downloads/rsnapshot-1.3.1.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/rsnapshot/1.3.1 --mandir=/usr/local/C
==> make install
🍺 /usr/local/Cellar/rsnapshot/1.3.1: 12 files, 356K, built in 4 seconds
И они даже работают:
$ rsnapshot
rsnapshot 1.3.1
Usage: rsnapshot [-vtxqVD] [-c cfgfile] [command] [args]
Type "rsnapshot help" or "man rsnapshot" for more information.
Что я пробовал
- удаление всех пакетов
- разворачивание всех бочонков
- переустановка homebrew
- переустановка инструментов командной строки XCode +.
- Установка XQuartz (который мне пришлось выполнять через командную строку)
- повторная индексация моего системного диска с помощью Spotlight
- сброс пути выбора xcode
- удаление
/usr/share/xcode-select/
Обход
После запуска brew doctor
, если я дважды завершаю процесс mdfind (один экземпляр появляется после завершения другого), я, наконец, получаю успешное возвращение:
$ brew doctor
Your system is ready to brew.
То же самое касается конфигурации:
$ brew --config
OMEBREW_VERSION: 0.9.4
ORIGIN: https://github.com/mxcl/homebrew
HEAD: c2cc58163b54a9ea2ee56febfc722396079c5b9a
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit sandybridge
OS X: 10.8.3-x86_64
Xcode: 4.6.2
CLT: 4.6.0.0.1.1365549073
LLVM-GCC: build 2336
Clang: 4.2 build 425
X11: 2.7.4 => /opt/X11
System Ruby: 1.8.7-358
Perl: /usr/bin/perl
Python: /usr/bin/python
Ruby: /usr/bin/ruby => /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
Обратите внимание, что следующий элемент в конфигурации после обычной точки останова - X11.
Подробнее
Недавно мне пришлось удалить вручную скомпилированную версию ICU из моей системы, и есть небольшая вероятность, что я фактически удалил несколько двоичных файлов, которые не были установлены ICU. Я не уверен, но я думал, что упомянул об этом на всякий случай. Даже если это действительно звучит очень глупо.
brew doctor
не дает результата при завершении.
brew doctor
похоже, останавливается на проверке check_for_latest_xquartz
, в частности, которую я проверил с помощью:
$ brew doctor check_for_latest_xquartz
Мой путь xcode-select
кажется правильным:
$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
mdfind
может найти XQuartz:
$ mdfind "kMDItemCFBundleIdentifier == 'org.macosforge.xquartz.X11'"
/Applications/Utilities/XQuartz.app
... но он все равно не возвращается.
Ссылки по теме
Ответы
Ответ 1
Последнее сообщение в вашей ссылке GitHub, похоже, отвечает на вопрос:
Это, безусловно, самая полезная тема на этой очень неприятной теме. Я пробовал все выше и обнаружил, что brew доктор висел на:
check_for_autoconf (kill mdfind 2x)
check_for_latest_xquartz (kill mdfind 2x)
check_for_linked_keg_only_brews (kill mdfind 4x)
check_for_osx_gcc_installer (kill mdfind 2x)
check_for_stray_developer_directory (kill mdfind 2x)
check_missing_deps (kill mdfind 2x)
check_standard_compilers (kill mdfind 1x)
Note that killing mdfind multiple times at least allows brew doctor to continue but that is not a solution.
Когда brew доктор наконец закончил, я заметил одно предупреждение:
check_user_path_2
Warning: Homebrew bin was not found in your PATH.
Consider setting the PATH for example like so
echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
Добавлен экспорт PATH=/usr/local/bin:$PATH
в ~/.bash_profile
. Это было также в начале ~/.bash_profile
и дважды в конце, поэтому я удалил все, кроме последнего оператора. Открыв новое окно терминала, теперь /usr/local/bin
находится в начале моего пути, а не в середине.
Теперь brew врач работает без зависания!
Если это не решит проблему, я предлагаю внести свой вклад в эту тему на GitHub или открыть новую проблему в GitHub, так как это может быть ошибка в доморощенных.