0

我安装了 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

我也尝试在系统 ruby​​ 上安装 gem,但我得到了相同的结果。

谷歌没有找到关于这个问题的任何结果。

4

1 回答 1

0

好吧,在 gem 的 ext 目录中四处寻找并查看 fuse-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 目录加载。

我想我在某处读到雪豹需要 ino64 版本。

于 2011-05-27T19:48:47.420 回答