I have:
$ 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
if I start a project like so:
$ middleman init np --rack --bundler --template=html5
create np/config.ru
create np/Gemfile
run bundle install
Fetching source index for http://rubygems.org/
Using multi_json (1.0.3)
Using activesupport (3.1.1)
Using addressable (2.2.6)
Using chunky_png (1.2.5)
Using coffee-script-source (1.1.2)
Using execjs (1.2.9)
Using coffee-script (2.2.0)
Using fssm (0.2.7)
Using sass (3.1.10)
Using compass (0.11.5)
Using daemons (1.1.4)
Using eventmachine (0.12.10)
Using em-websocket (0.3.3)
Using thor (0.14.6)
Using guard (0.6.3)
Using guard-livereload (0.3.1)
Using haml (3.1.3)
Using hike (1.2.1)
Using rack (1.3.5)
Using url_mount (0.2.1)
Using http_router (0.10.2)
Using i18n (0.6.0)
Using syntax (1.0.0)
Using maruku (0.6.0)
Using middleman-livereload (0.2.1)
Using rack-protection (1.1.4)
Using tilt (1.3.3)
Using sinatra (1.3.1)
Using padrino-core (0.10.5)
Using padrino-helpers (0.10.5)
Using rack-test (0.6.1)
Using temple (0.3.4)
Using slim (1.0.3)
Using sprockets (2.0.3)
Using thin (1.2.11)
Using uglifier (1.0.4)
Using middleman (2.0.13.1)
Using bundler (1.0.21)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
create np/config.rb
create np/source
create np/source/404.html
create np/source/README.md
create np/source/apple-touch-icon-114x114-precomposed.png
create np/source/apple-touch-icon-57x57-precomposed.png
create np/source/apple-touch-icon-72x72-precomposed.png
create np/source/apple-touch-icon-precomposed.png
create np/source/apple-touch-icon.png
create np/source/crossdomain.xml
create np/source/css/style.css
create np/source/favicon.ico
create np/source/humans.txt
create np/source/img/.gitignore
create np/source/index.html
create np/source/js/libs/jquery-1.6.2.js
create np/source/js/libs/jquery-1.6.2.min.js
create np/source/js/libs/modernizr-2.0.6.min.js
create np/source/js/mylibs/.gitignore
create np/source/js/plugins.js
create np/source/js/script.js
create np/source/robots.txt
create np/source/test/index.html
create np/source/test/qunit/qunit.css
create np/source/test/qunit/qunit.js
create np/source/test/tests.js
exist np/source
and move into the directory to get a preview running:
$ cd np/
$ middleman server
Please install rb-inotify gem for Linux inotify support
Using polling (Please help us to support your system better than that.)
Using inline Guardfile.
Guard is now watching at '/tmp/np'
/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs.rb:5:in `'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs.rb:4:in `'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/renderers/coffee_script.rb:4:in `require'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/renderers/coffee_script.rb:4:in `registered'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1262:in `block in register'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in `each'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in `register'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/core_extensions/rendering.rb:14:in `registered'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1262:in `block in register'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in `each'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in `register'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/base.rb:54:in `registered'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1262:in `block in register'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in `each'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/sinatra-1.3.1/lib/sinatra/base.rb:1260:in `register'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman.rb:180:in `server'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman.rb:191:in `start_server'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:58:in `block in server_start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:57:in `fork'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:57:in `server_start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:47:in `start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:66:in `supervised_task'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:43:in `block in start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:43:in `each'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/guard-0.6.3/lib/guard.rb:43:in `start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/guard.rb:34:in `start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/lib/middleman/cli.rb:55:in `server'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:52:in `start_cli!'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:47:in `did_locate_middleman_project'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:20:in `locate_middleman_root!'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/gems/middleman-2.0.13.1/bin/middleman:70:in `'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/bin/middleman:19:in `load'
from /home/blt/.rvm/gems/ruby-1.9.2-p290/bin/middleman:19:in `'
Bye bye...
despite that:
$ gem list | grep racer therubyracer (0.9.8) $ gem list | grep inotify rb-inotify (0.8.8)
I followed the RVM Installation Guide and the Middleman Getting Started. Any ideas why Middleman would fail to start a server?
It seems that middleman server users a sandbox based solely on the Gemfile. If you've installed the gems globally, they'll not be present at runtime in the sandbox. The original Gemfile created by middleman init looks like:
source "http://rubygems.org"
gem "middleman", "~>2.0.13.1"
edit this to be:
source "http://rubygems.org"
gem "middleman", "~>2.0.13.1"
gem "rb-inotify"
gem "therubyracer"
You could be less lazy and parameterize this by Operating System, if you like.
If you remove the Gemfile.lock file and then run in your root directory
bundle install --binstubs ./bin --path vendor/bundle
the bundle will install all the packages locally (and all the executables to start things up in ./bin )
You can also if it helps, try my template to get things started
This is the line you need to pay attention to
/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
Basically you need to install a js runtime like node js or v8 or something on your system so that execjs can work with it. Read this carefully
来源:https://stackoverflow.com/questions/7859755/why-wont-middleman-include-the-rb-inotify-and-therubyracer-gems-once-installed