ipfs/kubo

Installing OSX FUSE (for Mac OS X)

jbenet opened this issue · 12 comments

old version kernel panic warning

Older versions of OSX FUSE (for Mac OS X) may kernel panic (it's bitten multiple of us already).
If you're on OSX, please make sure you have OSX FUSE 2.7.0+

Installing OSX FUSE

  • from binary distribution
  • from brew

from binary distribution

  1. Go to http://osxfuse.github.io
  2. Download + Install the package.

from brew

Simply:

brew update && brew install osxfuse

Note: conflicting installs with brew

If you receive the following error:

osxfuse: osxfuse is already installed from the binary distribution and conflicts with this formula.

Uninstall OSX FUSE binary from System Preferences before attempting to brew install osxfuse again.


Closing this, but keeping as issue in case we need to discuss further.

Btw, in the future we should have a packaged distribution for ipfs, and if so we may have to bundle (and upgrade) FUSE.

this looks great!

On Mac OS 10.11.6, when I run fuse mount, I get the following:

Error: OSXFUSE version 3.5.3 not supported.

OSXFUSE versions <2.7.2 are known to cause kernel panics!
Please upgrade to the latest OSXFUSE version.
It is recommended you install it from the OSXFUSE website:
    http://osxfuse.github.io/

For more help, see:
    https://github.com/ipfs/go-ipfs/issues/177

This error message doesn't make any sense seeing as it acknowledges that I have the most recent version of fuse installed (3.5.3).

Here is the output of fuse-version:

OSXFUSE.FuseVersion: 29
OSXFUSE.AgentVersion: 3.5.3
OSXFUSE.AgentName: OSXFUSE

I'm guessing this is a common issue?

@fisch0920 seems the way we're checking that the version above 2.7.2 is not really proper, take a look here: https://github.com/ipfs/go-ipfs/blob/73cd8b3e98aba252f0eadcc625472103a2dd1d53/fuse/node/mount_darwin.go#L141

There seems to be a switch to turn of the version checking as well, but I don't have osx to see if it actually works for you.

For future readers, there was an issue created specifically for the version check here: #3410

FWIW, brew install osxfuse no longer works, since it was migrated to caskroom/cask. The following does work:

$ brew tap caskroom/cask
$ brew update && brew cask install osxfuse

Is Fuse absolutely necessary to add and get files with IPFS?

osxfuse/osxfuse#542

@hatgit not at all. The go-ipfs implementation includes a command line interface that allows comprehensive use of IPFS features and is considered the "standard" way to add and get files (via the aptly named add and get commands). FUSE is an optional (neat) way of interacting with IPFS content. You can read about basic usage of the ipfs command line tool here:

https://docs.ipfs.io/introduction/usage/

@hatgit not at all. The go-ipfs implementation includes a command line interface that allows comprehensive use of IPFS features and is considered the "standard" way to add and get files (via the aptly named add and get commands). FUSE is an optional (neat) way of interacting with IPFS content. You can read about basic usage of the ipfs command line tool here:

https://docs.ipfs.io/introduction/usage/

Thanks @eingenito, I've been going through that guide and other already, and already have the daemon running and swarmed all peers (fully connected) and in the GUI http://localhost:5001/webui I see the files I uploaded but when I copy the hash of any of those files I still cannot view them online after appending to the end of this url: http://ipfs.io/ipfs/
nor using cloudflare's hosted url. I'm trying to troubleshoot why they aren't being served.

I've also tried the add and get methods and those only seem to work locally but still cannot view the file in a public url (shouldn't I be able to do that, assuming the files go to IPFS's gateway?)

In addition, while I did end up installing fuse and updating the config file, the two folders contained within OSXFUSE Volume 1 (ipfs) are empty (one is named local and the other is named after the ID hash).

Note: I am able to fetch the image of the little kitten praying that is mentioned in the user guide, via the command line.

shouldn't I be able to do that, assuming the files go to IPFS's gateway?

Detail but still important: the files don't "go to the gateways" but rather the gateway fetches the content when it's being requested. You still need to be running your own go-ipfs daemon when you try to access your content via the gateways.

If you can fetch content that you don't have locally (like the kitten image) but other peers can't fetch content, you might have a firewall or something running, stopping go-ipfs from sending data. Try running netcat $yourIP 4001 from some computer outside your network and see if you get /multistream/1.0.0 as a reply, in that case, it should be working. If you cannot get the initial multistream response, it seems like something is blocking the outbound traffic from your go-ipfs node.

Thanks @victorbjelkholm, the config instructions listed here helped it finally work for me https://webui.ipfs.io/#/welcome