I have a pkg file for garageband 10.0.3 using Rich's method, works perfectly if I run the pkg right on my laptop. However, that same file that is uploaded to the JSS will not work properly. I try via Casper remote and Casper imaging, log files say it installs properly but no installation to be found anywhere on the laptop. 10.0.2 pkg I have installs as designed in all scenarios. I've tried 3 clean downloads from the App store with the method mentioned above. Any thoughts?
@jacob_salmela Thanks! As I made my edit above I've got your script running on one Mac, almost finished. So all the pkg's will be in /tmp when finished.
I don't know if I even need to pick through them, do I? If I were to take all of the pkgs that your script downloads, throw them into composer and make one big package and deploy out to all macs with GarageBand, that seems like it would work.
You mentioned that some of these are Logic files though, but don't those cross back and forth between both Garageband and Logic?
Does your script get the files that are downloaded when going to "GarageBand > Update Sound Library..."?
Thanks!
@JDP's guide plus installPKG gets the job done. use 3 line postinstall script (w/installPKG)to install Garageband app, then the 2013 pkgs then the 2015pkgs. one neat pkg that gets it done
LSinNY
I tried running the Python script today and am getting the error:
Traceback (most recent call last):
File "./download-gb-content.py", line 230, in <module>
sys.exit(main())
File "./download-gb-content.py", line 206, in main
gb_plist = download_gb_plist()
File "./download-gb-content.py", line 82, in download_gb_plist
raise ProcessorError("Can't download %s: %s" % (base_url, e))
NameError: global name 'ProcessorError' is not defined
I had already downloaded the files using a different method (utilizing proxy server logs), but I wanted to make sure that I had everything. Everything is working so I think I do, but it would be nice to have a script to double check later on.
@musat you can try my bash script that downloads all the Garageband content. I have had good luck with it.
Because of Apple's certs expiring (Rich's post) - I've been redownloading all of the packages we grabbed from the Mac App Store. As a result I've revisited the Garageband packaging process. As far as I can tell, below is now the current list of loop packages:
# Core Content
MAContent10_GarageBandCoreContent2.pkg
# Additional Content
MAContent10_GarageBandPremiumContent.pkg
MAContent10_GB_StereoDrumKitsAlternative.pkg
MAContent10_GB_StereoDrumKitsRnB.pkg
MAContent10_GB_StereoDrumKitsRock.pkg
MAContent10_GB_StereoDrumKitsSongWriter.pkg
Seems that the long laundry list of core content PKGs have been bundled into a new, single PKG?
EDIT: I was mistaken. Looks like some packages had been installed on the machine I was using previously, thus my much shorter list of PKGs. Or perhaps a bit of wishful thinking ...
@jacob_salmela your script was extremely useful, thanks!
@donmontalvo No problem! I was just about to respond to this to let you know I found all the URLs. for the new 2016 content.
@jacob_salmela I just used your AWESOME script to download all the Garageband content, however I found one small typo which would only affect folks who uncommented out the installer -pkg portion of the 2016 content section:
echo "** Downloading 2016 content..."
for ((i = 0; i < "${#content2016[@]}"; i++))
do
echo "Downloading ${content2016[$i]}..."
curl -o "$downloadFolder"/"${content2016[$i]}" http://audiocontentdownload.apple.com/lp10_ms3_content_2016/"${content2016[$i]}"
TYPO IN THIS LINE ---> #installer -pkg "$downloadFolder"/"${content2013[$i]}" -target / <--- TYPO IN THIS LINE
done
It looks like it should be installer -pkg "$downloadFolder"/"${content2016[$i]}" -target /
instead of content2013.
@aporlebeke no problem! I'm glad it was useful. (I fixed the typo--thanks for catching it).
One other small thing - I know you specify /tmp as the download directory for the PKG downloads, but when I changed to a different directory I got an error in the part of the script when trying to extract the .tar file because of the explicit use of the /tmp for extraction.
Original here:
echo "** Downloading legacy content..."
for ((i = 0; i < "${#legacyContent[@]}"; i++))
do
filename=$(echo "${legacyContent[$i]}" | awk -F'/' '{print $NF}')
if [[ "$filename" = "GarageBandExtraContent.tar" ]];then
echo "Downloading $filename..."
curl -o "$downloadFolder"/"$filename" "${legacyContent[$i]}"
# Unarchive to get the .pkg
tar -xf "$downloadFolder"/"$filename" -C /tmp
filenamePkg=$(echo "$filename" | cut -d'.' -f-1)
tar -xf "$downloadFolder"/"$filenamePkg".pkg.tar -C /tmp
#installer -pkg "$downloadFolder"/"$filenamePkg".pkg -target /
else
echo "Downloading $filename..."
curl -o "$downloadFolder"/"$filename" "${legacyContent[$i]}"
#installer -pkg "$downloadFolder"/"${legacyContent[$i]}" -target /
fi
done
Updated for the specified download directory here. I also added the removal of the original .tar and extracted .pkg.tar file so as to only leave you with the final desired PKG.
echo "** Downloading legacy content..."
for ((i = 0; i < "${#legacyContent[@]}"; i++))
do
if [[ "$filename" = "GarageBandExtraContent.tar" ]];then
echo "Downloading $filename..."
curl -o "$downloadFolder"/"$filename" "${legacyContent[$i]}"
# Unarchive to get the .pkg
tar -xf "$downloadFolder"/"$filename" -C "$downloadFolder"
filenamePkg=$(echo "$filename" | cut -d'.' -f-1)
tar -xf "$downloadFolder"/"$filenamePkg".pkg.tar -C "$downloadFolder"
# rm -rf "$downloadFolder"/"$filenamePkg".pkg.tar
# rm -rf "$downloadFolder"/"$filenamePkg".tar
# installer -pkg "$downloadFolder"/"$filenamePkg".pkg -target /
else
echo "Downloading $filename..."
curl -o "$downloadFolder"/"$filename" "${legacyContent[$i]}"
#installer -pkg "$downloadFolder"/"${legacyContent[$i]}" -target /
fi
done
I would make all these recommendations via pull requests, but I haven't really learned the git commands and processes outside of a basic tutorial video some months ago. On my to-do list :)
Thanks again
@aporlebeke fixed! Thanks. I have been using git for a long time and I still don't get it!
@jacob_salmela @donmontalvo Et al.
I used to be able to get a core install of GB 10.1 to ~20 packages and a fair amount of content with no nagging prompts, like @bpavlov's post mentioned above.
Jacob's script has a metric ton of content comparatively speaking! Is there an optimized subset of this stuff? Do they have to install in a certain order?
For you folks installing the GB content with 10.x - are you wrapping this huge list of stuff in a container and installing it all or what? Letting GB install an index all the content and then building a compiled package? (A la this post)
I prefer the packages to building a monolithic package, but Jacob's list is a little larger than I expected.
@JesseNCSD It does download a ton of stuff! I also just updated the script and added the Chinese loops from GarageBand 10.1.2.
It's been a while since I have installed it, but I do recall there being a certain order of them but I don't know the validity of that claim.
Oh and if you don't want all of the content, you could probably skip the Instrument lessons and the Logic content. That would reduce the overall size of everything.
Does anyone have a definitive list of the only packages required in order to prevent the download and install on first launch of GarageBand 10.1.2? I am pushing GB out to non-admin users, so I need to make sure they aren't prompted at launch, since it requires admin credentials. I'd rather not push out GBs and GBs of additional content, though, only what's absolutely necessary.
Thanks,
Eric
@etippett Eric, I gave up on using any scripts to do this and went with composer. How I push out all of my content (this would work with the basic content too) is install GarageBand then let it load and download what you need. Open Composer and drag in the following folders if they're there:
/Library/Application Support/GarageBand
/Library/Application Support/Logic
/Library/Audio/Apple Loops
/Library/Audio/Apple Loops Index
/Library/Audio/Impulse Responses
Not 100% sure if you need to bring in the index files also, but it only takes a few extra minutes to do it (you'll have to take a new and modified snapshot for that). This is what my Composer looks like when I grab the index. Index DMG with FUT and FEU
I do this with Logic and GB and have no issues with users being asked for passwords or to download anything. I outline my process here
Thanks, @jmahlman . I did end up figuring this out late yesterday. Here's another post where I detail the solution. I try to avoid Composer when possible, but it may be easier in this case!
Also, I checked out your script repository on GitHub; the Adobe RUM update one may prove very handy for me, so thanks for sharing!
Eric
@etippett here is the list of loops from 10.1.2 that I found:
https://github.com/jacobsalmela/adminscripts/commit/9d81d8276175e0a280e0e6c68122f20c909f91dc
@jacob_salmela : How are you determining what loops to download in your script? Like I mention in the post linked above, a fresh install of 10.1.2 from MAS is not downloading at first boot the packages you've listed.
This is the script I ran about a month ago that had everything. This was before the Chinese stuff was released later.
https://github.com/cwindus/garageband
@CasperSally Thanks. I've seen that too, but again, I'm not trying to download everything, only what is installed on first launch.
@etippett try running with the ./get_audio_content.py -y 2013 argument to get the basics. You might get some extra files, but you can ignore them pretty easily based on name.
@etippett I open GarageBand, download the new songs and when I see the prompt for the password to install, I look in
/var/folders/
to find all the package names.
@etippett Glad I can help.
That RUM updater is very basic so if you are better at scripting than me, feel free to share any additions ;)
To chime in with what i've been using, I've simply been augmenting packages from my 9.x and 10.x installs. As of 10.1.1, this is:
(Core content rollups, install order is important.)
1. MAContent10_GarageBandCoreContent_v3.pkg
2. MAContent10_GarageBandCoreContent2.pkg
3. MAContent10_GarageBandPremiumContent.pkg
4. MAContent10_GB_StereoDrumKitsAlternative.pkg
5. MAContent10_GB_StereoDrumKitsRock.pkg
6. MAContent10_GB_StereoDrumKitsRnB.pkg
7. MAContent10_GB_StereoDrumKitsSongWriter.pkg
8. MGBContentCompatibility.pkg
Then some packages that 10.1.1 started requesting:
- MAContent10_AssetPack_0048_AlchemyPadsDigitalHolyGhost.pkg
- MAContent10_AssetPack_0315_AppleLoopsElectroHouse1.pkg
- MAContent10_AssetPack_0324_AppleLoopsBluesGarage.pkg
- MAContent10_AssetPack_0325_AppleLoopsGarageBand1.pkg
- MAContent10_AssetPack_0354_EXS_PianoSteinway.pkg
- MAContent10_AssetPack_0371_EXS_GuitarsAcoustic.pkg
- MAContent10_AssetPack_0375_EXS_GuitarsVintageStrat.pkg
- MAContent10_AssetPack_0376_EXS_GuitarsWarmElectric.pkg
- MAContent10_AssetPack_0483_EXS_OrchWoodwindBasson.pkg
- MAContent10_AssetPack_0484_EXS_OrchWoodwindClarinetSolo.pkg
- MAContent10_AssetPack_0487_EXS_OrchWoodwindFluteSolo.pkg
- MAContent10_AssetPack_0489_EXS_OrchWoodwindOboeSolo.pkg
- MAContent10_AssetPack_0491_EXS_OrchBrass.pkg
- MAContent10_AssetPack_0501_EXS_OrchOrgan.pkg
- MAContent10_AssetPack_0503_EXS_ChoirChamberClassical.pkg
- MAContent10_AssetPack_0538_DrummerSticks.pkg
- MAContent10_AssetPack_0548_EXS_iOSInstruments.pkg
- MAContent10_AssetPack_0554_AppleLoopsDiscoFunk2.pkg
- MAContent10_AssetPack_0593_DrummerSoCalGBLogic.pkg
- MAContent10_AssetPack_0599_GBLogicAlchemyEssentials.pkg
I had not been installing the larger amount that jacob_salmela's script pulls (although it's a great resource to get lots of content).
I had not yet looked at what 10.1.2 adds to the above. I'll be curious to see how much of the stuff matches up with etippett's list.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.