问题描述
|
我安装了fusefs-osx 0.7.0 gem,但没有安装示例脚本。我尝试了hello.rb和yamlfs.rb。该脚本不会终止,安装点的Finder图标变为已安装的磁盘,但是我无法访问其中的内容。如果尝试\“ ls \”,则会收到\“输入/输出错误\”。
在ruby进程上运行lsof表示已加载gem的fusefs_lib.bundle和/opt/local/lib/libfuse_ino64.2.dylib。 \“ / dev / fuse0 \”也在列表中。
lsof也给出此错误:
lsof: WARNING: can\'t stat() fusefs file system /fusefs/rb_hello
Output information may be incomplete.
assuming \"dev=2d00000b\" from mount table
\“ mount \”命令显示(删除了用户名):
ruby@fuse0 on /fusefs/rb_hello (fusefs,nodev,nosuid,synchronous,mounted by ...)
当我使用ctrl-C脚本时,我必须手动卸载该点。
系统信息:
Leopard 10.5.8
ruby enterprise 1.8.7-2011.03 (i386 only)
libfuse 2.7.3 installed via Macports
我也尝试将宝石安装在系统红宝石上,但得到的结果相同。
Google没有对此问题显示任何结果。
解决方法
好了,在浏览gem \的ext目录之后,查看了保险丝python脚本的lsof输出,我找到了一种解决方法。基本上,我像这样编辑extconf.rb:
$ diff extconf.rb.orig extconf.rb
3c3
< if have_library(\'fuse_ino64\') || have_library(\'fuse\')
---
> if have_library(\'fuse\')
然后运行:
make clean
ruby extconf.rb
make
然后将fusefs_lib.bundle复制到lib目录。实际上并不是必需的,因为gem总是从ext目录加载。
我想我读过某个地方说Snow Leopard需要ino64版本。