Troubleshooting: Homebrew Update für OS-X Big Sur

Zuletzt aktualisiert am 17. Januar 2024 3 Minuten

Ich hab OS-X von Mojave auf Big Sur aktualisiert, und möchte nun natürlich das auch Homebrew wieder funktioniert, denn ein brew upgrade nach dem Upgrade liefert folgende umschöne Meldung:

Your CLT does not support macOS 11.0

Zunächst müssen wir (unabhängig von einer vorhandenen XCode Installation aus dem App-Store) die neuen CommandLineTools installieren:

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

Dann ein homebrew upgrade durchführen:

brew upgrade

Übersetzt: homebrew-core ist ein ungenauer Klon. Vor brew update muss git ... --unshallow ausgeführt werden.

Diese Einschränkung wurde auf Wunsch von GitHub gemacht, weil das Aktualisieren von shallow clones aufgrund des Baum-Layouts und des Traffics von Homebrew/homebrew-core und Homebrew/homebrew-cask eine extrem aufwendige Operation ist. Wir machen das nicht automatisch für Sie, um zu vermeiden, dass Sie wiederholt eine aufwendige unshallow-Operation in CI-Systemen durchführen (die stattdessen so eingestellt werden sollten, dass sie keine shallow clones verwenden). Entschuldigung für die Unannehmlichkeiten!

Also führen wir das wunschgemäß aus:

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

 remote: Enumerating objects: 614078, done.
 remote: Counting objects: 100% (614033/614033), done.
 remote: Compressing objects: 100% (213392/213392), done.
 remote: Total 605041 (delta 394377), reused 599454 (delta 388798), pack-reused 0
 Receiving objects: 100% (605041/605041), 240.24 MiB | 5.43 MiB/s, done.
 Resolving deltas: 100% (394377/394377), completed with 4069 local objects.

Danach

brew update
 Already up-to-date.

brew upgrade
 ...

brew --version
 Homebrew 2.6.2
 Homebrew/homebrew-core (git revision 9087b7; last commit 2020-12-16)
 Homebrew/homebrew-cask (git revision 974d5; last commit 2020-12-16)

…und dann wie immer die Log-Ausgaben in eine Notiz kopieren und schauen ob es Probleme gab, wie zum Beispiel dieses hier:

Probleme mit PHP

Mein Versuch den Apache Webserver zu starten liefert folgende Fehler:

sudo apachectl -k start
 Password:
 httpd: Syntax error on line 192 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/opt/php/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/opt/php/lib/httpd/modules/libphp7.so, 10): image not found

Das deutete sich in der umfangreichen Logausgabe beim Homebrew-Update schon an:

To enable PHP in Apache add the following to httpd.conf and restart Apache:
     LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so

     <FilesMatch \.php$>
         SetHandler application/x-httpd-php
     </FilesMatch>

 Finally, check DirectoryIndex includes index.php
     DirectoryIndex index.php index.html

 The php.ini and php-fpm.ini file can be found in:
     /usr/local/etc/php/7.3/

php@7.3 is keg-only, which means it was not symlinked into /usr/local,
 because this is an alternate version of another formula.

 If you need to have php@7.3 first in your PATH run:
   echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
   echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc

 For compilers to find php@7.3 you may need to set:
   export LDFLAGS="-L/usr/local/opt/php@7.3/lib"
   export CPPFLAGS="-I/usr/local/opt/php@7.3/include"

 To have launchd start php@7.3 now and restart at login:
   brew services start php@7.3
 Or, if you don't want/need a background service you can just run:
   php-fpm

Die relevante Zeile ist die erste:

To enable PHP in Apache add the following to httpd.conf and restart Apache:
     LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so

Also mach ich was da steht, navigiere zur Zeile 192 in der httpd.conf:

codium /usr/local/etc/httpd/httpd.conf

# Nach Big Sur Update
# LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so
LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so

Danach starte ich den Server neu:

sudo apachectl -k start

Problem gelöst :-)

Es läuft noch nicht alles Rund unter Big Sur. Der aktuelle Stand der Entwicklung ist hier nach zu lesen: