ruby fusefs-osx gem не может быть правильно установлен - PullRequest
0 голосов
/ 27 мая 2011

Я установил гем 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 Ответ

0 голосов
/ 27 мая 2011

Что ж, покопавшись в каталоге 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.

...