2014-03-07 6 views
11

지킬 새 명령을 사용하려고했지만 작동하지 않아 다음 오류가 발생했습니다.지킬 새 명령을 실행할 수 없습니다

$ 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 

Mac OS X 10.8.5 Mountain Lion을 사용하고 있습니다. stackoverflow를 검사하여 비슷한 문제가있는 게시물을 발견했습니다. Error when running jekyll new command 그런 다음 아래 명령을 시도했습니다.

$ sudo gem install json 

하지만 내 상황에서는 작동하지 않았습니다. 나는 json을 제거하고 재설치했지만 아무 일도 일어나지 않았다. 다른 해결책을 알고 계시다면 알려 주시기 바랍니다. 나는이 문제가 주초 이래로 붙어있어 ...

내 보석 목록 & 보석 환경은 다음과 같습니다.

$ 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 

제게 도움을주십시오. 고맙습니다!


$ 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

$ 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 
월 7에 업데이트, 당신은 브루 목록을보고 싶으면 그냥 경우

$ rvm list  
rvm rubies 


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

월 7에 업데이트

2.1.1p76을 설치하기 전에 내 Mac에 Ruby 1.8.7이 설치되었음을 기억합니다.

+0

이 레일 앱입니까? –

+0

'rvm list'를 실행하면 무엇을 얻게됩니까? – nicksuch

+0

@SachinSingh Singh, 저는 이것이 레일 앱이라고 생각하지 않습니다. 지킬의 웹 사이트 문서에는 지킬을 설치하기 위해 루비와 루비 젬이 필요합니다. – Keita

답변

9

시스템에 여러 버전의 Ruby (1.8.7 및 2.1.1)가있는 것처럼 보입니다. 이는 매우 일반적이며 rvmrbenv과 같은 도구가 만들어졌습니다. 문제는 gem install jekyll (어쩌면 sudo)과 sudo gem install json 일 때 서로 다른 곳에서 발견되어 서로를 찾지 못하는 것입니다. /usr/local/bin 위치는 일반적으로 자작 (Homebrew)이 물건을 넣는 위치이므로 (따라서 brew listruby이 표시됨)이 위치는 Ruby 2.1.1 위치입니다. 그러나 jekyll 설치는 Apple에서 설치 한 Ruby 1.8.7 위치에 있습니다.

단계 1 : 시도 gem uninstall jekyll, 다음은 gem install jekyll입니다. 이렇게하면 문제가 해결됩니다.

2 단계 : 그래도 문제가 해결되지 않으면, 루비의 다른 버전을 선택 rbenv 또는 rvm를 사용하려고 다시 1 단계를 시도해보십시오.

예를 들어, 내 설치는 여기 (rvm를 통해 관리)입니다

bundle exec jekyll build 

솔루션은 json을 포함했다 : 나의 경우

$ 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

Jekyll이 마침내 작동합니다. 네가 옳아. 나는 Jekyll, Ruby (Homebrew에서), Rubygems, rvm을 한 번 제거한 다음 Ruby와 Jekyll로 rvm을 다시 설치했습니다. 그 후, Ruby, gem, Jekyll은 당신과 같은 디렉토리에 저장되었습니다. 지킬 새로운 명령이 지금 일하고있어. 정말 고마워. 넌 니가 최고야! – Keita

+1

우수! 행복하게 지킬 - ing! – nicksuch

+0

나는 비슷한 문제가있어서 아무 소용이 없다고 제안했다. 내가 설치된 모든 루비 버전을 제거하고 소스에서'rvm'과'ruby'를 재설치했습니다. 그런 다음'bundle install '을 실행하고 같은 오류가 다시 발생했습니다. 위에서 제안한대로 모든 경로를 확인했는데 모두 일관성있는 것으로 보입니다. 어떻게해야합니까? –

3

가 지킬 템플릿 bundle 유틸리티를 사용하도록 제안 (이미 출처의 일부 임) :

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" 
솔루션에 저를 이끌어 무엇개

세부

는 다음과 같은 사실이었다 gem list json가 설치 json 보석을 보였다

  • 명령;
  • 그러나 bundle exec gem list json 명령은 아무 것도 표시하지 않았습니다.

bundle exec gem install json 또한 실행되지 않았습니다. 내 생각에 bundleGemfile을 기반으로 한 단일 실행을위한 환경을 설정하는 것이므로 bundle exec ... 실행마다 지속적으로 의존성을 설정할 수있는 유일한 방법입니다.

관련 문제