• Yes, Munki’s makecatalogs runs on Linux

    You can’t run all of Munki‘s admin tools on Linux, because some of the things the tools use involve Mac-specific tools, which is why even Munki admins who host their Munki servers on a Linux server will use a Mac for things like munkiimport. You can, however, run makecatalogs on Linux, though. Here’s just a…

  • Using AutoPkg to distribute and test Munki 4 (or any new Munki version) in prerelease

    10 December, 2019 update: Munki 4 is now an official (not pre-) release, so the below instructions are for when the next version is in prerelease… 25 November, 2019 (original post) As of this writing, Munki 4 is in the late stages of testing (its current on release candidate 1), so if you want to…

  • Forcing updates to Google Chrome using Chrome preferences / a Chrome profile

    Why use Chrome relaunch notification instead of Munki I’m a huge fan of using Munki to patch software on macOS, but Munki is generally polite—it usually won’t kill an application while the user is using it. There is an option in Munki to force an install after a certain date, but that will log the…

  • Setting up Reposado without downloading Apple update pkgs

    Reposado allows you to set up your own local repo of Apple software updates. This can be handy if you want to control the flow of updates (having a testing branch, for example, and then promoting items from testing to production). With Apple deprecating custom catalog URLs in Catalina (they still work for now, though),…

  • Munki hack: force uninstall after a certain date

    Munki has an option to force install by a certain date (specifically, using the force_install_after_date key), but it doesn’t do a force uninstall after a certain date. You can make an item a managed uninstall, which means Munki will uninstall it when possible, but if that requires a logout or reboot, you don’t know when…

  • Using Munki to ignore Catalina upgrade in macOS

    Update: Apple has deprecated the –ignore flag, so this probably will never work again. Apple used to make you go out of your way to download an OS upgrade. Then, Apple started having those OS upgrade installers auto-download to the /Applications folder. Then Apple made it so OS upgrades appeared as regular updates. For Mac…

  • Scripting changing the user picture in macOS

    Sometimes, you may want to programmatically set a default user picture (with the option for the user to change it later to a picture of her own choice). You used to be able to delete the JPEGPhoto attribute and just add in a Picture attribute, but that seems to have broken somewhere between October 2018…

  • The 12 Days of Christmas… or any countdown song

    Loops are a big part of programming, because one of the benefits of programs is that they can automate repetitive tasks for humans. If we were to type out the complete lyrics to “The 12 Days of Christmas,” we would end up having to do a lot of typing! And it wouldn’t be fun typing—it…

  • Generating a random passphrase

    Disclaimer I’m not going to go into all the politics of passwords. Users are always trying to balance security with convenience. The point of this tutorial is not to say “This is how you generate the best password.” It’s more like “If you want to generate a random passphrase, this is one way to do…

  • Making a Rock, Paper, Scissors game in Python

    Before you code, figure out what you’re trying to do with the code A brief note on codeUsing comments in code Expanding shorthand logic Considering another approach No one right way to approach problems Let’s actually start writing some code Don’t trust user input Picking a choice at random Comparing values with if/elif/else Extra Credit…