Наскоро се опитах да инсталирам QEMU на моя M1 Mac, но получих грешката „Не мога да инсталирам в Homebrew на ARM процесор в префикс по подразбиране на Intel“.
Ето как реших проблема.
Грешката
Ето кода, който изпълних, който доведе до грешката:
brew install qemu
Първоначално започна да актуализира Homebrew и си помислих, че всичко е наред.
Но тогава получих грешката:
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
Причината
Можех да разбера, като прочетох тази грешка, че вероятно е свързана с факта, че сега използвам M1 Mac вместо стария си Mac, базиран на Intel.
Според документацията на Homebrew, скриптът за инсталиране на Homebrew по подразбиране инсталира Homebrew на предпочитания му префикс, който е /usr/local
за macOS Intel и /opt/homebrew
за Apple Silicon (и /home/linuxbrew/.linuxbrew
за Linux).
В моя случай преди това бях възстановил резервно копие на Time Machine от моя Intel Mac на моя M1 Mac.
Така че в моя случай имах инсталация на Homebrew на Intel, работеща на моя M1 Mac.
Решението
За щастие решението беше лесно. Просто изпълних инсталационния код, който е посочен на началната страница на Homebrew (под заглавието Install Homebrew).
Затова изпълних следното:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Това доведе до следното:
==> This script will install: /opt/homebrew/bin/brew /opt/homebrew/share/doc/homebrew /opt/homebrew/share/man/man1/brew.1 /opt/homebrew/share/zsh/site-functions/_brew /opt/homebrew/etc/bash_completion.d/brew /opt/homebrew ==> The following new directories will be created: /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks ==> The Xcode Command Line Tools will be installed. Press RETURN to continue or any other key to abort
Така че продължих и продължих с инсталацията.
Накратко, той инсталира Homebrew в /opt/homebrew/
директория, в полза на моя M1 Mac.
След като го стартирах, взех съвета от съобщението за грешка и изпълних следното, за да мигрирам моя предварително инсталиран списък с формули:
brew bundle dump
Готово.
Едно нещо, което забелязах, е, че съобщението за грешка предлага използването на една от „Алтернативни инсталации“, но изглежда, че инсталационният скрипт по подразбиране вече обслужва M1 Mac без необходимост от извършване на алтернативна инсталация.
Ако сте заседнали в „Не може да се инсталира в Homebrew на ARM процесор с префикс по подразбиране на Intel (/usr/local)! ” грешка, надявам се това да помогне!