为什么Middleman一旦安装就不会包含rb-inotify和therubyracergem?

我有:

$ ruby -v ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] $ middleman version Middleman 2.0.13.1 $ cat /etc/debian_version 6.0.3 

如果我开始这样的项目:

 $ middleman init np --rack --bundler --template = html5 
      创建np / config.ru
      创建np / Gemfile
         运行捆绑安装
获取http://sofzh.miximages.com/ruby/ apple-touch-icon-114x114-precomposed.png
      创建np / source / apple-touch-icon-57x57-precomposed.png
      创建np / source / apple-touch-icon-72x72-precomposed.png
      创建np / source / apple-touch-icon-precomposed.png
      创建np / source / apple-touch-icon.png
      创建np / source / crossdomain.xml
      创建np / source / css / style.css
      创建np / source / favicon.ico
      创建np / source / humans.txt
      创建np / source / img / .gitignore
      创建np / source / index.html
      创建np / source / js / libs / jquery-1.6.2.js
      创建np / source / js / libs / jquery-1.6.2.min.js
      创建np / source / js / libs / modernizr-2.0.6.min.js
      创建np / source / js / mylibs / .gitignore
      创建np / source / js / plugins.js
      创建np / source / js / script.js
      创建np / source / robots.txt
      创建np / source / test / index.html
      创建np / source / test / qunit / qunit.css
      创建np / source / test / qunit / qunit.js
      创建np / source / test / tests.js
       存在np / source

并进入目录以运行预览:

 $ cd np /
 $ middleman服务器
请为Linux inotify支持安装rb-inotify gem
使用轮询(请帮助我们更好地支持您的系统。)
使用内联Guardfile。
警卫正在观看'/ tmp / np'
 /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in“autodetect”:无法找到JavaScript运行时。 有关可用运行时的列表,请参阅https://github.com/sstephenson/execjs。  (ExecJS :: RuntimeUnavailable)
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs.rb:5:in`
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs.rb:4:in`
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in`requirement'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in`
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/renderers/coffee_script.rb:4:in`requirement'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/renderers/coffee_script.rb:4:in“registered”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1262:in“block in register”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in“each”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in`register'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/core_extensions/rendering.rb:14:in“registered”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1262:in“block in register”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in“each”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in`register'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/base.rb:54:in“注册”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1262:in“block in register”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in“each”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in`register'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman.rb:180:in`server'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman.rb:191:in`start_server'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:58:in,clock in server_start'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:57:in“fork”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:57:in`server_start'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:47:in'start'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:66:in`supervised_task'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:43:in“阻止开始”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:43:in“each”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:43:in“start”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:34:in“start”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/cli.rb:55:in`server'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/task.rb:22:in'run'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:118:in`invoke_task'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor.rb:263:in`dispatch'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/base.rb:389:in“start”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:52:in`start_cli!'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:47:in,hed_locate_middleman_project'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:20:in“locate_middleman_root!”
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:70:in`
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/bin/middleman:19:in'load'
    来自/home/blt/.rvm/gems/ruby-1.9.2-p290/bin/middleman:19:in`'
再见...

尽管那样:

 $ gem list |  grep赛车手
 therubyracer(0.9.8)

 $ gem list |  grep inotify
 rb-inotify(0.8.8)

我遵循了RVM 安装指南和Middleman 入门 。 任何有关Middleman无法启动服务器的想法?

middleman server似乎只使用了一个基于Gemfile的沙箱。 如果您已全局安装了gem,那么它们将不会出现在沙箱中的运行时。 middleman init创建的原始Gemfile如下所示:

 source "http://rubygems.org" gem "middleman", "~>2.0.13.1" 

编辑此为:

 source "http://rubygems.org" gem "middleman", "~>2.0.13.1" gem "rb-inotify" gem "therubyracer" 

如果你愿意,你可以通过操作系统减少懒惰和参数化。

如果删除Gemfile.lock文件,然后在根目录中运行

bundle install –binstubs ./bin –path vendor / bundle

捆绑包将在本地安装所有包(以及所有可执行文件以./bin开头)

如果有帮助,您也可以尝试我的模板来开始工作

http://github.com/vladp/middleman-Simple-Site

这是你需要注意的路线

/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in“autodetect”:无法找到JavaScript运行时。 有关可用运行时的列表,请参阅https://github.com/sstephenson/execjs 。 (ExecJS :: RuntimeUnavailable)

基本上你需要在你的系统上安装像js或v8这样的js运行时,以便execjs可以使用它。 仔细阅读