In Pacman 3, you can freeze any cache into a self contained machine independent "snapshot" which is itself also a cache. To see why you might want to do this, let's see some examples.
Go to a fresh working area and do
% pacman -snap BUThis may take a little while to do all the downloads, but when it's done, you will have a file called BU.snapshot in your current working directory. This is actually a directory with the same internal format as the new mirrors. It differs from a mirror in that you can check for updates, but you can't update a snapshot. Like mirrors, snapshots can be used as caches in every sense, so you can do
% pacman -lc ~MyName/foo.snapshotor
% pacman -get ~MyName/foo.snapshot:Pythonlist snapshots in cache list files (.caches files), etc. Just as with other types of caches, you can use a snapshot locally in your file system or remotely at a URL or via SSH or gsiftp.
Because installations are caches too, you can make snapshots from any software environment that you can fetch. For example, do
% pacman -fetch BU:Python BU:nEdit Pacman:Pacman % pacman -snap .Because fetching resolves all dependencies a snapshot made this way is guaranteed to be completely self contained (as long as all downloads are expressed in the Pacman language, of course).
Note that unlike the fetch example, the first example is not guaranteed to produce a self contained snapshot because the BU cache may not contain all of it's dependents. This feature let's you handle situations where you want to snapshot small caches without pulling in all potential downloads every time.