【问题标题】:bundler version claims to exist, but does notbundler 版本声称存在,但不存在
【发布时间】:2021-09-16 21:09:21
【问题描述】:

如何解释和补救?

-bash> gem list bundler

*** LOCAL GEMS ***

bundler (default: 2.2.21)

-bash> bundler --version
Bundler version 2.1.4

-bash> gem uninstall bundler:2.1.4
Gem 'bundler' is not installed

-bash> gem environment | grep INSTALL
  - INSTALLATION DIRECTORY: /Users/me/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0
  - USER INSTALLATION DIRECTORY: /Users/me/.gem/ruby/2.7.0

-bash> find /Users/me/.rbenv/versions/2.7.4/ -name "bundler*"                   
/Users/me/.rbenv/versions/2.7.4//bin/bundler                                    
/Users/me/.rbenv/versions/2.7.4//lib/ruby/2.7.0/rubygems/bundler_version_finder.rb
/Users/me/.rbenv/versions/2.7.4//lib/ruby/2.7.0/exe/bundler                     
/Users/me/.rbenv/versions/2.7.4//lib/ruby/2.7.0/bundler.rb                      
/Users/me/.rbenv/versions/2.7.4//lib/ruby/2.7.0/bundler                         
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/specifications/default/bundler-2.2.21.gemspec
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/cache/bundler              
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/cache/bundler-2.2.21.gem   
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/doc/bundler-2.2.21         
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/doc/bundler-2.2.27         
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/bootsnap-1.8.1/lib/bootsnap/bundler.rb
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/bundler-2.2.21        
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/bundler-2.2.21/exe/bundler
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/rubocop-1.13.0/lib/rubocop/cop/bundler
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/bootsnap-1.7.4/lib/bootsnap/bundler.rb
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/rubocop-1.21.0/lib/rubocop/cop/bundler
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/gems/simplecov-0.17.1/lib/simplecov/profiles/bundler_filter.rb
/Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/bundler                    
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/LockfileParser/bundler_version-i.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/bundler_major_version-c.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/Standalone/bundler_path-i.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/Plugin/API/Source/bundler_plugin_api_source%3f-i.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/Fetcher/bundler_cert_store-i.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/CLI/Gem/bundler_dependency_version-i.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Bundler/SharedHelpers/bundler_ruby_lib-i.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Gem/BundlerVersionFinder/bundler_version_with_reason-c.ri
/Users/me/.rbenv/versions/2.7.4//share/ri/2.7.0/system/Gem/BundlerVersionFinder/bundler_version-c.ri

【问题讨论】:

    标签: bundler


    【解决方案1】:

    我无法解释,但补救措施是:

    1. 从呈现default的文件夹中删除bundler-2.2.21.gemspec
    2. 重新安装所需的版本。

    卸载bundler 将不起作用:

    -bash> gem uninstall bundler
    Gem bundler-2.2.21 cannot be uninstalled because it is a default gem
    

    注意上面find 命令输出中的以下行:

    /Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/specifications/default/bundler-2.2.21.gemspec
    

    移除它以移除此 gem 的“默认”状态:

    rm /Users/me/.rbenv/versions/2.7.4//lib/ruby/gems/2.7.0/specifications/default/bundler-2.2.21.gemspec
    

    现在无法卸载...

    -bash> gem uninstall bundler
    Gem 'bundler' is not installed
    

    确实……

    -bash> bundler --version
    Traceback (most recent call last):
            2: from /Users/me/.rbenv/versions/2.7.4/bin/bundler:23:in `<main>'
            1: from /Users/me/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems.rb:296:in `activate_bin_path'
    /Users/me/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems.rb:277:in `find_spec_for_exe': Could not find 'bundler' (2.1.4) required by your /Users/me/Projects/kinside/kinside/Gemfile.lock. (Gem::GemNotFoundException)
    To update to the latest version installed on your system, run `bundle update --bundler`.
    To install the missing version, run `gem install bundler:2.1.4`
    

    所以安装想要的版本:

    -bash> gem install bundler:2.2.21
    Successfully installed bundler-2.2.21
    Parsing documentation for bundler-2.2.21
    Installing ri documentation for bundler-2.2.21
    Done installing documentation for bundler after 3 seconds
    1 gem installed
    

    检查:

    -bash> bundler --version
    Bundler version 2.2.21
    
    -bash> gem list bundler
    
    *** LOCAL GEMS ***
    
    bundler (2.2.21)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多