0

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

但是运行gem install 'facebookbusiness'给出:成功安装了facebookbusiness-0.3.3.4 1 gem installed

尝试在 gem 文件中指定一个版本,gem 'facebookbusiness', '~> 0.4.0.1'结果是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

有什么想法吗?

4

2 回答 2

3

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

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

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

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

然后运行bundle install直接从 GitHub 拉取 gem。

于 2019-08-09T06:51:09.503 回答
1

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

在您的 Gemfile 中添加 gem 不是好方法

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

在 Gemfile 中添加 gem 的好方法

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

使用分支在 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分支代码。

我希望这会有所帮助。

于 2019-08-09T07:23:52.303 回答