Home > Mobile >  How to start over with Homebrew?
How to start over with Homebrew?

Time:10-12

I recently replaced my Intel Macbook with an M2 Mac, using my Time Machine backup to initialize the hard drive. That, of course, dutifully copied all the Intel code.

I had brewed onto the old system. Today running brew upgrade gives me:

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

So of course I ran brew bundle dump and that didn't give me any more direction. I'm ready to wipe the entire slate clean with something like rm -rf xxx and start over, but I feel like I should be choosy about xxx.

FWIW, brew --version returns:

Homebrew 3.6.5-10-gbde685a
Homebrew/homebrew-core (git revision d6fa8906828; last commit 2022-10-11
Homebrew/homebrew-cask (git revision 576798b72f; last commit 2022-10-12)

Any real help would be welcome (except "switch to macports").

CodePudding user response:

Don't rush to follow my advice, or accept my answer. Someone else may give you something better if you are patient...


You should be able to get a list of installed packages in the current setup then it'll be easier to install the same packages in the new one. Try this and see if it looks correct:

brew ls > ~/oldbrewpackages.txt

You need to find where your current casks and stuff are installed. Like this:

brew config

and look for HOMEBREW_PREFIX. Snuffle around in there and see if it looks like where all your packages are.


Next, I would look around for anything to do with homebrew in my login profiles, comment it out by putting a hash (#) at the start of the line, save the file and check you can still start a new Terminal without errors:

grep -i homebrew -/.*

Now, rather than removing all your homebrew stuff under HOMEBREW_PREFIX, I would try renaming it. You may need to turn off "System Integrity Protection" first.

Then if your homebrew stuff is under /opt/homebrew, you could do:

sudo mv /opt/homebrew /opt/homebrew.unused

Then you'll want to reboot.

Now you should be able to install a new homebrew without it detecting the old one... hopefully.


To install your previous packages in your new homebrew, you want:

brew install $(cat -/oldbrewpackages.txt)

If everything looks good and works well, make a backup and then type the command to delete your old stuff, and read it very carefully 3x before hitting Enter

sudo rm -rf /opt/homebrew.unused

CodePudding user response:

It turns out that just running "brew bundle dump" is only the first step. Follow that wit "brew bundle install --file Brewfile", as explained very clearly in earthly.dev/blog/homebrew-on-m1

  • Related