Не удается установить Brew на Мохаве с Xcode 10
Я не могу установить пакеты brew на мой Mac со следующей информацией об ошибке.
Установлено на моем Mac:
- macOS 10.14 Beta (18A293u)
- Xcode 9.3 (9E145)
- Xcode 10.0 beta (10L176w)
Наберите в brew install xxx
. Выход:
Error: Your Xcode (9.3) is too outdated.
Please update to Xcode 10.0 (or delete it).
Xcode can be updated from
https://developer.apple.com/download/more/
Error: Xcode alone is not sufficient on Mojave.
Install the Command Line Tools:
xcode-select --install
Но когда я xcode-select --install
, он говорит, что он недоступен
Xcode select install error
Пути двух версий Xcode на моем Mac:
/Applications/Xcode-beta.app
/Applications/Xcode.app
И мой конфиг вывод:
xcode-select -p
/Applications/Xcode.app/Contents/Developer
заваривать конфиг
HOMEBREW_VERSION: 1.6.7
ORIGIN: https://github.com/Homebrew/brew
HEAD: 22e9fd772926e389e264cfb328c3d810b06759f9
Last commit: 5 days ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 854bb90b366169915849fc9a83e941b8883cea1f
Core tap last commit: 6 hours ago
HOMEBREW_PREFIX: /usr/local
CPU: octa-core 64-bit haswell
Homebrew Ruby: 2.3.6 =>./System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
Clang: 9.1 build 902
Git: 2.15.1 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.54.0 => /usr/bin/curl
Java: 1.8.0_131
macOS: 10.14-x86_64
CLT: N/A
Xcode: 9.3
XQuartz: N/A
Ответы
Ответ 1
Вам нужно будет установить обе версии " Xcode 10.0 Beta " из https://developer.apple.com/download/ И " Инструменты командной строки (macOS 10.14) для Xcode 10 Beta " из
https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_macOS_10.14_for_Xcode_10/Command_Line_Tools_macOS_10.14_for_Xcode_10.dmg
Обновление, добавленное другими комментариями, после того, как вы установили "Инструменты командной строки", вам также нужно будет выполнить следующую команду в своем терминале.
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Ответ 2
Начиная с 10.14, для создания файлов заголовков в /usr/include требуется новый шаг:
Установить /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Источник: примечания к выпуску Xcode 10
Ответ 3
После установки CLT вы можете попросить CLT добавить файлы заголовков в /usr/include
, затем homebrew будет соответствующим образом определять средства командной строки.
installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Ответ 4
После установки Xcode 10 Beta и инструментов командной строки (macOS 10.14) для бета-версии Xcode 10 я также изменил путь для xcode-select, чтобы использовать вновь установленные средства командной строки с:
sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
Ответ 5
В настоящее время Brew не поддерживает бета-версию macOS Mojave.
(brew doctor
чтобы подтвердить, что они еще не принимают вопросы для Мохаве)
См. Https://apple.stackexchange.com/questions/327458/install-homebrew-packages-on-macos-mojave-beta
См.: https://github.com/Homebrew/brew/issues/4295
Ответ 6
Я смог установить Homebrew на Mojave, вручную загрузив инструменты командной строки здесь: https://developer.apple.com/download/more/
Измените скрипт установки Homebrew здесь: https://raw.githubusercontent.com/Homebrew/install/master/install
Заменяя:
def should_install_command_line_tools?
return false if force_curl?
return false if macos_version < "10.9"
!File.exist?("/Library/Developer/CommandLineTools/usr/bin/git") ||
!File.exist?("/usr/include/iconv.h")
end
С этим:
def should_install_command_line_tools?
return true
end
Затем просто выполните скрипт.
Это немного взломано, но это сработало для меня и могло помочь кому-то в бета-периоде.
Ответ 7
подтвердите, что средства командной строки для 10.14 не будут создавать каталог /usr/include/
который заставит скрипт установки кисти настаивать на повторной загрузке и установке CL.
скачайте скрипт, и ручная проверка удаления работает нормально. (знайте, что это должно быть неверно, а не true.
def should_install_command_line_tools?
return **false**
end