Waldschrahdt hat geschrieben: ↑02 Jan 2019 - 17:30
Hallo root_himself,
vielen Dank für die Mühe! Ich habe mir die Liste schon auf meine Platte kopiert, mal sehen, was ich daraus lernen kann. Die beiden Terminal-Befehle kannte ich "natürlich" nicht, ich bin zu selten mit diesem Werkzeug bei der Arbeit! Auch hier: Mal sehen, was ich damit anfangen kann.
Und nochmal: Eine Scan-Funktion, mit der ich Logic dazu bewegen könnte, die bereits vorhandenen Libs zu verwenden, die gibt es nicht? Auch keinen Workaround?
Ich befürchte eine einfache und wirklich stabile Lösung für das Anbinden und Sharen einer bestehenden Library die mit einem anderen Mac runtergeladen wurde, wird nicht möglich sein. Du wirst dir früher oder später Inkonsistenzen im Datenbestand (in der Library selbst und/oder der Packagedatenbank vs. Filesystem) erzeugen, sofern du das mit mehreren Rechner Teilen möchtest die einen Internetzugang haben. Die jeweiligen Clients werden versuchen, die Sound Library basierend auf der lokalen plist aktuell zu halten. Die wiederum ist Teil der Logic X Installation. Sind zwei Clients mit unterschiedlichen Patchleveln am Start (10.4.0 vs. 10.4.2) wird der Ärger schon anfangen. Davon abgesehen würden auf Client A installierte Pakete nicht in der Paketdatenbank von Client B sichtbar sein. Ich will nicht weiter ins Detail gehen. Das würde zu nichts brauchbarem führen. Zumindest nicht, solange der Gesamtprozess auf Package, lokaler und remote plist + nachgucken im Filesystem basiert. Das wiederum wird sich nicht ändern, weil es - aus Sicht des Anwendungsentwicklers - die einfachste und verlässlichste Methode darstellt.
Workaround könnte relativ einfach sein (YMMV). Zumindest wenn man davon ausgehen kann, dass die Pakete in sich komplett sind und sich in beliebiger Reihenfolge installieren lassen ohne irgendwelche Abhängigkeiten zueinander zu haben.
Du legst für jeden Rechner der auf einen Logic Sound Library zugreifen soll ein eigenes Verzeichnis auf deiner USB/Share-Platte an. Dieses Verzeichnis wirst du als "neuer Ort für Sound Library" in Logic X auswählen. Logic X tut in hier übrigens nichts anderes als einen Symlink für "/Library/Application Support/Logic" bzw. "GarageBand" anzulegen, der auf euer ausgewähltes Verzeichnis zeigt.
Dann lädst du den Content runter (entweder über 1a oder 1b)) und installierst ihn auf dem jeweiligen Rechner in das entsprechend ausgewählte Verzeichnis. Du hast nun zwar tonnenweise redundante Daten, aber dafür kannst du dir sicher sein, dass jeder Rechner auch tatsächlich nur seine "Instanz" anfasst. Den Initialbestand hast du auf mindestens einem Rechner über den normalen Weg erzeugt, auf allen anderen Rechnern in dem du jedes der > 600 Pakete manuell installiert hast. Das kann man natürlich Scripten (Shell mit while oder for loop, AppleScript, Automator,...).
Pakete für Initialinstallation ranschaffen
1a) Entweder du ziehst an einem potenten Anschluss die Paketliste (oder die für dich wichtige Auswahl von Paketen) runter die ich auf Pastebin gepinselt habe
1b) du nimmst ein leeres Logic X (eines ohne Sound Library) (ggf. zu erreichen in dem du die Library über den dafür vorgesehenen Dialog auf einen leeres Verzeichnis einer beliebigen Platte zeigen lässt). Du wählst aus was du haben willst, startest den Download über den Manager. Vor der Installation fragt dich der Installer nach deinem Passwort (er will ja Software installieren).
BEVOR* du das eingibst und bestätigst machst du nen Finder Fenster auf und wirfst einen Blick in den Ordner den du als Sound Library Ziel angegeben hast. Dort guckst du unter
Library/Caches/com.apple.MusicApps/audiocontentdownload.apple.com/. Du findest darin die Ordner
lp10_ms3_content_2013 und
lp10_ms3_content_2016. Darin befinden sich alle runtergelassenen Packages. Die kopierst du dir alle an einen sicheren Ort.
*Jedes runtergeladene Paket wird nach erfolgreicher Installation aus dem Cache Verzeichnis entfernt. Daher musst du das irgendwo hinsichern.
Ggf. könnte es für den 2ten bis Xten Client auch ausreichen, Logic einmal zu öffnen, den Pfad über den Manager umzustellen, den Download abzubrechen, Logic zu schließen, die Cache Verzeichnisse dort manuell zu erstellen, den payload reinzukopieren (deine 600+ Packages) und Logic zu öffnen und auf "Sound Library neu installieren" zu klicken. Keine Ahnung wofür dieser beknackte Knopf sonst sein sollte...Versuch macht klug.
Der Punkt ist aber, und darauf würde ich acht geben, dass wirklich jeder deiner Clients tatsächlich die Installation der x-hundert Pakete verpasst bekommt. Man kann zwar viel tricksen, aber ihr wollt mit euren Maschinen ja Geld verdienen und nicht immer Scherben zusammenfegen
Und letztlich ging es ja um das Einsparen des Downloads und nicht um ein Mass-Deployment von Zusatzcontent.
Nachdem - falls überhaupt - ihr da alles auf euch nehmt wäre es mindestens angesagt das Feedback Form auf apple.com zu quälen. Wenigstens das liegenlassen der bereits runtergeladenen Pakete sollte wählbar sein...von etwas mehr Magie und Liebe für die Verwaltung des Zusatzcontetns ganz zu schweigen.
So,...nu viel Erfolg. Ich hab den Kack übrigens über ne 2.4Mbit (Netto 2.0Mbit) Leitung gesaugt,...hör also mal auf zu maulen mit deinen 20Mbit. Ich bin hier die arme Sau, nicht du
EDIT: es gibt jemanden, der sich etwas Python Magie drumrumgeschrieben hat. Guckst du hier:
https://github.com/carlashley/appleLoops sowie das Wiki in
https://github.com/carlashley/appleLoops/wiki. Bugreports dazu bitte nach Github. Wenngleich der Name annehmen lässt es wäre auf Loops reduziert ist dem nicht so. Der Code sieht nicht so aus als wäre das sein erstes Stück Anwendung.
EDIT 2: weil ich es beim überfliegen des Wikis gelesen habe: man kann den ganzen Content natürlich auch in einen lokalen http mirror packen (z.B. auf einer Synology Diskstation) und den Content von da servieren. Dazu muss man im Grunde dem Client temporär nur beibringen, dass audiocontentdownload.apple.com der http mirror auf der Diskstation ist. Ich würde dafür also /etc/hosts entsprechend anpassen und anschließend den mDNSResponder Restarten damit der das frisst. Wenn der Download und die Installation erfolgt ist dreht man das zurück. Das ist deutlich geschmeidiger als den ganzen Kram per Hand und zu Fuß zu installieren oder sich in 3rdParty Python Scripts einzulesen. Anstelle einer Diskstation ließe sich natürlich jeder beliebige http Server irgendwo im LAN nutzen. Eure Clients bringen zwar alle einen apache httpd mit. Der dürfte für den überwiegenden Teil hier nicht zu konfigurieren sein. Ein Terminal aufmachen und in das Verzeichnis wechseln wo ihr die Verzeichnisstruktur des Originals abbildet* und dort ein
eintippen hingegen sollte im Rahmen des Möglichen sein. Schon könnt ihr mit jedem beliebigen Netzwerkgerät via http auf Port 80 drauf zugreifen.
*wir erinnern uns, dort liegt ein Unterverzeichnis "
lp10_ms3_content_2013" und "
lp10_ms3_content_2016" in dem die Packages rumlungern
P.S.: die Mirror Lösung würde mir am besten gefallen.