Probleme mit dem Update von Android Studio unter macOS

Bei einem Updateversuch von Android Studio erhielt ich unter macOS den Fehler:

Studio does not have write access to /private/… Please run it by a privileged user to update.

Den gleichen Fehler zeigte auch IntelliJ IDEA, was nicht weiter verwunderlich ist, immerhin basiert Android Studio auf IntelliJ IDEA.

Die Fehlermeldung beim Updateversuch

Die Ursache für das Problem liegt an einem macOS High Sierra eingeführten Feature namens App Translocation. In diesem Fall führte das dazu das die betreffende App in einem zufälligen Pfad gestartet wurde. Bei mir wurde das Problem dadurch verursacht, das ich nach einer Neuinstallation die Applikationen vom Backup händisch (ohne Finder) in den Ordner /Application schob. Nachdem ich die Anwendung mit dem Finder erneut in den Applications bzw. Programme-Ordner kopiert hatte, funktionierte die Update-Funktionalität wieder ohne Probleme.

Case-sensitives Startvolume unter macOS

Vor einigen Tagen schrieb ich darüber das Steam unter macOS nicht mit einem Dateisystem funktioniert, wenn dieses case-sensitiv ist. Dass bedeutet das die Dateien test.txt und Test.txt zwei unterschiedliche Dateien aus Sicht des Betriebssystems sind. Bei case-insensitiven Systemen hingegen, wären dies die gleichen Dateien. Wird die case-sensitive Variante als Startvolume unter macOS betrieben so führt dies mittelfristig nur zu Problemen.

Das Startvolume unter macOS sollte im case-insensitiven Modus formatiert werden

Hintergrund ist das besagte Apps wie Steam oder die Adobe Suite mit einem case-sensitiven Dateisystem nicht zurechtkommen. Dies führt im einfachsten Fall dazu das die Applikation nicht startet, kann aber wie z.B. bei Nextcloud zu seltsamen Abstürzen führen. Als Lösung für dieses Problem bietet sich leider nur die Neuinstallation mit der case-insensitiven Variante von APFS an.

Batterie einer mobilen Apple-Rechners kalibrieren

Bei der Nutzung eines mobilen Apple-Rechners, wie z.B. einem MacBook Air, ist es ratsam den Akku bzw. die Batterie desselbigen ab und an zu kalibrieren. Damit ist sichergestellt das die Anzeige der noch verbleibenden Energie korrekt dargestellt wird. Zur Kalibrierung müssen bestimmte Schritte in einer definierten Reihenfolge ausgeführt werden. Im ersten Schritt muss das Gerät auf 100 Prozent geladen werden. Danach muss das Gerät mindestens zwei weitere Stunden geladen werden. Anschließend kann der Ladestecker entfernt werden.

Die Akku-Zellen bei einem MacBook Air

Nun kann das Gerät normal genutzt werden, bis die Warnung erscheint die davor warnt, dass die Batterie bald leer ist. Das Gerät muss nun solange genutzt werden, bis es sich von Selbst abschaltet. Nachdem das Gerät sich abgeschaltet hat, muss es für mindestens 5 Stunden in diesem Zustand belassen werden. Anschließend muss das Gerät in einem Rutsch auf 100 Prozent geladen werden. Das Gerät sollte anschließend weitere zwei Stunden am Netzteil betrieben werden. Danach ist die Kalibrierung abgeschlossen. Wird einer dieser Schritte unterbrochen, muss die Kalibrierung erneut, von Beginn an, durchgeführt werden.

Steam startet unter macOS nicht

Auf einem MacBook Air habe ich ein neues System aufgesetzt. Neben anderer Software, wollte ich unter anderem Steam installieren. Nach der Installation startete Steam und lud die entsprechenden Daten herunter. Danach beendete sich Steam selber. Auch der mehrmalige Versuch Steam zu Starten führte zum gleichen Fehlerbild. Das Löschen des Ordners mit den Applikationsdaten:

~/Library/Application Support/Steam

half leider ebenfalls nicht. Für die Fehlersuche startete ich Steam im Terminal:

cd /Applications/Steam.app/Contents/MacOS/
./steam_osx

Dort erschient folgende Ausgabe:

[2019-01-13 18:33:37] Startup - updater built Aug 22 2016 17:36:46
/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleFSCompression/AppleFSCompression-96.200.3/Common/ChunkCompression.cpp:49: Error: unsupported compressor 8
/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleFSCompression/AppleFSCompression-96.200.3/Libraries/CompressData/CompressData.c:353: Error: Unknown compression scheme encountered for file '/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist'
/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleFSCompression/AppleFSCompression-96.200.3/Common/ChunkCompression.cpp:49: Error: unsupported compressor 8
/BuildRoot/Library/Caches/com.apple.xbs/Sources/AppleFSCompression/AppleFSCompression-96.200.3/Libraries/CompressData/CompressData.c:353: Error: Unknown compression scheme encountered for file '/System/Library/CoreServices/CoreTypes.bundle/Contents/Library/AppExceptions.bundle/Exceptions.plist'
[2019-01-13 18:33:38] Startup - updater built Jan  4 2019 15:25:44
found breakpad via in process memory: '/Users/seeseekey/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/Frameworks/Breakpad.framework/Versions/A/Resources'
Installing breakpad crash handler
[2019-01-13 18:33:38] Steam requires that '/Users/seeseekey/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS' be on a case-insensitive filesystem.
SteamID:  0, universe Public
[2019-01-13 18:33:38] Steam requires that '/Users/seeseekey/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS' be on a case-insensitive filesystem.
[2019-01-13 18:33:38] Verifying installation...
[2019-01-13 18:33:38] Shutdown
[2019-01-13 18:33:38] Unable to read and verify install manifest /Users/seeseekey/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/package/steam_client_osx.installed
[2019-01-13 18:33:38] Verification complete
[2019-01-13 18:33:38] Downloading update...
[2019-01-13 18:33:38] Checking for available updates...
[2019-01-13 18:33:38] Downloading manifest: client-download.steampowered.com/client/steam_client_osx
[2019-01-13 18:33:38] Error: Download failed: http error 0

Nach der Auswertung der Ausgabe ergab sich das es sich hier ebenfalls um ein Problem mit dem case-sensitiven Dateisystem auf dem macOS-Rechner handelte.

Steam verträgt case-sensitive Dateisysteme unter macOS nicht

Für dieses Problem bieten sich zwei Lösungen an. Bei der radikalen Lösung wird der Rechner bzw. die Partition neu aufgesetzt. Die andere Möglichkeit wäre es eine Partition zu erstellen, welche mit einem case-insensitiven Dateisystem betrieben wird und der entsprechende Application Support-Ordner per Hardlink zu dieser neuen Partition zeigen zu lassen. Schön ist keine der Lösungen, vor allem da sich jenes Problem durch die Anwendung (in diesem Fall Steam) lösen ließe. Meine pragmatische Lösung war es in diesem Fall Steam nicht zu installieren und stattdessen den Rechner produktiv zu nutzen.

Applikationsdaten unter macOS

Wenn eine Applikation unter macOS genutzt wird, speichert diese ihre Daten in einem Verzeichnis mit dem Namen Application Support. Je nachdem ob die App ohne oder mit einer Sandbox läuft, befindet sich dieser Ordner an einer unterschiedlichen Stelle. Bei Apps ohne Sandbox ist dies:

~/Library/Application Support/com.example.application/

Apps, welche in einer Sandbox laufen, haben ihren Quellpunkt im Dateisystem allerdings im Pfad:

~/Library/Containers/com.example.application/

Damit befindet sich das Application Support-Verzeichnis bei Apps, welche in einer Sandbox laufen, im Pfad:

~/Library/Containers/com.example.application/Data/Library/Application Support/

Nützlich ist z.B. wenn Daten einer Applikation von einer macOS-Installation zu einer anderen Installation verschoben werden sollen.