¿Por qué Middleman no incluirá las gemas rb-inotify y therubyracer una vez instaladas?
(3)
Esta es la línea a la que debes prestar atención
/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in `autodetect '': no se pudo encontrar el tiempo de ejecución de JavaScript. Consulte https://github.com/sstephenson/execjs para obtener una lista de tiempos de ejecución disponibles. (ExecJS :: RuntimeUnavailable)
Básicamente, necesita instalar un tiempo de ejecución js como el nodo js o v8 o algo así en su sistema para que los ejecutivos puedan trabajar con él. Lea esto cuidadosamente
Yo tengo:
$ 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
si comienzo un proyecto así:
$ 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
y muévase al directorio para obtener una vista previa en ejecución:
$ 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...
a pesar de eso:
$ gem list | grep racer therubyracer (0.9.8) $ gem list | grep inotify rb-inotify (0.8.8)
Seguí la Guía de instalación RVM y el Middleman Getting Started . ¿Alguna idea de por qué Middleman no podría iniciar un servidor?
Parece que los usuarios de middleman server
un sandbox basado únicamente en el Gemfile. Si instaló las gemas globalmente, no estarán presentes en el tiempo de ejecución en el entorno limitado. El Gemfile original creado por middleman init
ve así:
source "http://rubygems.org"
gem "middleman", "~>2.0.13.1"
editar esto para ser:
source "http://rubygems.org"
gem "middleman", "~>2.0.13.1"
gem "rb-inotify"
gem "therubyracer"
Podría ser menos vago y parametrizar esto por el sistema operativo, si lo desea.
Si elimina el archivo Gemfile.lock y luego ejecuta en su directorio raíz
paquete de instalación --binstubs ./bin - proveedor de ruta / paquete
el paquete instalará todos los paquetes localmente (y todos los ejecutables para iniciar cosas en ./bin)
También puedes, si te sirve, probar mi plantilla para comenzar