MacOSX下使用homebrew安装fuse4x并测试

一直在台式机上的Debian虚拟机里做6.824的实验,想挪到MBP上做,不想再装个debian的虚拟机。以前在Mac下搞过fuse,当时是有个东西叫做MacFuse,但是后来好像不好用了,有一个比较好的替代品是Fuse4x。

Homebrew是一个类似MacPorts,Pink的包管理软件。以前一直用MacPorts,很方便,但是有一个很大问题是它会直接用自己的包替代到系统的包,之前因为这个再一次系统升级之后把系统搞崩了。后来被朱神推荐用Homebrew,正好试一下。

安装Homebrew(安装前卸载Macports,Pink):

ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

 
使用Homebrew安装Fuse4x:

brew install fuse4x

把fuse4x-kext内核扩展拷到对应位置,并修改权限:

sudo cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.1/Library/Extensions/fuse4x.kext /Library/Extensions
sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x

尝试编译Fuse Helloworld的源程序,注意加-D_FILE_OFFSET_BITS=64选项。编译失败,提示如下

ndefined symbols for architecture x86_64:
  "_fuse_main_real", referenced from:
      _main in ccIcpRVe.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
  

再安装sshfs,其实是为了安装许多依赖包,比如pkg-config

brew install sshfs

再次尝试编译:

gcc -Wall `pkg-config fuse --cflags --libs` hello.c -o hello

 成功。

猜你喜欢

转载自msmummy.iteye.com/blog/1684879