acngfs - Virtual file system for use with apt-cacher-ng
acngfs BaseURL MountPoint [ proxy=ProxyHost:ProxyPort ] [ cachedir=CachePath ] [ more_acng=settings] [FUSE Mount Options]
acngfs is a FUSE based filesystem which represents files downloadable via HTTP as part of a local filesystem. It has been developed for very specific purposes and is not intended to be a general purpose HTTP filesystem.
The main use case for acngfs is a situation where:
- The files must not be stored on extra space on the user's system (e.g. because of insufficient disk space to make a temporary copy of downloaded files)
- Local programs (e.g. apt, dpkg) need to read the packages from a local filesystem
- When reading, certain files might need to be fetched in background (or updated) and this process needs to be triggered somehow
- Network latency and speed are not relevant, e.g. accessing apt-cacher-ng via localhost connection
- The proxy service can work efficiently with many requests for small data ranges (apt-cacher-ng, for example)
- Pattern matching on paths is sufficient to distinguish file and directory names
If the apt-cacher-ng instance happens to run on the same system as acngfs or its cache repository is mounted via fast remote file system, this cache repository can be optionally specified as alternative source path. In this cache, acngfs will attempt to read files directly from this filesystem where possible, reducing network latency and avoiding additional load of apt-cacher-ng server. The directory levels of BaseURL and CachePath should match.
Typical use may be to let apt/dpkg use package file like they are present on the local filesystem so there is no need to download them. In sources.list, the source appears as a file:/ type URL, like:
deb file:/var/local/acngfs_debian unstable main contrib
and the filesystem backend is prepared with a command like:
/usr/lib/apt-cacher-ng/acngfs http://ftp.uni-kl.de/debian proxy=cacheBox:3142 /var/local/acngfs_debian -o allow_root
or for a locally installed apt-cacher-ng with common Debian cache repository stored in /var/cache/apt-cacher-ng/debrep:
/usr/lib/apt-cacher-ng/acngfs http://ftp.uni-kl.de/debian /var/cache/apt-cacher-ng/debrep proxy=localhost:3142 cachedir=/var/local/acngfs_debian -o allow_root
The command-line options supported by acngfs are:
- Remote mirror to be used as real source, like http://ftp2.de.debian.org/debian. NOTE: the mirror subdirectory part (like debian) should be added either to BaseURL or to the path in sources.list, not to both.
- Complete or simplified host and port specification of the proxy server, http://localhost:3142.
- Optional hint, a directory path pointing to the internal cache subdirectory of apt-cacher-ng where it stores data downloaded from BaseURL. For more details see apt-cacher-ng manual, chapter "Advanced configuration".
- Directory representing the URL in the local filesytem.
- Print a help summary and additional FUSE application options
- Various options for the FUSE subsystem to control filesystem behaviour. See --help output and FUSE documentation for more details.
- Executable binary documented in this manual page
Permissions of the files are important when using mounting when sharing data with other users (including root!). To mount as user and let root use the package management tools (apt, dpkg), one may need to use FUSE options like in the following example:
See FUSE documentation for details about file permissions representation.
Software is still experimental, use at your own risk!
There are natural limitations on capabilities of the FS: no directory browsing is allowed (only blind descending), permissions of files are inherited from the mount point as well as other properties of the filesystem.
Should be used with apt-cacher-ng version 0.2pre2 or newer; otherwise it could flood log files with many requests from small file chunks.
For more information on Apt-Cacher NG, read the User Manual which can be found either in the doc/pdf directory of the software source package or installed in the documentation directory of apt-cacher-ng by your distribution.