Ошибка: Не удается установить в Homebrew на процессоре ARM с префиксом Intel по умолчанию (/usr/ local)

#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:

  1. Запустите команду 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.
     

    Если появляется какая-либо из этих ошибок, вполне вероятно, что приведенные ниже шаги применимы к вашему случаю.

  2. Перейдите к /opt папке:
     $ cd /opt
     
  3. Создайте папку с именем homebrew . По умолчанию для записи внутри папки требуются права суперпользователя /opt , что означает, что необходимо использовать sudo :
     $ sudo mkdir homebrew
     
  4. Предоставьте доступ на запись к homebrew папке, чтобы ваш пользователь мог выполнить установку Homebrew:
     $ sudo chmod go w homebrew
     
  5. Выполните четыре шага, перечисленные на странице «Альтернативные установки» (страница, упомянутая в первом сообщении об ошибке на шаге 1).:
    1. Установите Homebrew:
       $ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
       
    2. Установите префикс Homebrew в вашем текущем сеансе терминала:
       $ eval "$(homebrew/bin/brew shellenv)"
       
    3. Обновить Homebrew:
       $ brew update --force --quiet
       
    4. Отменить доступ на запись к определенным папкам и файлам:
       $ chmod -R go-w "$(brew --prefix)/share/zsh"
       
  6. Установите префикс Homebrew в будущих сеансах терминала, добавив необходимую команду в один из файлов запуска Zsh. Насколько я могу судить, .zshrc это предпочтительный загрузочный файл для этого типа команд:
     $ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
     

    Обратите внимание, что если на вашем компьютере есть какие-либо другие существующие сеансы терминала, которые были открыты до запуска приведенной выше команды, правильный префикс Homebrew в этих сеансах все равно не будет установлен.

  7. Убедитесь, что префикс 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 into opt/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 ГБ.