The Package Manager maintains a global cache for registry data and uncompressed packages. The global cache includes subsidiary caches, each serving a different purpose. The Package Manager stores the global caches in a default location, which you can override.
You might want to override the cache location for several reasons:
By default, the Package Manager uses the following folder structure for the global cache:
<global-cache-root>
├── npm
│ └── <registry data (package metadata and tarballs)>
├── packages
│ └── <uncompressed contents of package tarballs>
└── git-lfs (if enabled)
└── <downloaded Git LFS files>
For information on the default location of the global cache root, refer to global cache.
Note: The Package Manager maintains a global cache separately from the asset packageA collection of files and data from Unity projects, or elements of projects, which are compressed and stored in one file, similar to Zip files, with the .unitypackage
extension. Asset packages are a handy way of sharing and re-using Unity projects and collections of assets. More info
See in Glossary cache. For information on overriding the default location for the asset package cache, refer to Customize the asset package cache location.
To override the default location of the global cache root, you can use the following methods:
cacheRoot
property in a user configuration file. If you want to set the user configuration file manually, refer to Using the user configuration file.UPM_CACHE_ROOT
environment variable and the cacheRoot
property, Package Manager uses the location in the UPM_CACHE_ROOT
environment variable.UPM_NPM_CACHE_PATH
), the uncompressed packages cache (UPM_CACHE_PATH
), or the Git LFS cache (UPM_GIT_LFS_CACHE_PATH
), Package Manager uses the location specified by the environment variable, regardless of where the global cache root is.UPM_ENABLE_GIT_LFS_CACHE
) without explicitly setting its path (UPM_GIT_LFS_CACHE_PATH
), Package Manager uses the git-lfs
folder under the global cache root as its location.To use the Preferences window to override the default location of the global cache, follow these steps.
Use one of the following methods to open the Preferences window:
Select the Package Manager category.
Under Packages, open the menu beside Cache Location .
Choose Change Location.
Choose a new location for the global cache.
You can manually edit the user configuration file to override the location of the global cache root. Although a global configuration file exists, you can’t set the global cache location in the global configuration file.
Follow these steps to edit the user configuration file:
Locate the .upmconfig.toml
user configuration file. To find the file location, refer to Configuration files. If the file doesn’t exist, create an empty text file.
Add the cacheRoot
key and set its value as an absolute path to a custom location. Important: When setting Windows paths in TOML files, use forward slashes (/
) or double backslashes (\\
). Don’t use single backslashes (\
) because they’re special characters which mark escape sequences and can cause TOML parsing errors.
Windows example
cacheRoot = "E:\\Unity\\cache"
macOS and Linux example
cacheRoot = "/dev/external/shared/Unity/cache"
You don’t need to restart the Unity Editor or the Hub after setting the cacheRoot
key for the change to take effect.
In scenarios that involve automation or continuous integration, it’s less practical and more error prone to configure settings in the user configuration file or the Preferences window. In such scenarios, you might consider using environment variables to configure settings for the global cache and its subsidiary caches. The following environment variables are available:
Environment variable: | Description: |
---|---|
UPM_CACHE_ROOT |
Specify the location of the global cache (the root folder containing the registry data and uncompressed packages caches). |
UPM_NPM_CACHE_PATH |
Specify the absolute path to the location where you want Package Manager to store package metadata and tarballs. By default, this is the npm subdirectory under the global cache root. |
UPM_CACHE_PATH |
Specify the absolute path to the location where you want Package Manager to store the uncompressed contents of package tarballs. By default, this is the packages subdirectory under the global cache root. |
UPM_ENABLE_GIT_LFS_CACHE |
Specify any value except empty ("") to enable the Git LFS cache. By default, Package Manager uses the git-lfs subdirectory under the global cache root, unless you specify a different path using the UPM_GIT_LFS_CACHE_PATH environment variable. |
UPM_GIT_LFS_CACHE_PATH |
Specify the absolute path to the location where you want Package Manager to store the Git LFS cache. By setting this path, you automatically enable the Git LFS cache. |
Important: Follow these guidelines when you use this method:
For information on setting environment variables, refer to the documentation for your operating system. For an introduction to environment variables, refer to https://en.wikipedia.org/wiki/Environment_variable.