Post History
I'm still trying to solve my problem with installing Ruby on a new Mac, and some discussions are saying that I need to reinstall brew because of the change from the old chipset to the M1. (I'm jus...
Question
macos-11
#1: Initial revision
How do I safely replace brew on Big Sur?
I'm still trying to solve [my problem with installing Ruby on a new Mac](https://linux.codidact.com/posts/284956), and some discussions are saying that I need to reinstall `brew` because of the change from the old chipset to the M1. (I'm just repeating what I've heard; I don't understand the issue.) I'm willing to try this, but it [looks like](https://docs.brew.sh/FAQ) uninstalling `brew` also removes everything I installed with it, and that would be bad if I can't assemble a manifest and reinstall everything after. How do I *safely* replace `brew`? Specifics: My new machine is an M1 Mac running Big Sur. I used Migration Assistant to move data from my previous machine, which was running Sierra. This migration carried along the old version of `brew`, which apparently is not the version Big Sur wants. First question: can I get a list of "top-level" things I've installed with `brew`? I see that `brew list` shows me a long list of packages, many of which I didn't explicitly install but are presumably dependencies installed on my behalf. If I'm going to have to reinstall stuff after I uninstall and reinstall `brew`, I'd like to be able to figure out what *I* specified before I nuke anything. Or should I just save that list and feed it all to `brew install` after the replacement, and let duplicate dependencies and obsolete packages sort themselves out? Second question: what else could go wrong that I should anticipate and defend against? "Back everything up" isn't the complete solution I thought it was; I recently discovered (the hard way) that Time Machine doesn't back up *everything* on the disk, because apparently MacOS thinks that some files should be hidden from users. I've seen posts that recommend installing the new `brew` alongside the old one and then changing some paths and other environment variables, but it sounds confusing.