为什么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开头)
如果有帮助,您也可以尝试我的模板来开始工作
这是你需要注意的路线
/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可以使用它。 仔细阅读