Homebrew: How to Clear the Cache

Updated: January 28, 2024 By: Guest Contributor Post a comment

Introduction

Homebrew, the package manager for macOS (and Linux), is an invaluable tool for developers and power users alike, allowing them to install, update, and manage software with ease. Over time as you install and update packages, Homebrew can accumulate a large cache, which can take up precious disk space. Clearing the Homebrew cache can free up space and, in certain cases, resolve issues with individual packages. In this tutorial, we will guide you through the steps on how to clear your Homebrew cache, from basic commands to more advanced housekeeping tasks.

Understanding Homebrew’s Cache

Before diving into how to clear the cache, it is important to understand what Homebrew caches. Typically, Homebrew stores downloaded bottles (binary packages), source tarballs, and intermediate build files in the cache. This cache supports the quick reinstallation of packages and helps avoid unnecessary re-downloads. However, if left unchecked, this cache can grow and consume a significant amount of disk space.

Basic Cache Cleaning

Let’s start with the most straightforward way to clear the cache.

brew cleanup

Running this command will remove outdated versions of installed formulas and any stale downloads. For example:

$ brew cleanup
Removing: /usr/local/Cellar/foo/01... (1,024 files, 128M)
Removing: /usr/local/Cellar/bar/02... (512 files, 64M)
...additional output omitted...
This operation has freed approximately 192M of disk space.

List Cache Contents

If you want to see what’s currently in your cache directory before cleaning it, you can use:

ls $(brew --cache)

This will output a list of files and directories within the cache directory.

Clear Outdated Cache Files

To remove outdated cached files while keeping the latest versions in the cache, use:

brew cleanup -s

This option scrubs the cache, including downloads for outdated versions and the outdated cache. Note that it does not touch the cache for installed formulations.

Dry-run Cleanup

If you want to see what brew cleanup would do without actually deleting any files, perform a dry-run with the --dry-run or -n options:

brew cleanup -n

This command will list all the files that would be removed if the cleanup command were to be run.

Remove Specific Cache Files

In some cases, you might want to remove cached files for a specific formula. Use the following command to delete cache files associated with a formula:

brew cleanup 

Replace formula with the name of the Homebrew package whose cache you want to clear. For example:

$ brew cleanup [email protected]
Removing: /Users/yourusername/Library/Caches/Homebrew/downloads/.../[email protected]... (100M)
Pruned 0 symbolic links and 1 directories from /usr/local

Advanced Homebrew Cache Management

Beyond cleaning up outdated and specific formula caches, Homebrew allows for more refined cache management.

Finding the Cache Directory

First, determine where the cache directory is located with:

brew --cache

This will return the path to the cache directory where Homebrew stores all its cache files.

Manual Cache Removal

You can also navigate manually to the cache folder and remove files if you need fine-tuned control. However, this is not recommended unless you are fully aware of the consequences—deleting the wrong files could require re-downloading many packages. Proceed with caution and preferably rely on brew cleanup.

Cleaning Up Old Versions of Packages

Running the earlier mentioned cleanup commands will not only clean cache but also the old versions of packages you have. They will no longer be linked to your system, but the files may remain unless you run the following:

brew cleanup --prune-prefix

This command will remove everything in Homebrew’s prefix (default: /usr/local) that are not needed, including symlinks, directories, and the older versions of packages.

Conclusion

Concluding, regularly clearing your Homebrew cache can help maintain your system’s performance and reduce clutter. By understanding and utilizing the cache management commands covered in this tutorial, you’ll be able to keep your development environment running smoothly and your disk usage in check.