使用指南针和susy插件获取rb-inotify错误“Errno :: ENOSYS”

时间:2011-03-10 13:52:27

标签: ruby compass-sass sass

我安装了Compass gem(compass-0.11.beta.2)以及Compass susy插件。每次我运行“罗盘手表”时,都会收到错误:
“Errno :: ENOSYS在/path/to/rb-inotify/notifier.rb的行[”60“]:初始化inotify”
这是notifier.rb中的错误引用的代码块

def initialize
@fd = Native.inotify_init
  @watchers = {}
  return unless @fd < 0

  raise SystemCallError.new(
    "Failed to initialize inotify" +
    case FFI.errno
    when Errno::EMFILE::Errno; ": the user limit on the total number of inotify instances has been reached."
    when Errno::ENFILE::Errno; ": the system limit on the total number of file descriptors has been reached."
    when Errno::ENOMEM::Errno; ": insufficient kernel memory is available."
    else; ""
    end,
This is line ["60"] ===>  FFI.errno)
end

我已经尝试重新安装所有涉及的宝石,以及每个宝石的3-4个不同版本,但我每次都会得到相同的错误。任何人都可以帮我一把吗?

1 个答案:

答案 0 :(得分:0)

您需要升级系统。

inotify_init(2)的底层调用正在返回ENOSYS,这意味着该功能未在系统的libc中实现,甚至可能在内核中不受支持。

(例如,某些旧版本的Fedora Linux似乎支持内核中的inotify工具,但没有发布暴露该功能的glibc。)