使用NPM安装Inotify

时间:2012-03-04 06:04:04

标签: javascript node.js npm

我是nodeJS的新手,我正在尝试使用Node Package Manager(NPM)安装名为inotify的软件包。

安装NPM(在OSX Lion上)后,我尝试使用以下命令安装inotify:

  

sudo npm install inotify

我收到以下错误:

npm http GET https://registry.npmjs.org/inotify
npm http 304 https://registry.npmjs.org/inotify

> inotify@0.2.2 install /usr/local/lib/node_modules/inotify
> node-waf configure build

Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /usr/local/Cellar/node/0.6.6 
Checking for program node                : /usr/local/bin/node 
Checking for function inotify_init       : not found 
/usr/local/lib/node_modules/inotify/src/wscript:11: error: the configuration failed (see '/usr/local/lib/node_modules/inotify/build/config.log')
npm ERR! error installing inotify@0.2.2

npm ERR! inotify@0.2.2 install: `node-waf configure build`
npm ERR! `sh "-c" "node-waf configure build"` failed with 1
npm ERR! 
npm ERR! Failed at the inotify@0.2.2 install script.
npm ERR! This is most likely a problem with the inotify package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-waf configure build
npm ERR! You can get their info via:
npm ERR!     npm owner ls inotify
npm ERR! There is likely additional logging output above.
npm ERR! 
npm ERR! System Darwin 11.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "inotify"
npm ERR! cwd /Users/username/code
npm ERR! node -v v0.6.6
npm ERR! npm -v 1.1.4
npm ERR! code ELIFECYCLE
npm ERR! message inotify@0.2.2 install: `node-waf configure build`
npm ERR! message `sh "-c" "node-waf configure build"` failed with 1
npm ERR! errno {}
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/username/code/npm-debug.log
npm not ok

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

无法构建inotify模块,因为它无法找到inotify_init。这是因为OS X上没有inotify。

OS X上的FSEvents API提供了类似的功能,但它是一个完全不同的API。 inotify模块在这种情况下不起作用。

根据您的目的,fs.watch可能符合您的需求。它抽象出平台差异:

  
      
  • 在Linux系统上,这使用inotify
  •   
  • 在BSD系统(包括OS X)上,它使用kqueue
  •   
  • 在SunOS系统(包括Solaris和SmartOS)上,它使用事件端口。
  •   
  • 在Windows系统上,此功能取决于ReadDirectoryChangesW
  •