2011-10-22 2 views
3

Je:Pourquoi Middleman n'inclura-t-il pas les gemmes rb-inotify et therubyracer une fois installées?

$ 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 je commence un projet comme ceci:

 
$ 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 

et se déplacer dans le répertoire pour obtenir un fonctionnement d'aperçu:

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

malgré cela:

 
$ gem list | grep racer 
therubyracer (0.9.8) 

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

J'ai suivi le RVM Installation Guide et le Middleman Getting Started. Des idées pourquoi Middleman ne parviendrait pas à démarrer un serveur?

Répondre

5

Il semble que middleman server utilisateurs un bac à sable basé uniquement sur le Gemfile. Si vous avez installé les gems globalement, ils ne seront pas présents lors de l'exécution dans le sandbox. La Gemfile originale créée par middleman init ressemble:

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

modifier ce soit:

source "http://rubygems.org" 

gem "middleman", "~>2.0.13.1" 
gem "rb-inotify" 
gem "therubyracer" 

Vous pourriez être moins paresseux et paramétrez ce par le système d'exploitation, si vous le souhaitez.

-1

C'est la ligne que vous devez prêter attention à

/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes. rb: 47: dans `autodetect ': Impossible de trouver une exécution JavaScript. Voir https://github.com/sstephenson/execjs pour une liste des temps d'exécution disponibles. (ExecJS :: RuntimeUnavailable)

Fondamentalement, vous devez installer un js js ou v8 comme un exécutant sur votre système afin que les execjs puissent fonctionner avec. Lire this soigneusement

+0

Si vous notez que je montre que j'ai _veve installé les 'therubyracer' et' rb-inotify', qui ne sont pas inclus correctement par un intermédiaire ou Octopress. Voir la sortie de 'gem list | grep racer' et 'gem list | grep inotify', ci-dessus. – troutwine

0

Si vous supprimez le fichier Gemfile.lock puis exécutez dans votre répertoire racine

bundle

installer --binstubs ./bin --path fournisseur/paquet

le paquet installera tous les paquets localement (et tous les executables pour commencer les choses à ./bin)

Vous pouvez également, si cela peut aider, essayer mon modèle pour faire avancer les choses ont commencé

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

Questions connexes