首页 > 解决方案 > 捆绑器无法安装

问题描述

我正在尝试更新项目中的捆绑程序。我更新了 rbenv ruby​​ 2.6.6。然后我运行 bundle install 并没有发生任何事情。我按照错误消息中的说明进行操作。程序运行然后超时。

git:(master) ruby -v            
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-darwin18]
 git:(master) bundler -v         
Traceback (most recent call last):
    2: from /Users/maryhealy/.rbenv/versions/2.6.6/bin/bundler:23:in `<main>'
    1: from /Users/maryhealy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
/Users/maryhealy/.rbenv/versions/2.6.6/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Could not find 'bundler' (2.1.4) required by your /Users/maryhealy/code_old/yance/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`
git:(master) gem install bundler
^CERROR:  Interrupted
 git:(master) gem install bundler:2.1.4
^CERROR:  Interrupted

我尝试在项目目录中运行它

gem install bundler -v '~> 2.1'       
ERROR:  Loading command: install (LoadError)
    dlopen(/Users/maryhealy/.rbenv/versions/2.4.4/lib/ruby/2.4.0/x86_64-darwin17/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/maryhealy/.rbenv/versions/2.4.4/lib/ruby/2.4.0/x86_64-darwin17/openssl.bundle
  Reason: image not found - /Users/maryhealy/.rbenv/versions/2.4.4/lib/ruby/2.4.0/x86_64-darwin17/openssl.bundle
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

根据我的 gem env,我有旧版本的 ruby

➜  ~ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.6.14.1
  - RUBY VERSION: 2.4.4 (2018-03-28 patchlevel 296) [x86_64-darwin17]
  - INSTALLATION DIRECTORY: /Users/maryhealy/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0
  - USER INSTALLATION DIRECTORY: /Users/maryhealy/.gem/ruby/2.4.0
  - RUBY EXECUTABLE: /Users/maryhealy/.rbenv/versions/2.4.4/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/maryhealy/.rbenv/versions/2.4.4/bin
  - SPEC CACHE DIRECTORY: /Users/maryhealy/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/maryhealy/.rbenv/versions/2.4.4/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-17
  - GEM PATHS:
     - /Users/maryhealy/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0
     - /Users/maryhealy/.gem/ruby/2.4.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/maryhealy/.rbenv/versions/2.4.4/bin
     - /usr/local/Cellar/rbenv/1.1.2/libexec
     - ./bin
     - ./node_modules/.bin
     - /Users/maryhealy/.rbenv/shims
     - /Users/maryhealy/.rbenv/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Users/maryhealy/.composer/vendor/bin
     - /usr/local/sbin

我不知道如何解决更新捆绑器的问题。任何帮助表示赞赏?

标签: rubybundler

解决方案


安装捆绑器

您需要全局安装 Bundler,而不仅仅是当前项目(在项目目录中)。这是因为 Bundler 通过跟踪和安装所需的确切 gem 和版本为 Ruby 项目提供了一致的环境。

打开终端并写入

gem install bundler

可以通过写来检查是否安装成功

bundle -v

推荐阅读