ruby fusefs-osx gem не может быть правильно установлен

Я установил гем fusefs-osx 0.7.0, но примеры скриптов не монтируются. Я попробовал hello.rb и yamlfs.rb. Сценарий не прерывается, и значок Finder точки монтирования меняется на смонтированный диск, но я не могу получить доступ к содержимому. Если я попробую "ls", я получу "Ошибка ввода / вывода".

Запуск lsof в процессе ruby ​​показывает, что загружены гемы 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, но получаю тот же результат.

Google не нашел никаких результатов по этой проблеме.

1 ответ

Решение

Итак, покопавшись в каталоге ext в gem и просмотрев вывод lsof скрипта fuse-python, я нашел обходной путь. По сути, я отредактировал 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. Это на самом деле не нужно, так как драгоценный камень всегда загружается из ext dir.

Мне кажется, я где-то читал, что Snow Leopard требуется версия ino64.

Другие вопросы по тегам