MacPorts macOS Big Sur clang Error Code 77

Nach meinem Upgrade von macOS 10.15 Catalina auf macOS 11 Big Sur und der darauffolgenden Installation der aktuellen MacPorts habe ich bei einem Paket vom Compiler folgenden Fehler bekommen.:

% sudo port install gd2
Warning: The macOS 11.0 SDK does not appear to be installed. Ports may not build correctly.
Warning: You can install it as part of the Xcode Command Line Tools package by running `xcode-select --install'.
Computing dependencies for gd2
Fetching archive for gd2
Attempting to fetch gd2-2.3.0_0+x11.darwin_20.x86_64.tbz2 from https://kmq.jp.packages.macports.org/gd2
Attempting to fetch gd2-2.3.0_0+x11.darwin_20.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/gd2
Attempting to fetch gd2-2.3.0_0+x11.darwin_20.x86_64.tbz2 from https://packages.macports.org/gd2
Configuring gd2<br>Error: Failed to configure gd2, consult /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_gd2/gd2/work/libgd-2.3.0/config.log
Error: Failed to configure gd2: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_gd2/gd2/main.
Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port gd2 failed

Dem Log-File war zu entnehmen, dass der Compiler mit dem Error-Code 77 den Kompiliervorgang abgebrochen hatte. Was mich aber verwundert hatte, war, dass obwohl das aktuelle macOS 11.0 SDK und die Xcode Command Line Tools installiert waren, mir der Lösungsvorschlag präsentierte wurde, die Xcode Command Line Tools zu installieren. Nach etwas Recherche im Internet bin ich auf einen einfachen wie effektiven Lösungsvorschlag gekommen. Einfach die löschen und erneut installieren.

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

Links:

Commandlinefu

Als ich im vergangenen Herbst nach einer Lösung im Internet recherchiert habe, um eine Audio-Datei (wav, mp3, etc.) aus der Tonspur einer DVD zu erzeugen, bin ich in meinen Suchergebnissen über Beispiele für Kommandozeilen-Befehle auf der Website www.commandlinefu.com aufmerksam geworden. Bei Commandlinefu kann jeder nach der Registrierung einen kleinen Beitrag einstellen für einen Kommandozeilen-Befehl den er oder sie als erwähnenswert erachtet. Dabei wurden – und werden Befehle präsentiert, die entweder etwas Praktisches, etwas Nützliches, etwas Interessantes oder einfach nur etwas Witziges ausführen.
So gab es bis vor etwa zehn Jahren alternative Beispiele, wie sich ein öffentlicher SSH-Schlüssel auf einem Ziel-Host in die Datei ~/.ssh/authorized_keys einfügen lässt. Hintergrund war, dass Apple zwar die vollständige SSH-Suite seit Beginn von Mac OS X als festes Bestandteil integriert hat, aber über etliche Versionen hat das Programm ssh-copy-id gefehlt. So wurden alternative Wege erarbeitet, die mit Hilfe der Standard-Unix-Tools den Schlüssel über ein einziges Shell-Kommando auf den Ziel-Host brachten.xx
Ich habe mal angefangen, ein wenig in der mittlerweile über fast 12 Jahre alten Sammlung zu stöbern und eine wirklich kleine Auswahl in meinem Wiki gesammelt. Aber es steckt noch viel Potenzial in der Sammlung weitere Befehls-Schätze zu entdecken. Es braucht nur etwas Internet und vielleicht einen halben oder ganzen Tag, an dem sich nichts sinnvolleres mit der vorhandenen Freizeit anstellen lässt.
Es gibt im übrigen auch einen Twitter-Account zu Commandlinefu, der einem über einen neuen Beitrag informiert.

Links:

Individuelles ISO-Image unter macOS erstellen

Im Zuge meines Vorhabens dass ich mir nach langer Zeit wieder ein MS-DOS virtualisiert habe, stand ich auch wieder vor dem Problem ein individuelles ISO-CD-Image mit Computerdateien unter macOS zu erstellen. Im graphischen Programm ‚Disk Utility‘ (dt.: Festplattendienstprogramm) ist dies leider nicht direkt möglich. Allerdings muss im ‚Disk Utility‘ über das Menü ‚File‚ -> ‚New Image‚ -> ‚Blank Image …‚ ein leeres Image erstellt werden. Dabei ist darauf zu achten, dass im Dialogfenster unter ‚Partitions‘ ‚CD/DVD‘ und bei ‚Image Format‘ ‚DVD/CD-Master‘ als Optionen ausgewählt sind.

Somit ist erst einmal ein Image mit der Dateierweiterung .cdr erstellt, das mit Dateien gefüllt werden kann. Um daraus nun ein CD-ROM-konformes ISO-Image zu erstellen, ist das Kommandozeilenprogramm hdiutil nötig.

Der Befehl lautet:

hdiutil makehybrid -iso -o CD-ROM.ISO CD-ROM.cdr

Bei der Benennung der Output-Datei ist es aber nicht nötig .ISO als Dateierweiterung an zu hängen, da hdiutil dies automatisch tut.

Links:
Einrichten eines virtualisierten MS-DOS Systems (eigener Blogartikel)
ISO 9660 (dt. Wikipedia)

Hilfreichen Konsolen-Befehlen für macOS

Die deutsche Apple-Nachrichtenseite MacTechNews hatte vor 3 Wochen einen Artikel mit einer kurzen Sammlung an Terminal-Befehlen für den Mac. Die Seite beruft sich auf den GitHub-User Marcel Bischoff, der eine von ihm selbst kuratierte englischsprachige Liste mit Terminal-Kommandos, fein säuberlich sortiert nach Anwendungszwecken und Aufgaben pflegt. Von der bereits von MacTechNews gekürzten Auswahl an Befehlen, habe ich mir die für mich interessantesten Befehle genommen und in diesem Artikel aufgelistet.

1. Dateien und Ordner

Immer alle Dateinamens-Erweiterungen im Finder anzeigen:
defaults write -g AppleShowAllExtensions -bool true
Inhalte von zwei Ordnern vergleichen:
diff -qr /Pfad/zu/Ordner1 /Pfad/zu/Ordner2
.DS_Store-Dateien entfernen:
find . -type f -name '*.DS_Store' -ls -delete

2. Time Machine

Backup-Intervall anpassen:
sudo defaults write /System/Library/LaunchDaemons/com.apple.backupd-auto StartInterval -int Intervall_in_Sekunden
Beispiel: Intervall auf eine Stunde setzen:
sudo defaults write /System/Library/LaunchDaemons/com.apple.backupd-auto StartInterval -int 3600
Backups lokal speichern, wenn das externe Speichermedium nicht verfügbar ist:
sudo tmutil enablelocal

Diese Einstellung kann mit sudo tmutil disablelocal wieder rückgängig gemacht werden. Beide Befehle funktionieren nur bis einschließlich macOS 10.12 Sierra, ab macOS 10.13 High Sierra sind sie obsolet.

3. Festplatten, SSDs und Volumes

Alle Platten und Partitionen anzeigen:
diskutil list
Dateiberechtigungen reparieren:
sudo diskutil repairPermissions /

Dieser Befehl funktioniert nur bis einschließlich macOS 10.10 Yosemite, da spätere Versionen die Systemdateiberechtigungen automatisch schützen.

4. Betriebssystem

Ausführlichen Systembericht erzeugen:
sudo sysdiagnose -f ~/Desktop/
Status der Kernelerweiterungen anzeigen:
sudo kextstat -l

Über diese Auswahl an Befehlen hinaus sind auf der GitHub-Seite von Marcel Bischoff noch zahlreiche weitere Kommandos zu finden, beispielsweise aus den Themenbereichen Netzwerk, Audio, Sicherheit und Apps. Darüber hinaus stellt er in einer weiteren Übersicht eine ganze Reihe von Kommandozeilen-Apps vor.

Ein weiteres Thema ist persönlich bei mir, dass ich die Konfigurations-Datei .profile im Benutzerstammverzeichnis regelmäßig bearbeite. Zum Beispiel – und das ist das wesentliche bei mir – um Aliases zu erstellen und bearbeiten. Um die Datei neu einzulesen, dachte ich mir immer, müsse man sich als Benutzer immer wieder im System ab- und wieder neu anmelden. Aber zum Glück gibt es da aus der restlichen Unix-Derivaten- und Linux-Welt den Befehl source. Einfach eintippen mit dem Pfad der Konfigurationsdatei, die geändert wurde.:

source Example:
source ~/.profile

Links:

    MacTechNews-Artikel vom 03. Oktober 2019
    GitHub-User Marcel Bischoff – Appearance
    GitHub-User Marcel Bischoff – Command Line Apps

macOS 10.12.2 Sierra: Änderungen bei SSH Keys und Passphrase

Mit dem macOS Sierra Update 10.12.2 setzt Apple nun auf die OpenSSH-Version 7.3p1. Im Gegensatz zu früheren Mac-OS Versionen gibt es seit 10.12 Sierra für die Speicherung von SSH-Passphrasen im Schlüsselbund keinen grafischen Abfragedialog mehr. Um Passphrasen und Kennwörter nun im Schlüsselbund ablegen zu können, muss die SSH-Konfigurationsdatei um die Option UseKeychain yes ergänzt werden. Dies lässt sich auch für einzelne Hosts festlegen.

Beispiel:

…

Host Servername
    Hostname 192.168.5.23
    User sommteck
    IdentityFile ~/.ssh/PrivatKeyName
    UseKeychain yes
AddKeysToAgent yes …

OpenSSH lädt die Keys außerdem nicht länger automatisch in den ssh-agent, dies passe das Verhalten von macOS an das OpenSSH-Projekt an.
Falls die Passphrase nicht im Schlüsselbund gespeichert wird, erkundige sich SSH deshalb immer wieder neu nach dem Kennwort. Um den oder die SSH-Schlüssel wieder im Agent verfügbar zu machen, muss die SSH-Konfigurationsdatei um den Zusatz AddKeysToAgent yes ergänzt werden.

Update 18. Oktober 2021 19:04 Uhr:

Mit dem Konsolenbefehl ssh-add -K ~/.ssh/PrivatKeyName lassen sich die privaten Schlüssel auch manuell an den SSH Agent hinzufügen. Ebenso lassen sich auch all jene privaten Schlüssel anzeigen, die im SSH Agent bereits gespeichert sind.:

sommteck@MacBook-Pro ~ % ssh-add -l
2048 SHA256:wBLcJPCf9URvi8Pfk+nvI5nybU8+0nfEwAYCOTA3ix4.ssh/alix_id_rsa (RSA)

Weiterführende Links:
https://www.heise.de/mac-and-i/meldung/macOS-10-12-2-Sierra-Aenderungen-bei-SSH-Keys-und-Passphrase-3588517.html
https://developer.apple.com/library/content/technotes/tn2449/_index.html