#macos #arm #homebrew #macos-big-sur #apple-silicon
#macos #arm #homebrew #macos-big-sur #apple-silicon
Вопрос:
Я использую новейший Apple M1
процессор chip. И я продолжаю получать ошибки при установке приложения.
скажем.,
brew install openjdk@11
Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)!
Please create a new installation in /opt/homebrew using one of the
"Alternative Installs" from:
https://docs.brew.sh/Installation
You can migrate your previously installed formula list with:
brew bundle dump
Нужна помощь с точными шагами для выполнения.
Комментарии:
1. все то же самое для OpenJDK 17
Ответ №1:
Как бы то ни было, перед установкой Homebrew вам необходимо установить эмулятор Rosetta2 для нового ARM silicon (микросхема M1). Я только что установил Rosetta2 через терминал, используя:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Это установит rosetta2 без дополнительных нажатий кнопок.
После установки Rosetta2 выше вы можете использовать Homebrew cmd и установить Homebrew для чипа ARM M1: arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
После установки Homebrew для M1 ARM используйте эту команду Homebrew для установки пакетов: arch -x86_64 brew install <package>
Комментарии:
1. После этой команды:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
я получаюInstalling Rosetta 2 on this system is not supported.
2. Я также сталкиваюсь с той же проблемой, есть ли какой-либо другой обходной путь для этого
Installing Rosetta 2 on this system is not supported.
3. Снимите флажок запускать с помощью rosetta в терминале, и это может быть установка Rosetta 2. Это работает для меня
4. Добавьте псевдоним
alias brew86="arch -x86_64 /usr/local/homebrew/bin/brew"
к вашему.zshrc
для удобства в будущем5. У меня была ошибка
Installing Rosetta 2 on this system is not supported.
, и я решил ее, выполнив следующее: 1. Ранее я настроил свой терминал на «запуск с Rosetta», поэтому я решил дублировать его и переименовать новое приложение в «Rosetta-Terminal» (необязательно, но хорошо, если вам нужна rosetta для других целей) 2. Снимите флажок «запустить с помощью rosetta» в «получить информацию» «Терминала». 3. Закройте и снова откройте терминал … запустил команду, и она сработала
Ответ №2:
Homebrew необходимо установить в двух местах на Apple silicon: в /usr/local для эмулируемого rosetta (Intel) кода и /opt/ homebrew для ARM64. Они несколько жестко запрограммированы, и /opt/ homebrew ДОЛЖЕН использоваться для кода ARM в его нынешнем виде и не подлежит обсуждению. Однако установить его достаточно просто, и вы можете следовать общим инструкциям в официальных документах. Сначала вы открываете оболочку Rosetta.
% arch -x86_64 zsh
% cd /usr/local amp;amp; mkdir homebrew
% curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
Позже, чтобы установить инструменты под управлением intel, вы можете использовать команду arch для каждой команды или открыть терминал zsh, как указано выше.
arch -x86_64 /usr/local/homebrew/bin/brew install sometool
Для архитектуры ARM вам не нужно использовать arch
, но вам нужно использовать полный путь команды homebrew.
/opt/homebrew/bin/brew install sometool
Вы можете переименовать команды brew во что-то вроде brew86 и brewARM, чтобы они были разделены.
Комментарии:
1. «Вы могли бы переименовать команды brew во что-то вроде brew86 и brewARM, чтобы помочь разделить их» — Как именно это сделать?
2. @indojin Вы можете использовать псевдоним ZSH. Добавив
alias brew86="arch -x86_64 /usr/local/homebrew/bin/brew"
иalias brewARM="/opt/homebrew/bin/brew"
в свой~/.zshrc
файл3. Я также использовал псевдоним. Интересно, почему это не является стандартным для установки homebrew … 😉
4. Как вы узнаете, хотите ли вы установить что-то на 86 или ARM?
5. Спасибо. Утвержденный ответ по какой-то причине не сработал для меня. Но после того, как я выполнил команды, включая CURL. Мне удалось установить этот пакет.
Ответ №3:
Просто используйте:
arch -arm64 brew install package-name
замените ‘package-name’ на пакет, который вы хотите установить.
Комментарии:
1. Это был простой ответ для моего 2021 M1 Max, работающего на Monterey 12.1. Если вы новичок в nginx, прочитайте результат установки. Вам действительно нужно запустить службу, и по умолчанию она прослушивает порт 8080 версии 1.21.6_1 nginx.
2. у меня не получилось обновить узел
3. у меня это сработало с M1 mac.
Ответ №4:
Сделал временное исправление, включив Open using Rosetta
опцию в приложении терминала из Utilities
папки.
Тем не менее, было бы здорово узнать фактическое решение этого вопроса, чтобы использовать собственный способ.
Комментарии:
1. Это работает и не требует установки brew дважды.
Ответ №5:
Запустите это в терминале, это устранит проблему
eval "$(/opt/homebrew/bin/brew shellenv)"
Комментарии:
1. После запуска этого я смог работать
brew install php
без проблем
Ответ №6:
Эта проблема с новым чипом macbook pro M1
Ошибка: не удается установить в Homebrew на процессоре ARM с префиксом Intel по умолчанию (/ usr / local)!
Для устранения выполните следующие действия
Шаг 1
дамп пакета $ brew
Шаг 2
$ /bin/ bash -c «$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh )»
Шаг 3 Отредактируйте файл ниже
$ vi ~/.bashrc или vi ~/.zshrc
Отредактируйте нижнюю строку в приведенном выше файле
путь экспорта=/opt/homebrew/bin:$PATH
Комментарии:
1. Проблема с этим заключается в том, что в конечном итоге вам в конечном итоге придется использовать обе версии homebrew. Ответ должен, по крайней мере, указывать на последствия этого изменения … 😉
2. мой ответ основан на чипах M1 и моем опыте
3. Поддерживаю примечание Мартина выше. Независимо от вашего опыта, было бы хорошо, чтобы люди знали об этом.
Ответ №7:
Homebrew теперь доступен для нового чипа Apple M1 по адресу https://docs.brew.sh/Installation . Скрипт устанавливается в новом месте, «/opt / homebrew» вместо «/ usr / local», что требует, чтобы вы внедрили пару строк скрипта после установки, заменив свое имя пользователя. Вы можете скопировать / вставить из комментариев в вашей установке. Просто не пропускайте эти шаги.
==> Next steps:
- Add Homebrew to your PATH in /Users/[username]/.zprofile:
echo 'eval "$(/opt/homebrew/bin/brew [username])"' >> /Users/[username]/.zprofile
eval "$(/opt/homebrew/bin/brew [username])"
Примечание: Это работает для чистой установки Homebrew на новой машине. Если вы уже установили старую версию Homebrew и заставили ее работать, я считаю, что вам нужно сначала удалить ее, или вы можете найти это более быстрое решение http://blog.wafrat.com/homebrew-on-mac-with-m1 /. Не проверено.
Ответ №8:
Это также может произойти, если вы пытаетесь запустить свою команду в IntelliJ Terminal. Просто попробуйте запустить (обычный) Терминал.
Комментарии:
1. Это случилось со мной, когда я пытался установить homebrew с терминала VSCode. Просто используйте обычный терминал.
Ответ №9:
В ответах здесь много полезной информации, но, похоже, нет прямого ответа на первоначальный запрос: «Нужна помощь с точными шагами для выполнения».
На случай, если это может помочь людям, столкнувшимся с этой проблемой в будущем, я поделюсь точными шагами, которые я предпринял для решения этой проблемы.
Следующие команды CLI предназначены для запуска на Mac, оснащенном Apple silicon, во встроенном терминальном приложении, использующем оболочку macOS по умолчанию, Zsh:
- Запустите команду Homebrew, чтобы подтвердить, что появляется ошибка, подобная следующей:
$ brew install <formula>
Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)! Please create a new installation in /opt/homebrew using one of the "Alternative Installs" from: https://docs.brew.sh/Installation
Или:
$ brew doctor
Warning: Your Homebrew's prefix is not /opt/homebrew. Some of Homebrew's bottles (binary packages) can only be used with the default prefix (/opt/homebrew). You will encounter build failures with some formulae.
Если появляется какая-либо из этих ошибок, вполне вероятно, что приведенные ниже шаги применимы к вашему случаю.
- Перейдите к
/opt
папке:$ cd /opt
- Создайте папку с именем
homebrew
. По умолчанию для записи внутри папки требуются права суперпользователя/opt
, что означает, что необходимо использоватьsudo
:$ sudo mkdir homebrew
- Предоставьте доступ на запись к
homebrew
папке, чтобы ваш пользователь мог выполнить установку Homebrew:$ sudo chmod go w homebrew
- Выполните четыре шага, перечисленные на странице «Альтернативные установки» (страница, упомянутая в первом сообщении об ошибке на шаге 1).:
- Установите Homebrew:
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
- Установите префикс Homebrew в вашем текущем сеансе терминала:
$ eval "$(homebrew/bin/brew shellenv)"
- Обновить Homebrew:
$ brew update --force --quiet
- Отменить доступ на запись к определенным папкам и файлам:
$ chmod -R go-w "$(brew --prefix)/share/zsh"
- Установите Homebrew:
- Установите префикс Homebrew в будущих сеансах терминала, добавив необходимую команду в один из файлов запуска Zsh. Насколько я могу судить,
.zshrc
это предпочтительный загрузочный файл для этого типа команд:$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
Обратите внимание, что если на вашем компьютере есть какие-либо другие существующие сеансы терминала, которые были открыты до запуска приведенной выше команды, правильный префикс Homebrew в этих сеансах все равно не будет установлен.
- Убедитесь, что префикс Homebrew теперь установлен правильно:
$ type -a brew
brew is /opt/homebrew/bin/brew brew is /usr/local/bin/brew
Или:
$ brew doctor
Your system is ready to brew.
Теперь должно быть возможно продолжить использование Homebrew в обычном режиме.
Ответ №10:
Сначала выполните эту команду:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
затем он задаст вам вопрос, нажмите return, затем дождитесь завершения установки. После этого выполните эту команду:
brew bundle dump
Комментарии:
1. Это работает, но в нем отсутствуют некоторые шаги. После выполнения первой команды убедитесь, что вы выполнили две команды, которые brew запрашивает у вас. И после запуска
brew bundle dump
переместите BrewFile , созданныйbrew bundle dump
intoopt/homebrew
. Из этого каталога запуститеbrew bundle install
.brew bundle dump
пакеты не устанавливаются, он просто создает BrewFile, который сообщает brew, какие пакеты он должен установить при запускеbrew bundle install
. Как файл package.json в node.js .2. Дополнительное примечание к комментарию Дэшиелла: убедитесь, что вы работаете
brew bundle dump
с/usr/local/Homebrew/bin/brew
или в противном случае вы будете запускать недавно установленныеbrew
, которые не будут иметь доступа к старым пакетам.
Ответ №11:
Перейдите к https://brew.sh и используйте эту команду. Он снова загрузит и установит brew правильно.
Ответ №12:
Я установил Homebrew, используя iTerm, включенный для чипа Apple ARM (M1), но при использовании другой терминальной программы, основанной на Intel (и, следовательно, открывающейся в Rosetta) Я получил эту ошибку. Последнее приложение рассматривается как Intel и, следовательно, хочет использовать более старый путь Homebrew.
Ответ №13:
Поэтому я купил новый M1 и перешел на него. Я забрал его обратно и мигрировал обратно. Я получал эту ошибку. Обнаружил, что мне нужно запустить sudo rm -Rf /opt / homebrew после переустановки brew, чтобы все снова заработало. 16 ГБ оперативной памяти на M1 не заменили мой рабочий процесс на Intel, использующую 64 ГБ.