Wie bekomme ich einen OSX installer in den Programmordner

Vergiss es. Es gibt noch 1000 andere Idiotenfehler, die man nicht vorher bedenken kann. Selbst beim Ziehen ins Terminal macht dann einer nach dem Befehl einfach kein Leerzeichen. Man kann nicht jede mögliche Variante vorher beschreiben, so dass sie 100% auch nur und ausschließlich so funktioniert. Unbedarfte User finden immer einen Weg, einen Fehler zu machen und dann zu schreiben "das geht aber nicht". Als ich vor kurzem ein Script über Quota für TimeMachine gepostet hatte, habe ich jeden einzelnen Tastendruck im Terminal genannt... hat nicht geklappt und war ein ewiges Hin und Her. Seither bin ich "geheilt" mit meinem Glauben an die Fähigkeiten von Scirpt-Usern.

Erstelle du doch bitte mal eine Beschreibung zum Aufruf, den ich oben genannt habe. Du kennst dich doch aus mit Terminal und Co. Mach das bitte mal. Kenntnisse über das Script brauchst du dazu nicht. Es geht nur darum zu beschreiben, wenn jemand das Script von einer website herunter lädt, was dann alles zu tun ist, damit das läuft und wie er es aufrufen muss.

@ alle anderen Mitleser

Auch ihr seid auch herzlich aufgefordert, diese Beschreibung zu erstellen, also Script von einer Webseite laden, was ist da alles zu tun, was muss für den Aufruf getan werden.

Bitte aber unbedingt idiotensicher beschreiben.
Das ist eben die Kunst, es Idiotensicher zu machen - also MacLike.
Die allerwenigsten AppleUser können mit Scripts oder Terminal auch was anfangen.
Selbst mit einfachsten Sachen wie Mac zurücksetzen, für das es ja auf den Appleseiten Step-by-Step Anleitungen gibt, ist die Masse überfordert.

Nicht mal Tastaturkurzbefehle finden etliche nicht.

Obwohl Google und Co eigentlich alles hergeben was man so wissen will.

Daher brauchts auch ChatGPT - damit das Volk noch blöder wird und noch weniger findet.......
 
Dann hier mal ein Draft:
Code:
Lade dir das Script von <URL> runter und entpacke es.
Öffne die Terminal App.
Zieh die entpackte Script Datei <script.sh> aus dem Finder Fenster in das Terminal Fenster.
Ergänze nun ein Leerzeichen.
Nun müssen die Parameter eingetippt werden.
Als erstes kommt der Pfad zur DMG Datei.
Hier ziehen man wieder die DMG Datei vom Finder ins das Terminal Fenster.
Abermals wird ein Leerzeichen ergänzt.
Als zweiter Parameter kommt die Ziel Volume, auf der Installer erzeugt werden soll.
Auch hier wieder zieht man Volume vom Desktop in das Terminal Fenster.
Danach wieder ein Leerzeichen ergänzen.
Der letzte Parameter ist der OS Name mit die Volume dann benannt wird.
Wegen möglicher Leerzeichen benutzt man hier am besten Anführungsstriche.
Z.B. "El Capitan".
Nun sollte das Ergebnis so ungefähr aussehen:
/User/name/Downloads/script.sh /Users/name/Downloads/image.dmg /Volumes/name "El Capitan"
Wenn die Eingaben korrekt sind, dann einfach mit der Enter Taste die Zeile ausführen.
Am Ende sollte nun eine Volume Install El Capitan erscheinen.
 
  • Gefällt mir
Reaktionen: KOJOTE und PiaggioX8
Dann hier mal ein Draft:
Code:
Lade dir das Script von <URL> runter und entpacke es.
Öffne die Terminal App.
Zieh die entpackte Script Datei <script.sh> aus dem Finder Fenster in das Terminal Fenster.
Ergänze nun ein Leerzeichen.
Nun müssen die Parameter eingetippt werden.
Als erstes kommt der Pfad zur DMG Datei.
Hier ziehen man wieder die DMG Datei vom Finder ins das Terminal Fenster.
Abermals wird ein Leerzeichen ergänzt.
Als zweiter Parameter kommt die Ziel Volume, auf der Installer erzeugt werden soll.
Auch hier wieder zieht man Volume vom Desktop in das Terminal Fenster.
Danach wieder ein Leerzeichen ergänzen.
Der letzte Parameter ist der OS Name mit die Volume dann benannt wird.
Wegen möglicher Leerzeichen benutzt man hier am besten Anführungsstriche.
Z.B. "El Capitan".
Nun sollte das Ergebnis so ungefähr aussehen:
/User/name/Downloads/script.sh /Users/name/Downloads/image.dmg /Volumes/name "El Capitan"
Wenn die Eingaben korrekt sind, dann einfach mit der Enter Taste die Zeile ausführen.
Am Ende sollte nun eine Volume Install El Capitan erscheinen.
Geht doch(y)
 
Da es um M1 Rechner geht, ist Gatekeeper aktiv und ein herunter geladenes script wird erst mal nicht laufen.

In der Standardeinstellung von macOS werden herunter geladene zip automatisch entpackt. Es muss also nichts entpackt werden. Das würde scheitern.

Wie ist der Stick formatiert? Welche Größe hat er?

Es sollte erwähnt werden, dass der Stick vor Ausführung des scripts bereits angesteckt ist.

Der Rest klingt erst mal gut.
 
Zuletzt bearbeitet:
Nun, da die Anleitung bis auf die Kleinigkeiten, die sicher bald jemand beschreibt, ganz gut ist, hier nun der Link zum script. Einen Blog-post schreibe ich in den nächsten Tagen

https://lisanet.de/wp-content/uploads/2023/03/make_stick.zip

Das script fordert im Verlauf 2 x die Eingabe des Admin-Passowrtes auf. Daher also im Admin-Account ausführen.

Das Script läuft sehr lange. Sehr lange. Je nach Stick, 15 min und länger.

Das Script läuft mit den Images von der Apple Seite https://support.apple.com/de-de/HT211683 für die Versionen von Lion bis Sierra. Für Versionen ab High Sierra funktioniert das script nicht. Da müsst ihr anders vorgehen.
 
Ich packe so Sachen vorher in ein AppleScript. Da kann ich dann per choose file / folder gefahrlos die Pfade holen und wandeln.

ist dann immer noch nicht völlig idiotensicher aber ich muss den Anwender nicht ins Terminal schicken.
 
Ich packe so Sachen vorher in ein AppleScript. Da kann ich dann per choose file / folder gefahrlos die Pfade holen und wandeln.

ist dann immer noch nicht völlig idiotensicher aber ich muss den Anwender nicht ins Terminal schicken.

Wenn ich eine App verkaufen würde oder ich etwas gezielt programmiere für eine Vielzahl von reinen Anwendern (z.B das was ich beruflich mache), dann würde ich das auch machen. Aber für Dinge, die ich für mich nutze, tu ich das nicht. Und nur weil ich hier was im Forum poste aus meinem persönlichen Fundus, werde ich nicht immer erst eine GUI programmieren.

Aber wenn du das gerne machst, dann scheue dich nicht, eine GUI für das script zu erstellen.
 
ist fast fertig ;-)

make_stick packst du in das Script Package in Resources



da ich etwas ziemlich Ähnliches mit meinen Dumper mache (da ist auch ein eingebettetes Shell Script im Package) war das Meiste schon fertig.


AppleScript:
set myPath to (POSIX path of (path to me as text)) as string

if myPath ends with ".scpt" then -- runs in script editor, opened main.scpt in package
    
    set text item delimiters to "/"
    set myPath to ((text items 1 thru -3) of myPath) as text
    set text item delimiters to ""
    
    set make_stick to quoted form of (myPath & "/make_stick")
    
else -- runs as App
    set make_stick to quoted form of (myPath & "/Contents/Resources/make_stick")
end if


set the_dmg to choose file of type {"dmg"} with prompt "Select the .dmg MacOS installer"
set the_dmg to quoted form of (POSIX path of the_dmg)


set the_volume to choose folder with prompt "Select your USB Stick to install onto" default location "/Volumes"
set the_volume to quoted form of (POSIX path of the_volume)


set OS_Name to text returned of (display dialog "Enter a volume name for the installer stick" default answer "MacOS Installer" with icon note buttons {"Cancel", "Continue"} default button "Continue")
set OS_Name to quoted form of OS_Name

do shell script make_stick & space & the_dmg & space & the_volume & space & OS_Name & space & "> ~/make_stick.log" with administrator privileges
 
  • Gefällt mir
Reaktionen: KOJOTE, FrankyGZ und lisanet
@Macschrauber

Respekt! :upten:

Edit:

Jetzt muss ich nur noch das temporäre Verzeichnis anlegen, da das script einen temporären Ordner im jeweiligen Verzeichnis anlegt, in welchem es gestartet wird.

Kann ich dein Apple-Script nutzen für meinen Blog-Post?
 
Vielleicht im DMG select Dialog noch das mit Lion bis Sierra mit rein nehmen.
 
Vielleicht im DMG select Dialog noch das mit Lion bis Sierra mit rein nehmen.

das möchte doch nur .dmg haben und wäre unabhängig von dem was in der .dmg drin steckt


Schön wäre wenn das shell script auch noch die Installer Apps zerlegen könnte. Das Meiste an neueren Systemen kommt per .app daher.
 
das möchte doch nur .dmg haben und wäre unabhängig von dem was in der .dmg drin steckt

Das Script funktioniert nur mit DMG von Lion bis Sierra.
Das sollte erwähnen, bevor es munter Fehler gibt.
Schön wäre wenn das shell script auch noch die Installer Apps zerlegen könnte. Das Meiste an neueren Systemen kommt per .app daher.
Das Problem dabei ist, dass sich die pkg auf den DMGs auf M meist nicht installieren lassen, daher hat man keine Install App.
 
... hhhmmm, offensichtlich steckt der Teufel wie immer im Detail.

Der im script enthaltene Befehle pkgutil läuft nicht innerhalb des Apple Scritpes.
 
Schön wäre wenn das shell script auch noch die Installer Apps zerlegen könnte.

Das bringt nichts für das hier vorligende Problem mit dem Boot Stick, da createinstallmedia bis hin zu Sierra nicht unter M1 (hier Venture) nicht zum Laufen zu bewegen ist.

Wie oben geschrieben, ab High Sierra muss man eh anders vorgehen udnzwar genau in der Art, die *.app zu extrahieren, die Sig zu createinstallmedia zu erneuern und dann regluär createinatallmedai aufrufen. Ggf muss man für Catalina nocht ein paar andere binaries neu signieren.
 
das kenne ich, die Pfade müssen im shell script angepasst werden wenn über ein AppleScript gestartet.

ist etwas diffus weil für mein Projekt (wo auch noch mehr CLI Tools in Resources stecken) aber du erkennst bestimmt die Idee dahinter:

Code:
if [[ $(dirname "$1") == "." ]]; then #complete path if needed for external tools
	workfile=$(echo $(pwd)/$1)
else
	workfile=$1
fi


base_of_me=$(dirname "$0")
cd "$base_of_me" # for AppleScripting test_nvram
# otherwise it has to be in /usr/local/bin as well as scanvss and UEFIExtract

und pkgutil usw mit vollem Pfad angeben
 
und pkgutil usw mit vollem Pfad angeben

oh ja, leider. Ich wusste doch, warum ich AppleScript nicht sonderlich mag. Da bleibe ich erst mal beim Shell Script.

Eine Frage:

Hast du eventuell eine Lösung für eine Art Fortschrittsanzeige? Da das scritp sehr lange benörigt, wäre es toll, wenn der USer eine Rückmeldung erhält. Es würde auch durchaus ausreichen, wenn sowas ginge wie "tail ~/make_stick.log" in einem Fenster.
 
Zurück
Oben Unten