最新 gem 版本未安装

Latest gem version not installing

如果你查看 facebookbusiness gem,你会注意到当前最新版本是 0.4.0.1

然而 运行 gem install 'facebookbusiness' 给出: 成功安装facebookbusiness-0.3.3.4 1 gem 安装

尝试使用 gem 'facebookbusiness', '~> 0.4.0.1' 在 gem 文件中指定版本会导致 Could not find gem 'facebookbusiness (~> 0.4.0.1)' in any of the gem sources listed in your Gemfile.

当我输入 gem env 时,我得到:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.4
  - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-darwin17]
  - INSTALLATION DIRECTORY: /Users/me/.rvm/gems/ruby-2.5.1@rails
  - USER INSTALLATION DIRECTORY: /Users/me/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /Users/me/.rvm/rubies/ruby-2.5.1/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /Users/me/.rvm/gems/ruby-2.5.1@rails/bin
  - SPEC CACHE DIRECTORY: /Users/me/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/me/.rvm/rubies/ruby-2.5.1/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-17
  - GEM PATHS:
     - /Users/me/.rvm/gems/ruby-2.5.1@rails
     - /Users/me/.rvm/rubies/ruby-2.5.1/lib/ruby/gems/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-document"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/bin
     - /usr/local/sbin
     - ~/bin
     - /Users/me/.npm-packages/bin
     - /Users/me/.rvm/gems/ruby-2.5.1@rails/bin
     - /Users/me/.rvm/gems/ruby-2.5.1@global/bin
     - /Users/me/.rvm/rubies/ruby-2.5.1/bin
     - /Users/me/.rvm/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/go/bin
     - /opt/X11/bin
     - /usr/local/bin

知道发生了什么事吗?

gem install 从 rubygems.org 中提取已发布的 gem。仅仅因为开发人员将更新版本推送到他们的 git 存储库并不意味着他们也将 gem 的更新版本发布到 rubygem。

在这种情况下,这正是发生的事情。 rubygems 的最新发布版本可以在这里看到:https://rubygems.org/gems/facebookbusiness/

可能是他们 git 存储库中的版本不稳定,或者由于某些其他原因尚未准备好发布,例如文档尚未准备好,或者它依赖的 API on 尚未公开,或在发布前正在接受安全审查,或您能想到的任何其他原因。如果您无论如何都想使用它,那么在您的 Gemfile 中这样做非常简单:

gem 'facebookbusiness', git: 'git@github.com:facebook/facebook-ruby-business-sdk'

然后 运行 bundle install 直接从 GitHub.

拉取 gem

http://git:// URL 是不安全的。中间人攻击者可能会在您签出代码时篡改代码,并可能向您提供恶意代码,而不是您打算签出的代码。因为 :github 快捷方式在 Bundler 1.x 版本中使用 git:// URL,我们建议使用 HTTPS URL 或覆盖 :github 使用您自己的 HTTPS git 来源的快捷方式。

在 Gemfile

中添加 gem 不是个好方法
gem 'facebookbusiness', git: 'git@github.com:facebook/facebook-ruby-business-sdk'

在 Gemfile 中添加 gem 的好方法

gem 'facebookbusiness', github: 'facebook/facebook-ruby-business-sdk'

使用 branch

在 Gemfile 中添加 gem 的更好方法
gem 'facebookbusiness', github: 'facebook/facebook-ruby-business-sdk', branch: 'branch_name'

gem 'facebookbusiness', github: 'facebook/facebook-ruby-business-sdk', ref: 'ref_number'

gem 'facebookbusiness', github: 'facebook/facebook-ruby-business-sdk', tag: 'tag_number'

为了安全起见和防止以后出现故障,请不要使用 master 分支代码。

希望对您有所帮助。