Общие проблемы
Это список часто встречающихся проблем, известных проблем и их решений.
Запуск brew
brew жалуется на отсутствие «Инструментов командной строки»
Необходимо установить (и обновить) утилиты Xcode Command Line. Запустите xcode-select --install в терминале.
Ruby: bad interpreter: /usr/bin/ruby^M: no such file or directory
Вы клонировали с git, и в вашей конфигурации Git установлены окончания строк Windows. Обратитесь к этой странице о настройке Git для обработки окончаний строк.
Ruby: bad interpreter: /usr/bin/ruby
У вас нет /usr/bin/ruby или оно не выполняется. Не рекомендуется допускать этого; вы удивитесь, сколько .appов, инструментов и скриптов ожидают, что ваши файлы и каталоги macOS будут неизменными с момента установки macOS.
brew update жалуется на неотслеженные файлы рабочей области
После запуска brew update вы получаете предупреждение об ошибке Git о неотслеживаемых файлах или локальных изменениях, которые будут перезаписаны при выполнении операции checkout или merge, за которым следует список файлов внутри вашей установки Homebrew.
Это вызвано старой ошибкой в коде update, которая давно исправлена. Однако, характер ошибки требует выполнения следующих действий:
cd "$(brew --repository)" git reset --hard FETCH_HEAD
Если brew doctor по-прежнему жалуется на несохраненные изменения, выполните также эту команду:
cd "$(brew --repository)/Library" git clean -fd
launchctl отказывается загрузить файлы launchd plist
При попытке загрузить файл plist с помощью launchctl, вы получаете ошибку, похожую на:
Bug: launchctl.c:2325 (23930):13: (dbfd = open(g_job_overrides_db_path, [...] launch_msg(): Socket is not connected
или:
Could not open job overrides database at: /private/var/db/launchd.db/com.apple.launchd/overrides.plist: 13: Permission denied launch_msg(): Socket is not connected
Эти ошибки, вероятно, связаны с одной из четырех проблем:
- Вы используете iTerm. Решение — использовать Terminal.app при взаимодействии с
launchctl. - Вы используете терминальный мультиплексор, такой как
tmuxилиscreen. Вы должны взаимодействовать сlaunchctlиз отдельной оболочки Terminal.app. - Вы пытаетесь запустить
launchctlпри удалённом подключении. Вы должны включить совместное использование экрана на удалённой машине и выполнить команду с помощью Terminal.app, запущенного на этой машине. - Вы вошли как другой пользователь.
brew upgrade выдает ошибку
При запуске brew upgrade вы видите что-то вроде этого:
Error: undefined method `include?' for nil:NilClass
Please report this bug:
https://docs.brew.sh/Troubleshooting
/usr/local/Library/Homebrew/formula.rb:393:in `canonical_name'
/usr/local/Library/Homebrew/formula.rb:425:in `factory'
/usr/local/Library/Contributions/examples/brew-upgrade.rb:7
/usr/local/Library/Contributions/examples/brew-upgrade.rb:7:in `map'
/usr/local/Library/Contributions/examples/brew-upgrade.rb:7
/usr/local/bin/brew:46:in `require'
/usr/local/bin/brew:46:in `require?'
/usr/local/bin/brew:79 Это происходит, потому что по какой-то причине по-прежнему присутствует старая версия команды обновления. Исправление:
cd "$(brew --repository)/Library/Contributions/examples" git clean -n # if this doesn't list anything that you want to keep, then git clean -f # this will remove untracked files
Python: easy-install.pth не может быть подключен
Warning: Could not link <formula>. Unlinking... Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local You can try again using `brew link <formula>' Possible conflicting files are: /usr/local/lib/python2.7/site-packages/site.py /usr/local/lib/python2.7/site-packages/easy-install.pth ==> Could not symlink file: /homebrew/Cellar/<formula>/<version>/lib/python2.7/site-packages/site.py Target /usr/local/lib/python2.7/site-packages/site.py already exists. You may need to delete it. To force the link and overwrite all other conflicting files, do: brew link --overwrite formula_name To list all files that would be deleted: brew link --overwrite --dry-run formula_name
Не следуйте советам здесь, а исправьте проблему, используя Language::Python.setup_install_args в формуле, как описано в Python для авторов формул.
Обновление macOS
Обновление macOS может привести к ошибкам, например:
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.54.dylibconfigure: error: Cannot find libz
После обновления macOS может потребоваться переустановить Xcode Command Line Tools, а затем brew upgrade все установленные формулы:
xcode-select --install brew upgrade
Cask — ошибка cURL
Сначала давайте разберемся с распространенной проблемой: у вас есть файл .curlrc? Проверьте с помощью ls -A ~ | grep .curlrc (если вы получили результат, файл существует). Это частая причина проблем такого рода. Прежде всего, удалите этот файл и попробуйте снова. Если теперь всё работает, не открывайте вопрос. Несовместимые конфигурации .curlrc должны быть исправлены с вашей стороны.
Однако, если у вас нет файла .curlrc или удаление его не помогло, давайте посмотрим, не в этом ли причина:
- Перейдите на веб-сайт поставщика (
brew home <cask_name>). - Найдите ссылку для загрузки приложения и щелкните по ней.
Если загрузка работает
Формула устарела. Давайте это исправим:
- Посмотрите на веб-сайте приложения и выясните, какая версия является последней. Вероятно, она будет выражена в URL, используемом для загрузки.
- Посмотрите версию формулы (
brew cat <cask_name>) и проверьте, действительно ли она устарела. Если версия приложения:latest, это означает, что самаurlустарела. Её необходимо изменить на новую.
Помогите нам, предложив исправление. Если у вас возникли трудности, откройте вопрос, объяснив свои шаги и где у вас возникли проблемы.
Если загрузка не работает
Проблема никак не связана с Homebrew Cask, а с поставщиком или вашим подключением.
Начните с диагностики подключения (попробуйте загрузить другие формулы, просмотрите другие сайты в интернете). Если проблема в подключении, попробуйте сайт, такой как Ask Different, чтобы попросить совета.
Если вы уверены, что проблема не в подключении, свяжитесь с поставщиком приложения и сообщите им о том, что ссылка не работает, чтобы они могли это исправить.
Не открывайте вопрос.
Cask — контрольная сумма не совпадает
Сначала проверьте, не была ли проблема с вашей загрузкой. Удалите загруженный файл (его расположение указано в сообщении об ошибке) и попробуйте снова.
Если проблема сохраняется, формула устарела. Вероятно, потребуется новая версия, но возможно, версия осталась прежней (иногда происходит, когда поставщик обновляет приложение на месте).
- Перейдите на веб-сайт поставщика (
brew home <cask_name>). - Выясните, какая версия является последней. Она может быть выражена в URL, используемом для загрузки.
- Посмотрите версию формулы (
brew info <cask_name>), и проверьте, действительно ли она устарела. Если это так:
Помогите нам, предложив исправление. Если у вас возникли трудности, откройте вопрос, объяснив свои шаги и где у вас возникли проблемы.
Cask — ошибка доступа
В этом случае, вероятно, ваша учетная запись пользователя не имеет прав администратора, поэтому у вас нет разрешения на запись в /Applications (который является по умолчанию). Вы можете использовать --appdir, чтобы выбрать место установки приложений.
Если --appdir не исправит проблему или у вас есть права записи в /Applications, проверьте, являетесь ли вы владельцем каталога Caskroom, выполнив ls -dl "$(brew --prefix)/Caskroom" и проверив третье поле. Если вы не являетесь владельцем, исправьте это с помощью sudo chown -R "$(whoami)" "$(brew --prefix)/Caskroom". Если являетесь, проблема может быть в самом пакете приложения.
Некоторые пакеты приложений не имеют определенных разрешений, необходимых для перемещения их в соответствующее место. Вы можете проверить такие разрешения с помощью ls -ls <path_to_app_bundle>. Если вы видите что-то вроде dr-xr-xr-x в начале вывода, это может быть причиной. Чтобы исправить это, мы изменяем разрешения пакета приложения, чтобы позволить нам его переместить, а затем возвращаем их к исходным (на случай, если разработчик намеренно установил эти разрешения). Обратитесь к litecoin для примера такой формулы.
Помогите нам, предложив исправление. Если у вас возникли трудности, откройте вопрос, объяснив свои шаги и где у вас возникли проблемы.
Cask — источник отсутствует
Сначала вам нужно определить, какой артефакт больше не обрабатывается должным образом. Это явно указано в сообщении об ошибке: если говорится It seems the App source…', проблема в app. Шаблон одинаков для всех артефактов.
Исправление этой ошибки обычно легко и требует небольшого времени с вашей стороны. Начните с загрузки пакета для формулы: brew fetch <cask_name>. Последняя строка вывода сообщит вам о местоположении загрузки. Перейдите туда и вручную распакуйте его. Например, предположим, что структура внутри архива выглядит следующим образом:
. ├─ Files/SomeApp.app ├─ Files/script.sh └─ README.md
Теперь давайте посмотрим на формулу (brew cat <cask_name>):
(…) app "SomeApp.app" (…)
Формула ожидала, что SomeApp.app будет в корневом каталоге архива (см., как просто говорится SomeApp.app), но разработчик изменил его на папку внутри каталога Files. Всё, что нам нужно сделать, это обновить эту строку формулы, чтобы она соответствовала новой структуре: app 'Files/SomeApp.app'.
Обратите внимание, что иногда имя приложения меняется полностью (например, с SomeApp.app на OtherApp.app). В таких случаях имя файла формулы и её токен также должны быть изменены. Обратитесь к token reference для получения подробных инструкций по новому имени.
Помогите нам, предложив исправление. Если у вас возникли трудности, откройте вопрос, объяснив свои шаги и где у вас возникли проблемы.
Cask — неправильное количество аргументов
Убедитесь, что проблема действительно связана с вашей версией macOS. Для этого попробуйте установить программное обеспечение вручную. Если оно несовместимо с вашей версией macOS, вам об этом скажут. В этом случае мы не можем вам помочь в установке программного обеспечения, но можем добавить depends_on macos: раздел, чтобы предотвратить попытку установки формулы на несовместимые версии macOS.
Помогите нам, предложив исправление. Если у вас возникли трудности, откройте вопрос, объяснив свои шаги и где у вас возникли проблемы.
Другие локальные проблемы
Если ваша установка Homebrew сломалась (и исправление проблем, обнаруженных brew doctor, не решило проблему), переустановка Homebrew может помочь вернуть систему в нормальное состояние. Для простой переустановки Homebrew используйте Homebrew Bundle для автоматического восстановления ваших установленных формул и формул. Для этого выполните brew bundle dump, удаление, переустановку и выполните brew bundle install.
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Common-Issues