fuse - Filesystem in Userspace ChangeLog

HOWTO


# FUSE
# ====
# This one covers FUSE 2.*

# Slackware 13.37, 14.0, 14.1: fuse 2.8.5
# Slackware 14.2: fuse 2.9.5
# Check 'patches' for updates
#
# Slackware-current (will be 15.0) includes a 'fuse3' package

# Prerequisites:
!! # Ninja
!! # Python 3.x (for Meson and to test it)
# Linux kernel >= 2.6.14 with FUSE enabled
# udev

# Kernels > 2.6.14 already contain FUSE support, so the kernel module in the
# FUSE package will not be compiled if you have a newer kernel installed.

# See the README if you use a 2.4.x kernel

# If you ever want to uninstall FUSE, or if you want to clean up files
# from old versions before installing a new one, skip down to the bottom.
# A previous update to this HOWTO (in 2011) let FUSE install in to
# /usr/local, but I use the /use prefix now to match Slackware's package.

!! # Install Meson
!! su -c "pip3 install meson"

# Get it
cd
test -f installed/fuse-2.9.9.tar.gz && mv installed/fuse-2.9.9.tar.gz .
test ! -f fuse-2.9.9.tar.gz &&
wget https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/\
fuse-2.9.9.tar.gz

# Verify tarball w/ sha256sum:
echo "d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4\
b5  fuse-2.9.9.tar.gz" | sha256sum -c

# Verify tarball w/ gpg:
( gpg --list-keys 3C4E599F > /dev/null 2>&1 || gpg --recv-keys 3C4E599F ) &&
wget -nc https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/\
fuse-2.9.9.tar.gz.asc &&
  gpg --verify fuse-2.9.9.tar.gz.asc &&
   rm fuse-2.9.9.tar.gz.asc

# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "fuse-[12].*" -exec rm -r {} \;
tar xzvf ~/fuse-2.9.9.tar.gz
cd fuse-2.9.9
test $UID = 0 && chown -R root:root .

# For info about using it, see ./README.md, the kernel module's readme:
#   /usr/src/linux/Documentation/filesystems/fuse.txt
# and the Wiki:
#   https://github.com/libfuse/libfuse/wiki

# Everything is set up by default to install an init script as
# /etc/init.d/fuse and run update-rc.d (if it exists, which it doesn't),
# to create the start/stop symlinks.  In Slackware, typically
# /etc/init.d is a symlink to the /etc/rc.d/init.d directory.  So, as long
# as you've got Slackware's /etc/rc.d/rc.sysvinit script, and it's
# executable, and you have at least the following directories created:
#   /etc/rc.d/init.d
#   /etc/rc.d/rc0.d
#   /etc/rc.d/rc1.d
#   /etc/rc.d/rc6.d
# ...and have the /etc/init.d symlink created, then you should be fine with
# 'make install' below.  Otherwise you may want to look in to changing
# configure.ac or the Makefile(s).  ...or remove /etc/init.d/fuse and
# /etc/init.d (if empty) and copy util/init_script as /etc/rc.d/rc.fuse,
# which would be run by /etc/rc.d/rc.S on boot-up if it's executable.

# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --libdir=/usr/lib64 --mandir=/usr/man

# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --mandir=/usr/man

# Build it
make

# Become root to install it
su

# Remove the Slackware package, if there is one
test -x /sbin/removepkg && /sbin/removepkg fuse

# Install it
make install
ldconfig

# If you have the /etc/rc.d/init.d/fuse script, make sure the
# start/stop symlinks are set up.  This requires a Slackware with the
# /etc/rc.d/rc.sysvinit script.  If you don't have that, make it
# /etc/rc.d/rc.fuse instead and run that out of rc.local
test -x /etc/rc.d/init.d/fuse &&
( cd /etc/rc.d
   mkdir -p init.d rc0.d rc1.d rc6.d
   test ! -e /etc/init.d && ln -sf /etc/rc.d/init.d /etc/init.d
   ( cd rc1.d ; ln -sf ../init.d/fuse S34fuse )
   ( cd rc0.d ; ln -sf ../init.d/fuse K41fuse )
   ( cd rc6.d ; ln -sf ../init.d/fuse K41fuse ) )

# If FUSE is set up as a module, load the module manually, or let
# udev do it automagically
test -f /lib/modules/$(uname -r)/kernel/fs/fuse/fuse.ko &&
/sbin/modprobe fuse

# Become your non-root user again
exit

# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/fuse-[12].*.tar.*
mv fuse-2.9.9.tar.gz installed/


# If you ever want to uninstall FUSE, this should do it:
# ('make uninstall' or recently 'ninja uninstall' as root in the
# configured source directory should do it, the rest is just in case or
# if you don't have the source)
cd
su
umount -a -t fuse
rmmod fuse
test -x /sbin/removepkg && /sbin/removepkg fuse
test -d src/fuse-* &&
( cd src/fuse-2.99 ; make uninstall )
( cd /etc/rc.d/
  rm -f rc1.d/S34fuse rc0.d/K41fuse rc.d/rc6.d/K41fuse )
( cd /usr/bin/
  rm -f fusermount ulockmgr_server)
( cd /usr/include/
  rm -f fuse.h ulockmgr.h )
test -d /usr/include/fuse && rm -r /usr/include/fuse
( cd /usr/lib/
  rm -f libfuse.* libulockmgr.* )
test -d /usr/lib64 &&
( cd /usr/lib64/
   rm -f libfuse.* libulockmgr.* )
( cd /usr/man/man1/
  rm -f fusermount.1 ulockmgr_server.1 )
rm -f /etc/init.d/fuse \
/etc/udev/rules.d/99-fuse.rules \
/sbin/mount.fuse \
/usr/lib/pkgconfig/fuse.pc \
/usr/lib64/pkgconfig/fuse.pc \
/usr/man/man8/mount.fuse.8 \
/usr/sbin/mount.fuse \
## Note: libfuse is part of the aaa_elflibs|aaa_libraries package, so you'll
# still have that in /lib
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "fuse-*" -exec rm -r {} \;
rm -f ~/installed/fuse-*.tar.*

List of HOWTOs

Web page itself last updated: 2023-12-20 8:06pm (EDT -0400)
HOWTO last updated: 2021-08-08 1:21am
Copyright © 2001-2024 Jason Englander. All Rights reserved.
[HTML5]