2017-03-29 7 views
7

bundle execという接頭辞を使用していますが、このエラーが発生したときにWindowsでCygwin(x64)でjekyllを実行しようとしています。bundle exec - すでにjson Xを有効にしていますが、Gemfileにjson Yが必要です

実行時にGemfile(1.8.6)で定義された依存関係を有効にしないでください。

ここで何がうまくいかないと思っていますか?私はRubyの宝石の世界に全く新しいものです。私は他の人を見た"あなたは既に活性化しています.."投稿は似たようなメッセージを表示していますが、そこの答えが私の問題を解決しませんでした。

$ execのジキルが

Cygwinの
0123にインストールされたWindows 7
  • RVMにインストール
    $ bundle exec jekyll serve 
    /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:40:in 
    `block in setup': You have already activated json 2.0.2, but your Gemfile requires json 1.8.6. 
    Prepending `bundle exec` to your command may solve this. (Gem::LoadError) 
    

    環境

    • Cygwinのx86_64版を提供バンドル
      $ rvm -v 
      rvm 1.29.0 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/] 
      
      $ ruby -v 
      ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-cygwin] 
      
  • Gemfile - ジキルプロジェクト

    source 'https://rubygems.org' 
    
    require 'json' 
    require 'open-uri' 
    versions = JSON.parse(open('https://pages.github.com/versions.json').read) 
    
    gem 'github-pages', group: :jekyll_plugins 
    gem 'json', '~> 1.8.0' 
    

    $宝石環境の

    $ gem environment 
    RubyGems Environment: 
        - RUBYGEMS VERSION: 2.6.10 
        - RUBY VERSION: 2.4.0 (2016-12-24 patchlevel 0) [x86_64-cygwin] 
        - INSTALLATION DIRECTORY: /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0 
        - USER INSTALLATION DIRECTORY: /cygdrive/c/Users/mochapenguin/.gem/ruby/2.4.0 
        - RUBY EXECUTABLE: /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/bin/ruby.exe 
        - EXECUTABLE DIRECTORY: /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/bin 
        - SPEC CACHE DIRECTORY: /cygdrive/c/Users/mochapenguin/.gem/specs 
        - SYSTEM CONFIGURATION DIRECTORY: /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/etc 
        - RUBYGEMS PLATFORMS: 
        - ruby 
        - x86_64-cygwin 
        - GEM PATHS: 
        - /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0 
        - /cygdrive/c/Users/mochapenguin/.rvm/gems/[email protected] 
        - GEM CONFIGURATION: 
        - :update_sources => true 
        - :verbose => true 
        - :backtrace => false 
        - :bulk_threshold => 1000 
        - REMOTE SOURCES: 
        - https://rubygems.org/ 
        - SHELL PATH: 
        - /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/bin 
        - /cygdrive/c/Users/mochapenguin/.rvm/gems/[email protected]/bin 
        - /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/bin 
        - /usr/local/bin 
        - /usr/bin 
        - /cygdrive/c/Windows/system32 
        - /cygdrive/c/Windows 
        - /cygdrive/c/Windows/System32/Wbem 
        - /cygdrive/c/Windows/System32/WindowsPowerShell/v1.0 
        - /cygdrive/c/Program Files/Java/jdk1.8.0_121/bin 
        ..... snip ..... 
        - /cygdrive/c/Users/mochapenguin/AppData/Local/atom/bin 
        - /usr/lib/lapack 
        - /cygdrive/c/Users/mochapenguin/.rvm/bin 
    

    バンドル更新

    $ bundle update 
    Fetching gem metadata from https://rubygems.org/........... 
    Fetching version metadata from https://rubygems.org/.. 
    Fetching dependency metadata from https://rubygems.org/. 
    Resolving dependencies... 
    Using i18n 0.8.1 
    Using json 1.8.6 
    Using minitest 5.10.1 
    Using thread_safe 0.3.6 
    Using public_suffix 2.0.5 
    Using coffee-script-source 1.12.2 
    Using execjs 2.7.0 
    Using colorator 1.1.0 
    Using ffi 1.9.18 
    Using multipart-post 2.0.0 
    Using forwardable-extended 2.6.0 
    Using gemoji 3.0.0 
    Using net-dns 0.8.0 
    Using sass 3.4.23 
    Using rb-fsevent 0.9.8 
    Using kramdown 1.13.2 
    Using liquid 3.0.6 
    Using mercenary 0.3.6 
    Using rouge 1.11.1 
    Using safe_yaml 1.0.4 
    Using mini_portile2 2.1.0 
    Using jekyll-paginate 1.1.0 
    Using jekyll-swiss 0.4.0 
    Using minima 2.0.0 
    Using unicode-display_width 1.1.3 
    Using bundler 1.14.6 
    Using tzinfo 1.2.3 
    Using addressable 2.5.0 
    Using coffee-script 2.4.1 
    Using ethon 0.10.1 
    Using rb-inotify 0.9.8 
    Using faraday 0.11.0 
    Using pathutil 0.14.0 
    Using jekyll-sass-converter 1.5.0 
    Using nokogiri 1.7.1 
    Using terminal-table 1.7.3 
    Using activesupport 4.2.7 
    Using jekyll-coffeescript 1.0.1 
    Using typhoeus 0.8.0 
    Using listen 3.0.6 
    Using sawyer 0.8.1 
    Using html-pipeline 2.5.0 
    Using jekyll-watch 1.5.0 
    Using octokit 4.6.2 
    Using jekyll 3.4.3 
    Using github-pages-health-check 1.3.3 
    Using jekyll-gist 1.4.0 
    Using jekyll-avatar 0.4.2 
    Using jekyll-default-layout 0.1.4 
    Using jekyll-feed 0.9.2 
    Using jekyll-github-metadata 2.3.1 
    Using jekyll-mentions 1.2.0 
    Using jekyll-optional-front-matter 0.1.2 
    Using jekyll-readme-index 0.1.0 
    Using jekyll-redirect-from 0.12.1 
    Using jekyll-relative-links 0.4.0 
    Using jekyll-seo-tag 2.1.0 
    Using jekyll-sitemap 1.0.0 
    Using jekyll-theme-architect 0.0.3 
    Using jekyll-theme-cayman 0.0.3 
    Using jekyll-theme-dinky 0.0.3 
    Using jekyll-theme-hacker 0.0.3 
    Using jekyll-theme-leap-day 0.0.3 
    Using jekyll-theme-merlot 0.0.3 
    Using jekyll-theme-midnight 0.0.3 
    Using jekyll-theme-minimal 0.0.3 
    Using jekyll-theme-modernist 0.0.3 
    Using jekyll-theme-primer 0.1.7 
    Using jekyll-theme-slate 0.0.3 
    Using jekyll-theme-tactile 0.0.3 
    Using jekyll-theme-time-machine 0.0.3 
    Using jekyll-titles-from-headings 0.1.5 
    Using jemoji 0.8.0 
    Using github-pages 132 
    Bundle updated! 
    
    個の

    バンドル幹部 - フルエラーメッセージ

    $ bundle exec jekyll serve 
    /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:40:in `block in setup': You have already activated json 2.0.2, but your Gemfile requires json 1.8.6. Prepending `bundle exec` to your command may solve this. (Gem::LoadError) 
         from /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/forwardable.rb:228:in `each' 
         from /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/forwardable.rb:228:in `each' 
         from /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:25:in `map' 
         from /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:25:in `setup' 
         from /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler.rb:100:in `setup' 
         from /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler/setup.rb:10:in `<top (required)>' 
         from /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
         from /cygdrive/c/Users/mochapenguin/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    

    JSONの宝石

    $ gem list json 
    
    *** LOCAL GEMS *** 
    json (default: 2.0.2, 1.8.6) 
    

    バンドルショーJSON

    $ bundle show json 
    /cygdrive/c/Users/mochapenguin/.rvm/gems/ruby-2.4.0/gems/json-1.8.6 
    

    defaulをアンインストールすることはできませんトンの宝石

    $ gem uninstall json -v2.0.2 
    ERROR: While executing gem ... (Gem::InstallError) 
        gem "json" cannot be uninstalled because it is a default gem 
    

    UPDATE - 12年04月2017

    私はまだ問題があるのか​​分からないが、私はこれにGemfileをトリムダウンし、それがヒープに落ちません。おそらく、特定のバージョンの依存関係が強制されていないときに、何とか動作します。

    source 'https://rubygems.org' 
    
    # sample suggested [here](https://jekyllrb.com/docs/github-pages/) and in github help 
    gem 'github-pages', group: :jekyll_plugins 
    

    UPDATE - 21年04月2017

    at Gem Versioning and Bundler - Doing it right

    バンドラーのサンドボックスは、非常に存在するその能力に依存して強調表示されバンドラとシステム宝石と、この問題Rubyプロセスの初めから、ロードされたすべてのライブラリのバージョンがGemfile.lockにリストされているライブラリのバージョンを反映することを保証する機能があります。システム実行可能ファイルを実行すると、Bundlerがロードパスを変更して通常のRubygems読み込み機構を置き換える前にRubyコードを実行しているため、管理対象外の任意の宝石をメモリに読み込むことができます。 これが起こると、すべての賭けはオフになります。

    これは、このような状況で何が起こっているように見えるものです。

    しかし、上記のように、システムjson 2.0.2 gemをアンインストールできません。

    +0

    これに対する解決方法を見つけましたか? – meeDamian

    +0

    申し訳ありません。 12月4日からの更新は私が得た最高のものです。私はjekyllコマンドを実行するためだけに必要なので、私はそれ以上見ていませんでした。私はあなたが宝石セットを定義することもできると信じています。それは現在の状況の中で次善策かもしれない。 HTH。 – JetStream

    答えて

    -4

    私は昨日同じ問題を抱えていました。私は専門家ではないですが、私のために働い以下:

    私が使用してジキルとの新しいウェブサイトを作成しました:

    $ jekyll new "name_site" 
    

    を私は、古いに新しいフォルダから新しいGemFileとGemFile.lockをコピー(どこに問題があるのか​​)。次に、実行します:

    $ jekyll serve 
    

    あなたの現在のウェブサイトのフォルダにあります。それがあなたのために働くかどうか私に教えてください!

    +0

    これは、実行中のメイン・ジェム(この場合はjekyll)の周りのラッパーのように動作し、Gemfileで定義された依存関係を適用するために、バンドル・ジェムがキックするために 'bundle exec'で実行する必要があると私は思っています。 – JetStream

    1

    少し遅れてゲームに出たが、ちょっと、私は解決策がある!これは私のやり方です:宝石が設置されているあなたの標準的な場所を見ることに加えて、宝石が明らかに「定義」されてシステムに持ち込まれる場所がもう1つあります。私は(私はRVMの上にこれをお勧めします)rbenvを使用してのものをインストールし、これらは私のためのディレクトリです:

    /home/jf/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems 
    /home/jf/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/specifications/default 
    

    あなたのケースでは、あなたの正確な場所は、/ sが異なる場合がありますが、あなたはそれを把握することができるはずです。宝石が標準的な場所(/home/jf/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems)にある場合、問題なく "gem uninstall"することができます。しかし、他の場所では...タフ。 Gemfileのバージョンを使用できるようにシステムのバージョンが認識されないようにするには、json-X.gemspecファイルをその別のディレクトリ(上記の/home/jf/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/specifications/default)から離れて移動するだけです。以上です!

    +0

    うわー、なんて狂った修正...ありがとう! ruby-2.5.0/lib/ruby​​/gems/2.5.0/specifications/default/json-2.5.0に 'ruby-install'を' chruby'と一緒に使用し、 2.1-0.gemspec'。これにより、私のバンドルはjson-1.8.6を再び使用することができました –

    関連する問題