2011-10-22 77 views
3

我:中間人爲什麼不安裝一次安裝的rb-inotify和therubyracer gems?

$ 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 Installation Guide和Middleman Getting Started。任何想法爲什麼Middleman將無法啓動服務器?

回答

5

看來,middleman server用戶只是基於Gemfile的沙箱。如果你已經全球安裝了gems,它們將不會在運行時出現在沙盒中。通過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" 

你可能不那麼懶惰和操作系統參數這一點,如果你喜歡。

-1

這是你需要注意的

/home/blt/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.9/lib/execjs/runtimes行。 rb:47:在`autodetect'中:找不到JavaScript運行時。有關可用運行時的列表,請參閱https://github.com/sstephenson/execjs。 (ExecJS :: RuntimeUnavailable)

基本上你需要在你的系統上安裝一個像js或v8節點那樣的js運行庫,以便execjs可以使用它。仔細閱讀this

+0

如果你會注意到我顯示我已經安裝了'therubyracer'和'rb-inotify',這兩者都沒有被middleman或Octopress正確包含。查看'gem list |的輸出grep racer'和'gem list | grep inotify',上面。 – troutwine

0

如果刪除Gemfile.lock的文件,然後在你的根目錄下運行

捆綁安裝--binstubs ./bin --path供應商/束

捆綁將在本地安裝所有的軟件包(和所有的可執行文件來啓動東西在./bin)

您還可以,如果有幫助,盡我的模板,讓事情開始

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