Fix 'Bad CPU type in executable' on an M3 MacBook Pro

Fix 'Bad CPU type in executable' on an M3 MacBook Pro

February 4, 2024·Nick Gracilla
Nick Gracilla

Summary

If you upgrade from an Intel to an Apple Silicon Mac and use Migration Assistant, tools complied for Intel will be migrated as is, and will break with the error ‘Bad CPU type in executable.’ It can be fixed.

  1. Hugo didn’t work. So I tried to update using brew.
  2. But I couldn’t brew, because Ruby didn’t work.
  3. Ruby was installed through asdf. But I couldn’t update asdf, because I installed it using brew.
  4. asdf couldn’t reinstall Ruby, because ruby-build was failing.
  5. couldn’t update asdf’s Ruby plugin, because a local git was failing.
  6. Stop the train.
  7. Was able to uninstall and install brew.
  8. Was able to brew install git.
  9. Was able to brew install asdf.
  10. Was able to asdf install the ruby plugin, with the working git.
  11. Was able to asdf install ruby.
  12. Remembered the Ruby issue was about brew, but I really wanted Hugo. Well, fixed a broken thing anyway, and Was able to brew install Hugo.
  13. Beer!

The long story

I upgraded my aging Intel-based MacBook Pro to a spiffy new M3 for 2024 — it’s a great laptop to work on (shout out to David for the buying advice!). Apple’s migration assistant does a top job migrating everything from one laptop to another, too. Except for developers, who use the command line: everything that had been installed and compliled was for the old chip architecture. So while Migration Assistant brought over the assets, none could work on the new M3 chip.

It all started with Hugo, the static site builder I use to maintain this site.

Hugo

nick@Grigio ~ % hugo server
zsh: bad CPU type in executable: hugo

Homebrew

Since I use Homebrew as my Package Manager, I figured I’d need to update that first.

nick@Grigio ~ % brew update
/usr/local/Homebrew/Library/Homebrew/brew.sh: line 838: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Bad CPU type in executable

Ok, ouch. looks like the Ruby installed and used by Homebrew isn’t working either. What does the doctor say?

nick@Grigio ~ % brew doctor

/usr/local/Homebrew/Library/Homebrew/brew.sh: line 838: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Bad CPU type in executable
/usr/local/Homebrew/Library/Homebrew/brew.sh: line 838: /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby: Undefined error: 0

Ruby

The doctor is out too; makes sense since brew doesn’t work. The errors point to a problem with Ruby; what does Ruby say?

nick@Grigio ~ % ruby -v

/usr/local/Cellar/asdf/0.10.2/libexec/lib/commands/command-exec.bash: line 28: /Users/nick/.asdf/installs/ruby/2.6.2/bin/ruby: Bad CPU type in executable

/usr/local/Cellar/asdf/0.10.2/libexec/lib/commands/command-exec.bash: line 28: /Users/nick/.asdf/installs/ruby/2.6.2/bin/ruby: Undefined error: 0

Yeah, Ruby’s unhappy. I use asdf as a Multiple Runtime Version Manager. So maybe I can upgrade through that.

ASDF

nick@Grigio ~ % asdf current
nodejs          14.15.5         /Users/nick/.tool-versions
ruby            2.6.2           /Users/nick/.tool-versions

Yep. Looks like I had in installed using asdf. Well, let’s get asdf up to speed and…

nick@Grigio ~ % asdf update        

Update command disabled. Please use the package manager that you used to install asdf to upgrade asdf.

Oh no! I probably installed it with Homebrew. Which, of course isn’t working. Well, let’s try just installing a fresh Ruby with asdf.

ASDF Ruby

nick@Grigio ~ % asdf install ruby latest

/usr/local/Cellar/asdf/0.10.2/libexec/lib/functions/installs.bash: line 29: /usr/local/bin/nproc: Bad CPU type in executable

/Users/nick/.asdf/plugins/ruby/ruby-build/bin/ruby-build: line 59: /usr/local/bin/greadlink: Bad CPU type in executable

/Users/nick/.asdf/plugins/ruby/ruby-build/bin/ruby-build: line 59: /usr/local/bin/greadlink: Bad CPU type in executable

/Users/nick/.asdf/plugins/ruby/ruby-build/bin/ruby-build: line 59: /usr/local/bin/greadlink: Bad CPU type in executable

/Users/nick/.asdf/plugins/ruby/ruby-build/bin/ruby-build: /usr/local/bin/shasum: /usr/local/opt/perl/bin/perl: bad interpreter: Bad CPU type in executable

Downloading openssl-1.1.1n.tar.gz...

-> https://www.openssl.org/source/openssl-1.1.1n.tar.gz

Installing openssl-1.1.1n...

Installed openssl-1.1.1n to /Users/nick/.asdf/installs/ruby/3.1.2



Downloading ruby-3.1.2.tar.gz...

-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.gz

Installing ruby-3.1.2...

ruby-build: using readline from homebrew



**BUILD FAILED** (macOS 14.3 using ruby-build 20220415)



Inspect or clean up the working tree at /var/folders/8x/0l59xsdx3l12swsyfn03mwmh0000gn/T/ruby-build.20240203173343.12976.CcwP6f

Results logged to /var/folders/8x/0l59xsdx3l12swsyfn03mwmh0000gn/T/ruby-build.20240203173343.12976.log



Last 10 log lines:

                  ^

compiling ossl_x509name.c

compiling ossl_x509req.c

compiling ossl_x509revoked.c

compiling ossl_x509store.c

installing default openssl libraries

1 warning generated.

linking shared-object openssl.bundle

linking shared-object psych.bundle

make: *** [build-ext] Error 2

ruby-build

Oh man! Looks like ruby-build, amongst other things was broken. At this point, a lot of folks point to installing Rosetta 2, a translation layer for running intel-based apps on Apple Silicon Macs. But… it’s a fresh new laptop. I hate running legacy stuff. Maybe I can just update asdf’s plugin for Ruby?

nick@Grigio ~ % asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git

/usr/local/Cellar/asdf/0.10.2/libexec/lib/functions/plugins.bash: line 90: /usr/local/bin/git: Bad CPU type in executable

/user/local/bin/git

Well, that’s super annoying. How many gits do I have anyway?

nick@Grigio ~ % which -a git

/opt/homebrew/bin/git
/usr/local/bin/git
/usr/bin/git

nick@Grigio ~ % /usr/local/bin/git

zsh: bad CPU type in executable: /usr/local/bin/git

Ok: so that local version of git isn’t working. At this point, I’m getting a little frustrated.

Uninstall Homebrew

Maybe I can reinstall Homebrew and start fresh.

nick@Grigio ~ % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

**Warning**: This script will remove:

/Users/nick/Library/Caches/Homebrew/

/Users/nick/Library/Logs/Homebrew/

/opt/homebrew/.devcontainer/

/opt/homebrew/.dockerignore

/opt/homebrew/.editorconfig

/opt/homebrew/.git/

/opt/homebrew/.github/

/opt/homebrew/.gitignore

/opt/homebrew/.shellcheckrc

/opt/homebrew/.sublime/

/opt/homebrew/.vale.ini

/opt/homebrew/.vscode/

/opt/homebrew/CHANGELOG.md

/opt/homebrew/CONTRIBUTING.md

/opt/homebrew/Caskroom/

/opt/homebrew/Cellar/

/opt/homebrew/Dockerfile

/opt/homebrew/LICENSE.txt

/opt/homebrew/Library//

/opt/homebrew/README.md

/opt/homebrew/bin/brew

/opt/homebrew/completions/

/opt/homebrew/docs/

/opt/homebrew/manpages/

/opt/homebrew/package/

Are you sure you want to uninstall Homebrew? This will remove your installed packages! [y/N] y

**==>** **Removing Homebrew installation...**

**==>** **Removing empty directories...**

Password:

**==>** **/usr/bin/sudo /usr/bin/find /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/opt /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/Frameworks -name .DS_Store -delete**

**==>** **/usr/bin/sudo /usr/bin/find /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/opt /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/Frameworks -depth -type d -empty -exec rmdir {} ;**

**==>** **Homebrew uninstalled!**

The following possible Homebrew files were not deleted:

/opt/homebrew/etc/

/opt/homebrew/share/

/opt/homebrew/var/

You may wish to remove them yourself.

Well, that’s finally feeling like progress. Let’s go ahead and clean them up.

nick@Grigio ~ % sudo rm -rf /opt/homebrew/

Password:

Install Homebrew

Ok, out with the old. Ccan we get Homebrew installed for M3?

nick@Grigio ~ % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"



**==>** **Checking for `sudo` access (which may request your password)...**

**==>** **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



Press **RETURN**/**ENTER** to continue or any other key to abort:

**==>** **/usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew**

**==>** **/usr/bin/sudo /bin/mkdir -p /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**

**==>** **/usr/bin/sudo /bin/chmod ug=rwx /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**

**==>** **/usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions**

**==>** **/usr/bin/sudo /usr/sbin/chown nick /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**

**==>** **/usr/bin/sudo /usr/bin/chgrp admin /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**

**==>** **/usr/bin/sudo /usr/sbin/chown -R nick:admin /opt/homebrew**

**==>** **/usr/bin/sudo /bin/mkdir -p /Users/nick/Library/Caches/Homebrew**

**==>** **/usr/bin/sudo /bin/chmod g+rwx /Users/nick/Library/Caches/Homebrew**

**==>** **/usr/bin/sudo /usr/sbin/chown -R nick /Users/nick/Library/Caches/Homebrew**

**==>** **Downloading and installing Homebrew...**

remote: Enumerating objects: 255068, done.

remote: Counting objects: 100% (39719/39719), done.

remote: Compressing objects: 100% (1212/1212), done.

remote: Total 255068 (delta 38809), reused 38836 (delta 38481), pack-reused 215349

Receiving objects: 100% (255068/255068), 72.91 MiB | 25.66 MiB/s, done.

Resolving deltas: 100% (185254/185254), done.

From https://github.com/Homebrew/brew

 * [new branch]          master                 -> origin/master

 * [new branch]          pkg_installer_14_arm64 -> origin/pkg_installer_14_arm64

 * [new tag]             0.1                    -> 0.1

 ...

 * [new tag]             4.2.6                  -> 4.2.6

remote: Enumerating objects: 18, done.

remote: Counting objects: 100% (11/11), done.

remote: Total 18 (delta 11), reused 11 (delta 11), pack-reused 7

Unpacking objects: 100% (18/18), 3.38 KiB | 192.00 KiB/s, done.

From https://github.com/Homebrew/brew

 * [new tag]             4.0.29     -> 4.0.29

 * [new tag]             4.1.9      -> 4.1.9

HEAD is now at df32020fb Merge pull request #16574 from Homebrew/sorbet-files-update

fatal: cannot force update the branch 'master' checked out at '/opt/homebrew'

==> **Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:d783cbeb6e6ef0d71c0b442317b54554370decd6fac66bf2d4938c07a63f67be**

#################################################################################### 100.0%

==> **Pouring portable-ruby-3.1.4.arm64_big_sur.bottle.tar.gz**

**Warning**: /opt/homebrew/bin is not in your PATH.

  Instructions on how to configure your shell for Homebrew

  can be found in the 'Next steps' section below.

**==>** **Installation successful!**



**==>** **Homebrew has enabled anonymous aggregate formulae and cask analytics.**

**Read the analytics documentation (and how to opt-out) here:**

  **https://docs.brew.sh/Analytics**

No analytics data has been sent yet (nor will any be during this **install** run).



**==>** **Homebrew is run entirely by unpaid volunteers. Please consider donating:**

  https://github.com/Homebrew/brew#donations



**==>** **Next steps:**

- Run these two commands in your terminal to add Homebrew to your **PATH**:

    (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/nick/.zprofile

    eval "$(/opt/homebrew/bin/brew shellenv)"

- Run **brew help** to get started

- Further documentation:

    https://docs.brew.sh

ok, after running the path updates, brew is working: 🎉

nick@Grigio ~ % brew update

Already up-to-date.

Progress!

brew update asdf

With a working brew, let’s try getting ASDF updated.

nick@Grigio ~ % brew install asdf

==> **Downloading https://ghcr.io/v2/homebrew/core/asdf/manifests/0.14.0**

#################################################################################### 100.0%

==> **Fetching dependencies for asdf:** **m4****,** **autoconf****,** **automake****,** **gmp****,** **coreutils****,** **libtool****,** **libyaml****,** **ca-certificates****,** **openssl@3****,** **readline** **and** **unixodbc**

==> **Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19**

#################################################################################### 100.0%

==> **Fetching** **m4**

==> **Downloading https://ghcr.io/v2/homebrew/core/m4/blobs/sha256:f42d89db519a07d67bcaead6c8**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72**

#################################################################################### 100.0%

==> **Fetching** **autoconf**

==> **Downloading https://ghcr.io/v2/homebrew/core/autoconf/blobs/sha256:bb39057e87dd9cb940be**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/automake/manifests/1.16.5**

#################################################################################### 100.0%

==> **Fetching** **automake**

==> **Downloading https://ghcr.io/v2/homebrew/core/automake/blobs/sha256:7a116fd1052d95a13b40**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/gmp/manifests/6.3.0**

#################################################################################### 100.0%

==> **Fetching** **gmp**

==> **Downloading https://ghcr.io/v2/homebrew/core/gmp/blobs/sha256:78e4f40cba6419cf7e2d81e9c**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/coreutils/manifests/9.4**

#################################################################################### 100.0%

==> **Fetching** **coreutils**

==> **Downloading https://ghcr.io/v2/homebrew/core/coreutils/blobs/sha256:a37cf7152382ee80a7e**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/libtool/manifests/2.4.7-1**

#################################################################################### 100.0%

==> **Fetching** **libtool**

==> **Downloading https://ghcr.io/v2/homebrew/core/libtool/blobs/sha256:211b174c29c24b3bdd42c**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/libyaml/manifests/0.2.5**

#################################################################################### 100.0%

==> **Fetching** **libyaml**

==> **Downloading https://ghcr.io/v2/homebrew/core/libyaml/blobs/sha256:98c0cf81bcdf7577d5fdc**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2023-12-12**

#################################################################################### 100.0%

==> **Fetching** **ca-certificates**

==> **Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:5c99ffd0861f0**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1**

#################################################################################### 100.0%

==> **Fetching** **openssl@3**

==> **Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:c2a712e6f567969c05d**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.7**

#################################################################################### 100.0%

==> **Fetching** **readline**

==> **Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:4b08134e70e90a968bf8**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/unixodbc/manifests/2.3.12**

#################################################################################### 100.0%

==> **Fetching** **unixodbc**

==> **Downloading https://ghcr.io/v2/homebrew/core/unixodbc/blobs/sha256:4984c5ec2cd0ddc6393c**

#################################################################################### 100.0%

==> **Fetching** **asdf**

==> **Downloading https://ghcr.io/v2/homebrew/core/asdf/blobs/sha256:2aa1302895c8908cef593cd3**

#################################################################################### 100.0%

==> **Installing dependencies for asdf:** **m4****,** **autoconf****,** **automake****,** **gmp****,** **coreutils****,** **libtool****,** **libyaml****,** **ca-certificates****,** **openssl@3****,** **readline** **and** **unixodbc**

==> **Installing asdf dependency:** **m4**

==> **Downloading https://ghcr.io/v2/homebrew/core/m4/manifests/1.4.19**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/5b2a7f715487b7377e409e8ca58569040cd89f33859f691210c58d94410fd33b--m4-1.4.19.bottle_manifest.json

==> **Pouring m4--1.4.19.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/m4/1.4.19: 13 files, 726.2KB

==> **Installing asdf dependency:** **autoconf**

==> **Downloading https://ghcr.io/v2/homebrew/core/autoconf/manifests/2.72**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/b73cdb320c4261bbf8d02d03e50dc755c869c5859c1d4e93616898fc7cd939ff--autoconf-2.72.bottle_manifest.json

==> **Pouring autoconf--2.72.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/autoconf/2.72: 71 files, 3.6MB

==> **Installing asdf dependency:** **automake**

==> **Downloading https://ghcr.io/v2/homebrew/core/automake/manifests/1.16.5**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/6863d3ffa73c5a5cbf1f1ea9e47b60784d09b232ac9e56149c1b931d9ec44d8b--automake-1.16.5.bottle_manifest.json

==> **Pouring automake--1.16.5.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/automake/1.16.5: 131 files, 3.5MB

==> **Installing asdf dependency:** **gmp**

==> **Downloading https://ghcr.io/v2/homebrew/core/gmp/manifests/6.3.0**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/70a72a71216843d66a953c06ff6337445ce9bc94fae9f0e301e2f59005274a8e--gmp-6.3.0.bottle_manifest.json

==> **Pouring gmp--6.3.0.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/gmp/6.3.0: 21 files, 3.3MB

==> **Installing asdf dependency:** **coreutils**

==> **Downloading https://ghcr.io/v2/homebrew/core/coreutils/manifests/9.4**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/03ccc608c8aa32206068c01a0851d46905841391780c77bf9fa216a0b8e6f2df--coreutils-9.4.bottle_manifest.json

==> **Pouring coreutils--9.4.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/coreutils/9.4: 476 files, 13.5MB

==> **Installing asdf dependency:** **libtool**

==> **Downloading https://ghcr.io/v2/homebrew/core/libtool/manifests/2.4.7-1**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/606e79b61b857bc4e83f71abf7afa8e087c4ad71539989e7066a4055439bf129--libtool-2.4.7-1.bottle_manifest.json

==> **Pouring libtool--2.4.7.arm64_sonoma.bottle.1.tar.gz**

🍺  /opt/homebrew/Cellar/libtool/2.4.7: 75 files, 3.8MB

==> **Installing asdf dependency:** **libyaml**

==> **Downloading https://ghcr.io/v2/homebrew/core/libyaml/manifests/0.2.5**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/5f6b0af1730aa1bc02f8021c90ed7ffe988eeba95eec83e6c828f77332ba6406--libyaml-0.2.5.bottle_manifest.json

==> **Pouring libyaml--0.2.5.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/libyaml/0.2.5: 10 files, 352.3KB

==> **Installing asdf dependency:** **ca-certificates**

==> **Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2023-12-12**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/13aa86e429e05d02a76005d1881eaf625091a5ac4dc7d7674c706d12ba48796a--ca-certificates-2023-12-12.bottle_manifest.json

==> **Pouring ca-certificates--2023-12-12.all.bottle.tar.gz**

==> **Regenerating CA certificate bundle from keychain, this may take a while...**

🍺  /opt/homebrew/Cellar/ca-certificates/2023-12-12: 3 files, 226.7KB

==> **Installing asdf dependency:** **openssl@3**

==> **Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.2.1**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/9028c46ef691f524b97a457b84f78327e64ebeda3bfd5a68c8f00bfa995664de--openssl@3-3.2.1.bottle_manifest.json

==> **Pouring openssl@3--3.2.1.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/openssl@3/3.2.1: 6,874 files, 32MB

==> **Installing asdf dependency:** **readline**

==> **Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.7**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/14125f7fa4b49853f76160b864f58379d90e52833ffeb8bd0643609bcd7f02a7--readline-8.2.7.bottle_manifest.json

==> **Pouring readline--8.2.7.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/readline/8.2.7: 50 files, 1.7MB

==> **Installing asdf dependency:** **unixodbc**

==> **Downloading https://ghcr.io/v2/homebrew/core/unixodbc/manifests/2.3.12**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/f0a48ea379f8e4acc3dc9d88ec4ce4e354b4437d2104efee3399b892b79d55ac--unixodbc-2.3.12.bottle_manifest.json

==> **Pouring unixodbc--2.3.12.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/unixodbc/2.3.12: 47 files, 2.3MB

==> **Installing** **asdf**

==> **Pouring asdf--0.14.0.all.bottle.tar.gz**

==> **Caveats**

To use asdf, add the following line (or equivalent) to your shell profile

e.g. ~/.profile or ~/.zshrc:

  . /opt/homebrew/opt/asdf/libexec/asdf.sh

e.g. ~/.config/fish/config.fish

  source /opt/homebrew/opt/asdf/libexec/asdf.fish

Restart your terminal for the settings to take effect.



zsh completions have been installed to:

  /opt/homebrew/share/zsh/site-functions

==> **Summary**

🍺  /opt/homebrew/Cellar/asdf/0.14.0: 192 files, 763KB

==> **Running `brew cleanup asdf`...**

Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.

Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

==> **Caveats**

==> **asdf**

To use asdf, add the following line (or equivalent) to your shell profile

e.g. ~/.profile or ~/.zshrc:

  . /opt/homebrew/opt/asdf/libexec/asdf.sh

e.g. ~/.config/fish/config.fish

  source /opt/homebrew/opt/asdf/libexec/asdf.fish

Restart your terminal for the settings to take effect.



zsh completions have been installed to:

  /opt/homebrew/share/zsh/site-functions

Progress! Let’s go back to…

asdf ruby plugin

Let’s try that asdf plugin for ruby update again.

nick@Grigio ~ % asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git

/usr/local/Cellar/asdf/0.10.2/libexec/lib/functions/plugins.bash: line 90: /usr/local/bin/git: Bad CPU type in executable

Wah-wah. Still have that problem with an old version of git in /usr/local/bin/git. Can brew help?

Brew install git

nick@Grigio ~ % brew install git

==> **Downloading https://ghcr.io/v2/homebrew/core/git/manifests/2.43.0**

#################################################################################### 100.0%

==> **Fetching dependencies for git:** **gettext** **and** **pcre2**

==> **Downloading https://ghcr.io/v2/homebrew/core/gettext/manifests/0.22.4**

#################################################################################### 100.0%

==> **Fetching** **gettext**

==> **Downloading https://ghcr.io/v2/homebrew/core/gettext/blobs/sha256:43d00547f4a1036a642c8**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/pcre2/manifests/10.42**

#################################################################################### 100.0%

==> **Fetching** **pcre2**

==> **Downloading https://ghcr.io/v2/homebrew/core/pcre2/blobs/sha256:f9abacbf5d8f637449706d2**

#################################################################################### 100.0%

==> **Fetching** **git**

==> **Downloading https://ghcr.io/v2/homebrew/core/git/blobs/sha256:2c321629c0d47c0384ddf23f5**

#################################################################################### 100.0%

==> **Installing dependencies for git:** **gettext** **and** **pcre2**

==> **Installing git dependency:** **gettext**

==> **Downloading https://ghcr.io/v2/homebrew/core/gettext/manifests/0.22.4**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/3ceb9457127eaa7378dd80ed256098ffb391e2350069becb25cfe2a14f0b7d6d--gettext-0.22.4.bottle_manifest.json

==> **Pouring gettext--0.22.4.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/gettext/0.22.4: 2,042 files, 24.3MB

==> **Installing git dependency:** **pcre2**

==> **Downloading https://ghcr.io/v2/homebrew/core/pcre2/manifests/10.42**

Already downloaded: /Users/nick/Library/Caches/Homebrew/downloads/6a53794fcaabc5cc5e05b19c02ca9c4c5f2cb9a4d65a5790a6841146465b040f--pcre2-10.42.bottle_manifest.json

==> **Pouring pcre2--10.42.arm64_sonoma.bottle.tar.gz**

🍺  /opt/homebrew/Cellar/pcre2/10.42: 230 files, 6.1MB

==> **Installing** **git**

==> **Pouring git--2.43.0.arm64_sonoma.bottle.tar.gz**

==> **Caveats**

The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.

Subversion interoperability (git-svn) is now in the `git-svn` formula.



zsh completions and functions have been installed to:

  /opt/homebrew/share/zsh/site-functions

==> **Summary**

🍺  /opt/homebrew/Cellar/git/2.43.0: 1,638 files, 50.5MB

==> **Running `brew cleanup git`...**

Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.

Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

==> **Caveats**

==> **git**

The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.

Subversion interoperability (git-svn) is now in the `git-svn` formula.



zsh completions and functions have been installed to:

  /opt/homebrew/share/zsh/site-functions

Progress!

asdf ruby plugin, one more time

How about now?

nick@Grigio ~ % asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git

nick@Grigio ~ %

Silent fail! We are winning!

asdf Ruby, one more time

Can we get a fresh Ruby?

nick@Grigio ~ % asdf install ruby latest

I failed to capture that output, but it worked; I got a fresh new ruby 3.3.0. But wait: wasn’t the whole point of Ruby, to get Brew to work, to install Hugo?

brew hugo

nick@Grigio ~ % brew install hugo

==> **Downloading https://formulae.brew.sh/api/formula.jws.json**

#################################################################################### 100.0%

==> **Downloading https://formulae.brew.sh/api/cask.jws.json**

#################################################################################### 100.0%

==> **Downloading https://ghcr.io/v2/homebrew/core/hugo/manifests/0.122.0**

#################################################################################### 100.0%

==> **Fetching** **hugo**

==> **Downloading https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:b89efaaf6660c70e89e1b0e8**

#################################################################################### 100.0%

==> **Pouring hugo--0.122.0.arm64_sonoma.bottle.tar.gz**

==> **Caveats**

zsh completions have been installed to:

  /opt/homebrew/share/zsh/site-functions

==> **Summary**

🍺  /opt/homebrew/Cellar/hugo/0.122.0: 50 files, 83.1MB

==> **Running `brew cleanup hugo`...**

Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.

Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

nick@Grigio ~ % hugo

Total in 4 ms

Error: Unable to locate config file or config directory. Perhaps you need to create a new site.

Run `hugo help new` for details.

And Bob’s your uncle. It was a long path with a few one-way alleys, but it’s working. I still have a broken /usr/local/bin/git that doesn’t work, but housecleaning is another day, I think.

Updated on