Skip to main content
Jamf Nation, hosted by Jamf, is a knowledgeable community of Apple-focused admins and Jamf users. Join us in person at the ninth annual Jamf Nation User Conference (JNUC) this November for three days of learning, laughter and IT love.

Best Practices to Package Garageband 10.3.2 with All Loops?

Hi Everyone,
After 2 years of using an older package of Garageband with All Loops, it's time for me to repackage it and I'm wondering how to best do it. In the past, I created a 10Gig+ package of Garageband and all the loops using Composer (this is why it's been 2 years). The music teachers want the students to have access to all the loops and since we have Standard accounts it makes it easier if Garageband is just ready to go without Admin privileges to install the loops later.

Should I try to install Garageband using Mac Apps Store and then try to push the loops after? We don't assign the students Apple IDs so I'm not sure if I can push out Garageband directly to devices. I had tried in the past but did not seem to have success. And then where would I find the loops? They seem to be buried in various locations.

Thank you in advance for any advice and guidance.

Like Comment
Order by:
SOLVED Posted: by anverhousseini

I'm using this python tool: https://github.com/carlashley/appleLoops

Like
SOLVED Posted: by bzuckrow

+1 for appleLoops

Like
SOLVED Posted: by PaulHazelden

GarageBand and Logic are the same. I have some notes on installing and getting all of the extras. I use Composer to get the App but then I use the following to get the rest.

These notes are on Logic, but GarageBand is the same. Be warned with Logic you will be getting about 800 installer packages in total.

Install on one Mac, Then run Logic. It will want to get the Essentials packages. Let it, but don't put in the Admin password to allow them to install.
Then head to Go - Connect to Folder
/var/folders
View as list, and set View options to calculate all sizes. Organise the folder view with the biggest at the top.
Open the biggest folder, and keep on going until you get a whole big bunch of .pkg files. There might be 2 folders with content, I recall the older stuff being in a different folder.
Copy all of these out to somewhere safe. Don't move them, make copies.
Once you have them all copied safe, go back to Logic and give it the admin password.
Logic will now install all of the essentials files, and delete them from the folder they were in.
Reboot the Mac. Open Logic again, and this time tell it to get everything from the Library.
Head back to the same folder as before, and all the new content will download.
Again wait for the admin password, but don't put it in, and you will find an awful lot of installers in the folders you were in before. Copy them out again to a safe place. Remember they could be in a couple of folders. Once you have copied them out, you can install them. Reboot and check once more for any Library files to be added. If there are repeat the steps above.

For ease of installing I split them into folders of content, keeping them to about 5Gb. Pick your own size here.
Put these folders in a location that you want them to install from, I already have a folder in /var that I use so I put them in an Install folder in there.
Next you want to compress them.
In Terminal use cd /var/Install
Pick your location of the folders.
Then (You must navigate in Terminal to the location of the folder first)

tar -zcvf "Archive Name".tar.gz <FOLDER NAME>

I will normally use the exact same name for Archive Name and Folder Name.
Then use Composer to create a package of the Compressed Archive. But don't Package it yet.
Once it is in Composer, click the Arrow to the Left of the Name of the Source, you will get a drop down list, I use Scripts, then Shell and Postinstall
Please check your location and put it in the correct places in the script, I have left all of mine there handy for you to see, they are highlighted.

It will give you some standard stuff in there, and a space in the middle for….

# What file is being installed, I use the same name for Archive as the Folder then put that in the variable. Makes it easy to quickly copy this into many versions.
csgfile="FOLDER NAME"

# Uncompressing the Installers
# Move to location
cd /private/var/Install/
# Uncompress the archive
tar -zxvf "$csgfile".tar.gz

# ---------------------------------------------------//------------------------------------------------------------

# Install the pkg files found in a temp location

for PKG in $(ls "/private/var/Install/$csgfile/" | grep "pkg$")
do
/usr/sbin/installer -pkg /private/var/Install/"$csgfile"/"$PKG" -tgt / -allowUntrusted
# Then it will remove the installers
rm -Rf /private/var/Install/"$csgfile"/"$PKG"
done

# Remove the folder and the archive
rm -Rf /private/var/Install/"$csgfile"
rm -Rf /private/var/Install/"$csgfile".tar.gz

# ---------------------------------------------------//------------------------------------------------------------

exit 0      ## Success
exit 1      ## Failure

Save the script in Composer, and then build the .pkg file of it.

Deploy the pkg to any client Mac and it will…
Make a copy of the .tar.gz in the location specified.
Expand the Archive
Find all .pkg files in there and install them
As it installs, it then will delete the pkg files
Once finished it will delete the Folder and the Archive

As you can see, using the same name for the Archive and the Folder, makes life simple. You put that into one variable, and the script does the rest. A new Archive and all you need to do it swap the variable data for the new one and it will work. I got fed up of changing each line of script to get them working each time.

This works for loads of stuff, and also for things like the Adobe pkg files that don't work on SMB shares.

Hope this is helpful

Like