Allgemeine Hinweise zu macOS

Das Keyboard unter macOS

Tabelle 1. Apple Tasten

Befehlstaste

Wahltaste

Umschalttaste

"command"

"option"

"shift"

CMD

OPT

SHIFT

Tabelle 2. Sonderzeichen

Sonderzeichen

Bezeichnung

Tastenkombination

@

At

cmd + L

Euro

alt + E

$

Dollar

shift + 4

£

Britisches Pfund

alt + shift + 4

©

Copyright

alt + G

®

Registered

alt + R

Trademark

alt + shift + D

?

Apple

alt + shift + +

§

Paragraph

shift + 3

~

Tilde

alt + N (dann Leertaste)

(

Klammer auf

shift + 8

)

Klammer zu

shift + 9

[

eckige Klammer auf

alt + 5

]

eckige Klammer zu

alt + 6

{

geschwungene Klammer auf

alt + 8

}

geschwungene Klammer zu

alt + 9

/

Slash

shift + 7

\

Backslash

alt + shift + 7

|

Pipe (senkrechter Strich)

alt + 7

dt. Anführungszeichen unten

alt + ^

dt. Anführungszeichen oben

alt + shift + ^

einfaches dt. Anführungszeichen unten

alt + S

einfaches dt. Anführungszeichen oben

alt + #

»

frz. Anführungszeichen auf

alt + shift + Q

«

frz. Anführungszeichen zu

alt + Q

einfaches frz. Anführungszeichen auf

alt + shift + N

einfaches frz. Anführungszeichen zu

alt + shift + B

=

Gleich

shift + 0

Ungleich

alt + 0

Kleiner gleich

alt + >

Größer gleich

alt + shift + >

>

Größer

shift + >

<

Kleiner

fn + >

±

Plusminus

alt + +

Ungefähr

alt + X

ø

Durchschnitt

alt + O

Unendlich

alt + ,

%

Prozent

shift + 5

π

Pi

alt + P

Haken

alt + V

Das opsi Produkt m-homebrew

Es gibt für macOS eine Reihe von Paketverwaltungsprogrammen, welche es erlauben gängige Unix Programme unter macOS bereitzustellen. Typische Vertreter dieser Paketverwaltungsprogramme sind:

Das opsi Produkt m-homebrew installiert das homebrew System auf einem macOS System.

homebrew installiert den Befehl brew auf dem System mit dem sich dann aus dem Internet Programme herunterladen lassen. Dabei wird entweder direkt ein Binary installiert oder die Sourcen heruntergeladen und das Programm auf der Maschine kompiliert. Daher braucht homebrew auch die Entwicklungs Kommandozeilen Tools um Programme zu kompilieren (xcode-select --install)

homebrew ist aus Sicherheitsgründen so konzipiert, das es nicht als root aufgerufen werden darf, sondern nur mit usaer Rechten. Um dies im opsi Kontext zu gewähreisten wird bei der Installation des opsi-client-agent ein 'hidden user' Namens opsisetupadmin erzeugt (siehe auch Der macOS pseudo user opsisetupadmin).
Diesem user gehört das ganze homebrew System auf der Maschine und daher sollte auch nur dieser user verwendet werden um über den Befehl brew Software auf der Maschine zu installieren.
D.h. Der Befehl brew sollte wie folgt als root aufgerufen werden:

sudo -H -u opsisetupadmin /usr/local/bin/brew

Die Installation von Java im Produkt m-javavm ist z.B. wie folgt implementiert:

[ShellScript_brew_install_java]
; https://github.com/SAP/SapMachine/wiki/Installation
EXITCODE=0
sudo -H -u opsisetupadmin /usr/local/bin/brew tap sap/sapmachine
EC=$?; if [ $EC -ne 0 ]; then EXITCODE=$EC; fi
sudo -H -u opsisetupadmin /usr/local/bin/brew install --cask sapmachine-jdk
EC=$?; if [ $EC -ne 0 ]; then EXITCODE=$EC; fi
exit $EXITCODE

Um herauszufinden ob die Installation eines gewünschten Produktes per homebrew unterstützt wird, verwenden Sie am besten die folgende Webseite:
https://formulae.brew.sh/

Hilfreiche Links zu homebrew:
https://docs.brew.sh/
https://devhints.io/homebrew

Der macOS pseudo user opsisetupadmin

Bei der Installation des opsi-client-agent ein 'hidden user' Namens opsisetupadmin erzeugt. Dieser user hat kein Passwort und kann nicht für ein Login verwendet werden.

Das Heimatverzeichnis dieses Users ist /var/opsisetupadmin

Dieser User dient zu folgenden Zwecken:

  • Bedienung des homebrew Systems (siehe Das opsi Produkt m-homebrew)

  • Das Verzeichnis /var/lib/opsisetupadmin/opsi_depot ist der mountpoint auf dem der opsiclientd den Depotshare mounted.
    Dies wir so gemacht weil ein Zugriff auf Networkshares welche nicht in einem Userverzeichnis gemountet werden stark eingeschränkt ist.

Die opsi Verzeichnisse auf macOS

Wesentliche opsi Verzeichnisse und Dateien auf dem macOS-Client

  • /var/log/opsi-script (Log files opsi-script)

  • /var/log/opsi-client-agent (sonstige opsi Log files)

  • /usr/local/bin/opsi* (Kommandozeilen Programme)

  • /Applications/opsi-script-gui.app

  • /Applications/opsi-notifier.app

  • /etc/opsi-client-agent (Konfiguration opsi-client-agent)

  • /etc/opsi-script (Konfiguration opsi-script)

  • /usr/local/lib (Hilfslibraries z.B. ssl)

  • /usr/local/lib/opsiclientd

  • /usr/local/bin/locale (locale opsi-script)

  • /usr/local/share/opsi-client-agent

  • /usr/local/share/opsi-script

  • /usr/local/share/notifier.d

  • /var/opsisetupadmin (Heimatverzeichnis opsisetupadmin)

  • /var/lib/opsi-client-agent

  • /Library/LaunchDaemons/ (Start Konfiguration für opsi deamons)

  • /Library/LaunchAgents/ (Start Konfiguration für opsi-systray)

macOS Directory Struktur mit 'go' und 'nogo'

macOS basiert auf BSD-Unix und hat damit eine typische Unix Filesystemstruktur. Es gibt aber aus Sicherheitsgründen etliche Bereich die ausschließlich Apple vorbehalten sind und noch ein paar weiter Spezifika welche für den Paketierer wichtig sind:

  • /Applications
    Das ist das Verzeichnis in dem die grafischen Anwendungen liegen. Eine Anwendung besteht dabei aus eine Verzeichnis <Application name>.app. Ein solches Verzeichnis wird aber im Finder nicht als Verzeichnis angezeigt, sondern als 'Anwendung'. Innerhalb dieses Verzeichnisses müssen sich nach einem bestimmten Muster die Dateien der Anwendung befinden.

  • /sbin, /bin, /usr/bin, /usr/share, /usr/lib
    Dies sind 'apple only' Verzeichnisse in die sonst niemand etwas reinkopieren darf. Verwenden Sie stattdessen die local Varianten:
    /usr/local/bin, /usr/local/share, /usr/local/lib