Почему Middleman не включит гем rb-inotify и therubyracer после установки?

У меня есть:

$ 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 
      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

и перейдите в каталог, чтобы запустить предварительный просмотр:

$ 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...

несмотря на это:

$ gem list | grep racer
therubyracer (0.9.8)

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

Я следовал руководству по установке RVM и посреднику Начало работы. Есть идеи, почему Миддлман не смог запустить сервер?


person troutwine    schedule 22.10.2011    source источник


Ответы (3)


Похоже, что middleman server использует песочницу, основанную исключительно на Gemfile. Если вы установили драгоценные камни глобально, они не будут присутствовать во время выполнения в песочнице. Оригинальный Gemfile, созданный middleman init, выглядит так:

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"

Вы можете быть менее ленивым и параметризовать это с помощью операционной системы, если хотите.

person troutwine    schedule 22.10.2011

Если вы удалите файл Gemfile.lock, а затем запустите в своем корневом каталоге

установка пакета --binstubs ./bin --path vendor/bundle

пакет установит все пакеты локально (и все исполняемые файлы для запуска в ./bin )

Вы также можете, если это поможет, попробовать мой шаблон, чтобы начать работу.

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

person V P    schedule 26.01.2014

Это линия, на которую нужно обратить внимание

/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, такую ​​​​как node js или v8, или что-то в вашей системе, чтобы execjs мог с ней работать. Внимательно прочитайте это.

person Moiz Raja    schedule 22.10.2011
comment
Если вы обратите внимание, я показываю, что я установил therubyracer и rb-inotify, оба из которых не включены должным образом посредником или Octopress. См. вывод gem list | grep racer и gem list | grep inotify выше. - person troutwine; 22.10.2011