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.