acngfs(8)

πŸ’– acngfs(8) πŸ’–

okay bestie, gather round, because today we're talking about acngfs β€” a whole FUSE-based filesystem that makes HTTP-downloadable files just appear like they live on your local disk. yes, really. and the manual for it is called acngfs(8), written by Eduard Bloch. she's giving magic, she's giving "the internet but make it a folder", and honestly? we're obsessed. πŸ’…


✨ NAME ✨

acngfs β€” virtual file system for use with apt-cacher-ng πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

acngfs BaseURL MountPoint [ proxy=ProxyHost:ProxyPort ] [ cachedir=CachePath ] [ more_acng=settings] [FUSE Mount Options]

🌸 DESCRIPTION 🌸

okay so here's the vibe. acngfs is a FUSE based filesystem that represents files downloadable via HTTP as part of a local filesystem. and no, she's not trying to be a general-purpose HTTP filesystem β€” she was built for very specific purposes, okay? know her limits. she knows them too. πŸ™ˆ

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 a fast remote file system, this cache repository can optionally be specified as an 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. πŸ’«

pro tip from the manual: the directory levels of BaseURL and CachePath should match. πŸ‘‘

🌈 EXAMPLES 🌈

typical use may be to let apt/dpkg use package files 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

ate. no crumbs. πŸ”₯


πŸ’… OPTIONS πŸ’…

the command-line options supported by acngfs are:

  • BaseURL β€” the 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. pick a lane bestie, seriously.
  • ProxyURL β€” complete or simplified host and port specification of the proxy server, http://localhost:3142.
  • CachePath β€” 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 the apt-cacher-ng manual, chapter "Advanced configuration".
  • mountpoint β€” the directory representing the URL in the local filesytem. (yes, the manual really says "filesytem", we're keeping it, it's canon now 🫢)
  • --help β€” print a help summary and additional FUSE application options.
  • FuseOptions β€” various options for the FUSE subsystem to control filesystem behaviour. see --help output and FUSE documentation for more details.

πŸ¦‹ FILES πŸ¦‹

  • /usr/lib/apt-cacher-ng/acngfs β€” executable binary documented in this manual page. that's her. the moment. the icon. ✨

⭐ NOTES ⭐

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:

acngfs http://ftp.uni-kl.de/debian http://localhost:3142 /mnt/misc -o allow_root

see FUSE documentation for details about file permissions representation. πŸ“š


πŸ’€ BUGS πŸ’€

software is still experimental, use at your own risk! ⚠️ like, she's a work in progress, she's figuring herself out, respect the journey.

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. so yeah. blind descending only. we descend with our eyes closed, no cap. πŸ™ˆ

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. 😭


πŸ‘‘ SEE ALSO πŸ‘‘

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. πŸ“–


and that's the whole page, bestie. πŸŽ€ this was the acngfs manual, dated Juni 2008, and yeah the page footer just says acngfs and acngfs(8) again like a little echo β€” iconic, honestly. go mount something. πŸ’–πŸŒˆβœ¨