FUSE (Filesystem in Userspace) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel. Fuse also aims to provide a secure method for non privileged users to create and mount their own filesystem implementations.
![[Note]](../images/note.png)
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://github.com/libfuse/libfuse/releases/download/fuse-3.16.2/fuse-3.16.2.tar.gz
Download MD5 sum: b00bf08b27ead4a9411578777e94a1cc
Download size: 14 MB
Estimated disk space required: 222 MB (with tests and documentation)
Estimated build time: 0.2 SBU (add 0.3 SBU for tests)
Doxygen-1.9.8 (to rebuild the API documentation), pytest-7.4.3 (required for tests), and looseversion (for tests)
Enable the following options in the kernel configuration and recompile the kernel if necessary:
File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS]
Character devices in userspace should be enabled too for running the tests:
File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS] <*/M> Character device in Userspace support [CUSE]
Install Fuse by running the following commands:
sed -i '/^udev/,$ s/^/#/' util/meson.build && mkdir build && cd build && meson setup --prefix=/usr --buildtype=release .. && ninja
The API documentation is included in the package, but if you have Doxygen-1.9.8 installed and wish to rebuild it, issue:
pushd .. && doxygen doc/Doxyfile && popd
To test the results, issue the following commands (as the root user):
python3 -m venv --system-site-packages testenv && source testenv/bin/activate && pip3 install looseversion && python3 -m pytest && deactivate
The pytest-7.4.3 Python
module is required for the tests. One test named
test_cuse will fail if the
CONFIG_CUSE configuration item was not enabled
when the kernel was built. One test,
test/util.py, will output a warning due to the usage
of an unknown mark in pytest.
One test named
test_notify_inval_entry[True-expire_entries]
may fail under certain circumstances.
Now, as the root user:
ninja install &&
chmod u+s /usr/bin/fusermount3 &&
cd .. &&
cp -Rv doc/html -T /usr/share/doc/fuse-3.16.2 &&
install -v -m644 doc/{README.NFS,kernel.txt} \
/usr/share/doc/fuse-3.16.2sed ... util/meson.build: This command disables the installation of a boot script and udev rule that are not needed.
--buildtype=release: Specify a buildtype
suitable for stable releases of the package, as the default may
produce unoptimized binaries.
Some options regarding mount policy can be set in the file
/etc/fuse.conf. To install the file run the
following command as the root
user:
cat > /etc/fuse.conf << "EOF"
# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000
# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
#user_allow_other
EOFAdditional information about the meaning of the configuration options are found in the man page.