无法安装最新的gem版本

时间:2019-08-09 06:14:25

标签: ruby github bundler facebook-business-sdk

如果您查看facebookbusiness gem,将会发现当前的最新版本是0.4.0.1

无论如何运行gem install 'facebookbusiness'都会: 成功安装facebookbusiness-0.3.3.4 已安装1个宝石

尝试使用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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

gem install从rubygems.org中获取已发布的宝石。仅仅因为开发人员已将新版本的git推入其git存储库,并不意味着他们也已将gem的新版本发布到rubygems。

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

可能是因为他们的git存储库中的版本不稳定,或者由于其他原因(如文档尚未准备好或者它所依赖的API尚未公开)而尚未准备好发布可用,或者在发布之前正在接受安全审查,或者您可以想到的任何其他原因。如果您仍然想使用它,那么在您的Gemfile中使用它非常简单:

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

然后运行bundle install,直接从GitHub提取宝石。

答案 1 :(得分:1)

http://git://的网址不安全。中间人攻击者可能会在您检出代码时篡改该代码,并可能向您提供恶意代码,而不是您打算检出的代码。由于:github快捷方式在Bundler git://版本中使用1.x URL,因此我们建议使用HTTPS URL或将:github快捷方式替换为您自己的{{1} } git源。

在Gemfile中添加gem的好方法

HTTPS

在Gemfile中添加gem的好方法

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

通过分支在Gemfile中添加gem的更好方式

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

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' 分支代码。

我希望对您有帮助。