FUSE for macOS
September 27, 2017 | macOS Mac OS X CephIn this post, I document how I installed FUSE for macOS on my iMac.
1) There was an old installation of MacFUSE on the iMac. Remove MacFUSE & NTFS-3G
$ sudo /System/Library/Filesystems/ntfs-3g.fs/Support/uninstall-package.sh
$ pkgutil --pkgs | grep fuse
com.google.macfuse
com.google.macfuse.core
$ kextstat | grep fuse
(no output)
$ pkgutil --files com.google.macfuse.core
$ pkgutil --files com.google.macfuse
$ sudo /Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh
MacFUSE Uninstaller: Can not find the Archive.bom for MacFUSE Core package.
$ cd /Library/Filesystems
$ ls
NetFSPlugins/ fusefs.fs/
$ sudo rm -rf fusefs.fs/
$ cd /Library/Frameworks/
$ sudo rm -rf MacFUSE.framework/
$ sudo pkgutil --forget com.google.macfuse.core
Forgot package 'com.google.macfuse.core' on '/'.
$ sudo pkgutil --forget com.google.macfuse
Forgot package 'com.google.macfuse' on '/'.
2) Reboot.
3) Install FUSE for macOS, successor to MacFUSE.
$ pkgutil --pkgs | grep -i fuse
com.github.osxfuse.pkg.Core
com.github.osxfuse.pkg.PrefPane
$ pkgutil --files com.github.osxfuse.pkg.PrefPane
...
usr/local/include/osxfuse/fuse/fuse.h
usr/local/include/osxfuse/fuse/fuse_common.h
usr/local/include/osxfuse/fuse/fuse_common_compat.h
usr/local/include/osxfuse/fuse/fuse_compat.h
usr/local/include/osxfuse/fuse/fuse_darwin.h
usr/local/include/osxfuse/fuse/fuse_lowlevel.h
usr/local/include/osxfuse/fuse/fuse_lowlevel_compat.h
usr/local/include/osxfuse/fuse/fuse_opt.h
usr/local/include/osxfuse/fuse.h
usr/local/lib/libosxfuse.2.dylib
usr/local/lib/libosxfuse.dylib
usr/local/lib/libosxfuse.la
usr/local/lib/libosxfuse_i64.2.dylib
usr/local/lib/libosxfuse_i64.dylib
usr/local/lib/libosxfuse_i64.la
...
4) Install and test SSHFS.
$ pkgutil --pkgs | grep -i ssh
com.github.osxfuse.pkg.SSHFS
$ pkgutil --files com.github.osxfuse.pkg.SSHFS
usr
usr/local
usr/local/bin
usr/local/bin/sshfs
usr/local/share
usr/local/share/man
usr/local/share/man/man1
usr/local/share/man/man1/sshfs.1
$ otool -L /usr/local/bin/sshfs
/usr/local/bin/sshfs:
/usr/local/lib/libosxfuse_i64.2.dylib (compatibility version 10.0.0, current version 10.3.0)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.7)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
$ mkdir /tmp/ssh
$ sshfs p:/var/www /tmp/ssh -ocache=no -onolocalcaches -ovolname=ssh
$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
p:/var/www 492Gi 20Gi 447Gi 5% 101971 32666029 0% /private/tmp/ssh
$ umount /tmp/ssh
ToDo
If I have some time, a fun exercise will be to port ceph-fuse to FUSE for macOS.
We note in passing that there is CephFS Client on Windows based on Dokan 0.6.0.