2014-03-07 6 views
11

Ich habe versucht, Jekyll neuen Befehl verwenden, aber es hat nicht funktioniert und kam folgenden Fehler.Kann Jekyll neuen Befehl nicht ausführen

$ jekyll new myblog 
/Library/Ruby/Gems/1.8/gems/commander-4.1.6/lib/commander/runner.rb:385:in `require_program': program version required (Commander::Runner::CommandError) 
from /Library/Ruby/Gems/1.8/gems/commander-4.1.6/lib/commander/runner.rb:384:in `each' 
from /Library/Ruby/Gems/1.8/gems/commander-4.1.6/lib/commander/runner.rb:384:in `require_program' 
from /Library/Ruby/Gems/1.8/gems/commander-4.1.6/lib/commander/runner.rb:52:in `run!' 
from /Library/Ruby/Gems/1.8/gems/commander-4.1.6/lib/commander/delegates.rb:8:in `run!' 
from /Library/Ruby/Gems/1.8/gems/commander-4.1.6/lib/commander/import.rb:10 
from /usr/bin/jekyll:23 
/Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:55:in `gem_original_require': no such file to load -- json (LoadError) 
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /Library/Ruby/Gems/1.8/gems/jekyll-1.4.3/bin/../lib/jekyll/filters.rb:2 
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:55:in `gem_original_require' 
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /Library/Ruby/Gems/1.8/gems/jekyll-1.4.3/bin/../lib/jekyll.rb:44 
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:55:in `gem_original_require' 
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /Library/Ruby/Gems/1.8/gems/jekyll-1.4.3/bin/jekyll:7 
from /usr/bin/jekyll:23:in `load' 
from /usr/bin/jekyll:23 

Ich benutze Mac OS X 10.8.5 Mountain Lion. Ich überprüfte stackoverflow und fand einen Beitrag, der ein ähnliches Problem hat. Error when running jekyll new command Dann habe ich den folgenden Befehl versucht.

$ sudo gem install json 

aber es hat nicht für meine Situation funktioniert. Ich habe json deinstalliert und neu installiert, aber nichts ist passiert. Bitte lassen Sie mich wissen, wenn Sie andere Lösungen kennen. Ich bin auf dieses Problem seit Anfang der Woche festgefahren ...

meine Edelsteinliste & Gem Umgebung sind wie folgt.

$ gem list 

*** LOCAL GEMS *** 

bigdecimal (1.2.4) 
blankslate (2.1.2.4) 
classifier (1.3.4) 
colorator (0.1) 
commander (4.1.6) 
fast-stemmer (1.0.2) 
ffi (1.9.3) 
highline (1.6.21) 
io-console (0.4.2) 
jekyll (1.4.3) 
json (1.8.1) 
liquid (2.5.5) 
listen (1.3.1) 
maruku (0.7.1) 
minitest (4.7.5) 
parslet (1.5.0) 
posix-spawn (0.3.8) 
psych (2.0.3) 
pygments.rb (0.5.4) 
rake (10.1.0) 
rb-fsevent (0.9.4) 
rb-inotify (0.9.3) 
rb-kqueue (0.2.2) 
rdoc (4.1.0) 
redcarpet (2.3.0) 
safe_yaml (0.9.7) 
test-unit (2.1.1.0) 
toml (0.1.1) 
yajl-ruby (1.1.0) 

$ gem env 

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.2.2 
    - RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin12.0] 
    - INSTALLATION DIRECTORY: /usr/local/Cellar/ruby/2.1.1/lib/ruby/gems/2.1.0 
    - RUBY EXECUTABLE: /usr/local/Cellar/ruby/2.1.1/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/Cellar/ruby/2.1.1/bin 
    - SPEC CACHE DIRECTORY: /Users/MyName/.gem/specs 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-12 
    - GEM PATHS: 
    - /usr/local/Cellar/ruby/2.1.1/lib/ruby/gems/2.1.0 
    - /Users/MyName/.gem/ruby/2.1.0 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 
    - SHELL PATH: 
    - /usr/local/bin 
    - /usr/local/bin 
    - /usr/local/sbin 
    - /usr/bin 
    - /bin 
    - /usr/sbin 
    - /sbin 
    - /usr/local/git/bin 
    - /Users/MyName/.rvm/bin 

Bitte geben Sie mir Ratschläge, um mir zu helfen. Vielen Dank!


am Mar Aktualisiert 7.

$ rvm list  
rvm rubies 


# No rvm rubies installed yet. Try 'rvm help install'. 

Für den Fall, würden Sie Homebrew Liste sehen möchten,

$ brew list 
autoconf gmp4  libtool  openssl  readline 
automake libgpg-error libyaml  pkg-config ruby 
cloog-ppl015 libksba  llvm  ppl011  ruby-build 
gcc46  libmpc08 mpfr2  rbenv 

2. auf Mar aktualisiert 7.

$ which ruby 
/usr/local/bin/ruby 

$ which jekyll 
/usr/bin/jekyll 

$ ruby --version 
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0] 

$ echo $PATH 
/usr/local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/Users/MyName/.rvm/bin 

Ich erinnere mich, dass mein Mac Ruby 1.8.7 installiert war, bevor ich 2.1.1p76 installierte.

+0

ist dies eine Schiene App? –

+0

Was bekommen Sie, wenn Sie 'rvm list' ausführen? – nicksuch

+0

@SachinSingh Singh, ich glaube nicht, dass dies eine Rails App ist. Jekylls Website-Dokumentation benötigt Ruby und RubyGems, um Jekyll zu installieren. – Keita

Antwort

9

Es sieht so aus, als ob Sie mehrere Versionen von Ruby auf Ihrem System haben (1.8.7 und 2.1.1), was sehr häufig ist, und ein Teil der Grundwerkzeuge wie rvm und rbenv erstellt wurden. Das Problem ist, dass wenn Sie gem install jekyll (vielleicht mit einem sudo) und sudo gem install json getan haben, scheinen diese in verschiedenen Spots gelandet zu sein und sich nicht finden. Die /usr/local/bin Position ist in der Regel, wo Homebrew Sachen (daher haben Sie ruby unter brew list aufgeführt) und das ist Ihr Ruby 2.1.1 Standort. Ihre jekyll Installation befindet sich jedoch unter dem Speicherort des von Apple installierten Ruby 1.8.7.

Schritt 1: versuchen Sie gem uninstall jekyll, dann gem install jekyll. Dies sollte Ihre Probleme beheben.

Schritt 2: Wenn das nicht funktioniert, versuchen Sie rbenv oder rvm zu verwenden, um eine andere Version von Ruby zu wählen, und dann Schritt 1 erneut versuchen.

Zum Beispiel sind meine Installationen hier (verwaltet über rvm):

$ which jekyll 
/Users/nicksuch/.rvm/gems/ruby-2.0.0-p247/bin/jekyll 
$ which gem 
/Users/nicksuch/.rvm/rubies/ruby-2.0.0-p247/bin/gem 
$ which ruby 
/Users/nicksuch/.rvm/rubies/ruby-2.0.0-p247/bin/ruby 
+2

Vielen Dank @nickSuch Jekyll endlich funktioniert !!! Du hast recht. Ich habe Jekyll, Ruby (von Homebrew), Rubygems, rvm einmal deinstalliert und dann rvm mit Ruby und Jekyll neu installiert. Danach wurden Ruby, Gem, Jekyll in einem Verzeichnis wie eures gespeichert. Jekyll neues Kommando funktioniert jetzt. Ich schätze wirklich. Du bist großartig @nicksuch !!! – Keita

+1

Ausgezeichnet! Freut mich zu helfen, glücklich Jekyll-ing! – nicksuch

+0

Ich habe ein ähnliches Problem, und versuchte Ihren Vorschlag vergebens. Ich habe alle installierten Ruby-Versionen entfernt und 'rvm' und' ruby' aus der Quelle neu installiert. Dann habe ich 'bundle install' ausgeführt und den gleichen Fehler erneut erhalten. Ich habe alle meine oben beschriebenen Wege überprüft und sie scheinen alle konsistent zu sein. Was soll ich machen? –

3

In meinem Fall die Jekyll Vorlage bundle Dienstprogramm zu verwenden, vorgeschlagen als:

bundle exec jekyll build 

Die Lösung json enthalten war in Gemfile (die bereits Teil der Quellen war):

diff --git a/Gemfile b/Gemfile 
index 98b29af..b8537cf 100644 
--- a/Gemfile 
+++ b/Gemfile 
@@ -1,7 +1,8 @@ 
source "https://rubygems.org" 

+gem "json" 
gem "jekyll", "~> 3.0" 
gem "jekyll-sitemap" 

DETAILS

Was mich zu der Lösung führen sollte die folgende Tatsache:

  • Befehl gem list jsonjson gem installiert zeigte;
  • aber Befehl bundle exec gem list json zeigte nichts.

Ich habe auch versucht, bundle exec gem install json laufen - es hat nicht funktioniert. Meine beste Vermutung war, dass bundle die Umgebung für einen einzelnen Lauf basierend auf Gemfile eingerichtet, die die einzige Möglichkeit ist, Satz von Abhängigkeiten über alle bundle exec ... Ausführungen persistent zu machen.

Verwandte Themen