Macaroni
Automated System Maintenance for Mac OS X
What is Macaroni?

Macaroni is a utility which automates Mac OS X system maintenance tasks. It ensures that these tasks are run on a regular schedule (or as close as possible) regardless of when your Mac is or isn't turned on.

Macaroni tells me it can't run on my Mac, and says to contact the developer.

This is because you have an Intel Mac and are trying to use an old version of Macaroni on it. Intel Macs require at least Macaroni 2.0.7, which is a free upgrade to registered owners of earlier versions of Macaroni. You can download Macaroni using the link in the sidebar of this page.

How do I upgrade to a newer version of Macaroni?

It's very simple:

  1. Install the new version.
  2. There is no step 2.

Some things that you do not need to do that people often assume are necessary:

  • Uninstall the old version
  • Install every update in order, if you're several versions behind
  • Restart the computer
  • Anything else not described in step 1 above

I try to make it as simple as possible, so no special steps are necessary. Don't make things hard on yourself, it's covered.

What maintenance does Macaroni do?

When you install Macaroni, it has five standard maintenance jobs, described below. You can also add your own custom maintenance jobs. The standard Macaroni maintenance jobs are:

  • Daily Unix maintenance: Mainly concerned with cleaning up old temporary files created by the system and then left in place, such as those found in Unix's "tmp" directories. This job also backs up the Netinfo database, and does several other things such as maintaining system log files and restarting the system log. Macaroni's version of this job additionally cleans up old printer spool files left behind by CUPS, old Mac OS X installer logs, and old crash logs (if any), and provides more information about what it is doing and how much space has been saved.

    Daily maintenance usually takes just one or two minutes to run. This job does not require any configuration.

  • Weekly Unix maintenance: Does most of its work in rebuilding two system databases, the "locate" database used for fast file searches (with Unix's "locate" command or Mac OS X tools like Locator), and the "whatis" database used when searching documentation. Also does the same log-file and system-log maintenance as the daily maintenance job.

    Weekly maintenance can take several minutes. The time varies depending on how many files are on your hard drive. This job does not require any configuration.

  • Monthly Unix maintenance: The least critical of all maintenance done by Macaroni, this job manages log files and the system log, and also prints login accounting information for the past month.

    Monthly maintenance generally takes under a minute to run. This job does not require any configuration.

  • Mac OS X Repair Permissions: Runs the Mac OS X "repair permissions" process. Problems with Unix-style permissions can cause a variety of sometimes-puzzling problems on Mac OS X, so it's useful to fix things up once in a while to keep your Mac running smoothly. This is the same maintenance that you could run using Mac OS X's Disk Utility. In fact, Macaroni uses the command-line version of Disk Utility to do this repair. The only difference between using Macaroni to do this and using Disk Utility is that Macaroni runs the repair automatically, on a regular schedule.

    Permission repair can take a while-- perhaps as long as 10-20 minutes. This job does not require any configuration.

  • Mac OS X Remove Localized Files: Mac OS X and many Mac OS X applications include files that allow them to be used by people who speak different languages. Even if you choose not to install "extra" languages, your Mac usually has several alternate languages available. And every time you install or update an application, you get more of them. For example, the iTunes installer includes Chinese (both Taiwan and mainland), Danish, Dutch, English, Finnish, French, German, Italian, Korean, Japanese, Norwegian, Portuguese, Spanish, and Swedish versions.

    If you don't speak some of those languages, you'll never use those files (and never miss them), so you can safely remove them and save disk space. There are other applications that can do this, but to be really useful you'll need to run them again every time you install a new application or update Mac OS X.

    These files can take more space than you might guess. Many Macaroni users report saving hundreds of MB (sometimes over 1GB) the first time Macaroni runs this job.

    Removing localized files can take a while, mostly taken up in looking for the files, and will take longer on larger drives. This job requires that you configure it, so that you can tell it which languages you want to remove.

When do maintenance jobs actually run?

When Macaroni is first installed, the normal schedule is as follows:

Maintenance JobInitial Schedule
Daily Unix maintenance Every day
Weekly Unix maintenance Once a week on Monday
Monthly Unix maintenance Once a month on the 15th of the month
Mac OS X Repair Permissions Once a week on Sunday
Mac OS X Remove Localized Files Once a month on the 10th of the month

You can change the schedule of any of these jobs.

The exact time when the job runs can vary. This is because Macaroni only runs when the system is on, and because it tries to wait until a convenient time, so as not to get in your way.

Maintenance jobs can only run when the Mac is running. "Running" in this context means on and awake, so even though a sleeping Mac is not "off", it's also not running.

When the Mac is running, Macaroni periodically checks to see if a job needs to be run, meaning that it's either due or overdue. When this happens, it starts up the job in the background and runs it to completion. This happens regardless of who is logged in to the Mac. It also happens even if nobody is logged in, as long as the Mac is running.

But there are a couple of special situations to keep in mind. Some maintenance tasks can keep the Mac very busy while they're running. Macaroni tries to prevent this from becoming a problem, in two ways:

  1. Waiting for idle time. Macaroni tries to wait until the system is idle, similar to the way a screen saver waits. If a job is due, but you're in the middle of working on something, Macaroni will hold back until it looks like you've taken a break for a few minutes. Normally Macaroni waits until the Mac has been idle for at least 5 minutes.
  2. Not draining batteries. If you're using a PowerBook or an iBook, Macaroni won't run scheduled jobs unless the Mac is plugged in. This keeps your battery life looking good. If you'd prefer that Macaroni not wait in these situations, you can change Macaroni's configuration in the Macaroni preference pane, described on the usage page.
What gets installed where?

Because Macaroni works closely with Mac OS X, it needs to install files in several locations. This differs from most Mac OS X applications but is necessary for Macaroni to function. These locations are as follows:

  • Preference Pane. In order to appear in System Preferences, Macaroni installs its preference pane in /Library/PreferencePanes/Macaroni.prefPane.
  • Startup Item. Macaroni installs itself as a Mac OS X startup item, so that it will run when your Mac starts up. Note that a Startup Item is different from a Login Item. Macaroni will not show up in your account's list of login items. In order to work as a startup item, Macaroni installs some files in /Library/StartupItems/Macaroni.
  • Support Items. Macaroni's background application is not part of the preference pane, and so it's installed in a different location. The standard location for this sort of thing on Mac OS X is the "application support" folder. Macaroni puts its files in a folder at /Library/Application Support/Macaroni/. It also creates a symbolic link (the Unix equivalent of a Mac alias) at /Library/Application Support/MacaroniTool.
Why won't the "remove localized files" job remove US English files?

The "remove localized files" job can remove language-specific files for any language supported by Mac OS X, with the exception of US English files. The reason US English files are not removed is that Mac OS X requires these files in order to work properly. If Macaroni removed US English files, Mac OS X would not work properly anymore.

How can I restore languages if I've configured Macaroni to remove them?

If you accidentally configured Macaroni to remove a language that you need, you can get the language back without needing to reinstall Mac OS X. Follow the instructions below that correspond to the version of Mac OS X you are using.

If you are using Mac OS X 10.4 (Tiger)

click for a larger view

Insert your Tiger install DVD. At the top level of the DVD is an item called "Optional Installs". Double-click it

This will start up an installer. Step through the installer as normal. After selecting the hard drive to install on, you'll see a window in which you choose what to install

If you are using Mac OS X 10.3 (Panther)

click for a larger view

Insert disk 2 from your Panther install CDs into your computer. In the "Packages" folder on the disk, find a file named Languages.mpkg. Double-click this file to launch the Language Translations installer for Panther. If you do an "Easy" install, this will install all languages included with Panther. If you only want to install one or two languages, you can customize the install process using the installer's "customize" button.

After pressing this button you'll be able to choose which languages to install

If you are using Mac OS X 10.2 (Jaguar):

Insert disk 1 from your Jaguar install CDs into your computer. In the "Optional Installs" folder on the CD you'll see one installer for each language. Choose the language you want to restore, and double-click the installer for that language.

For example, if you want to restore French language files, double-click on "French Localized Files".

Is Macaroni's repair permission job the same as Apple's Disk Utility application?
Macaroni uses the command-line version of Disk Utility to repair permissions, so in fact both Macaroni and Disk Utility make the same repairs.
How do I register my copy?
Once you have a serial number, you can register your copy of Macaroni as follows:
  1. Run System Preferences, and click the Macaroni icon near the bottom of the window.
  2. In the Macaroni window, click "About", and then "Register".
  3. System Preferences will ask you to validate yourself as an administrator of your Mac. Enter your username and password for your Mac.
  4. Enter your registered name and serial number in the registration window (you can copy and paste it), and save.
How do I uninstall ?

If you are using Macaroni 2.1: Macaroni has an "uninstall" button near the bottom of its window. Click this button to uninstall Macaroni.

If you are using Macaroni 2.0.8 (or older): The Macaroni disk image includes both an install package and an uninstall application. Run the uninstall application to remove Macaroni. If you don't have the Macaroni disk image, you can download a new copy and use the uninstaller included with it.

But if you didn't like Macaroni, please let us know why.

Why are most of the buttons greyed out? How can I use them?

In order to use these features, you first need to click the lock icon at the lower-left corner of the window and supply an administrator password. This is because you can't make changes to the system unless you're an administrator of the computer.

Macaroni stopped working!
There are two common reasons for this:
  1. If you just upgraded your Mac to a new version of Mac OS X, you may need to re-run the Macaroni installer. Some Mac OS X upgrades have a side-effect of disabling Macaroni, and reinstalling Macaroni is the easiest way to fix this. Upgrading to Tiger (Mac OS X 10.4), Panther (Mac OS X 10.3), or Jaguar (Mac OS X 10.2) for the first time will cause this problem, but reinstalling Macaroni will restore normal operation.
  2. Usually when it appears Macaroni has stopped working, it's related to Macaroni's wait-for-idle-time feature. Some of the maintenance tasks can keep your Mac very busy while they're running, so Macaroni tries to wait for system idle time before running anything. It's similar to the way a screen-saver might be activated. But if the Mac is not on and idle for a little while, the tasks may not get run when expected. If this is the case, there are a couple of ways to get things going again:

    • Just leave the Mac on for a little while while you're not doing anything, or
    • Change the configuration so that Macaroni will not wait for idle time before running. This is illustrated on the Macaroni "Usage" page in the section "Schedule Restrictions".