Последняя версия гема не устанавливается

Если вы посмотрите на жемчужину facebookbusiness, вы заметите, что в настоящее время последняя версия 0.4.0.1

Однако работает gem install 'facebookbusiness' дает: успешно установлен facebookbusiness-0.3.3.4 1 гем установлен

Попытка указать версию в файле 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

Есть идеи, что происходит?

2 ответа

Решение

gem install тянет опубликованный драгоценный камень от rubygems.org. Тот факт, что разработчик поместил более новую версию в свой репозиторий git, не означает, что они также опубликовали более новую версию гема на rubygems.

В этом случае именно это и произошло. Последнюю опубликованную версию на rubygems можно посмотреть здесь: https://rubygems.org/gems/facebookbusiness/

Может случиться так, что версия в их git-хранилище не стабильна или не готова к выпуску по какой-то другой причине, например, документация к ней не готова, или API, на которые она опирается, еще не являются общедоступными, или проходит проверку безопасности перед публикацией или по любой другой причине, о которой вы можете подумать. Если вы все равно хотите его использовать, это довольно просто сделать в вашем Gemfile:

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

Тогда беги bundle install вытащить драгоценный камень прямо из GitHub.

http:// а также git:// URL-адреса небезопасны. Злоумышленник может посягнуть на код во время его проверки и потенциально предоставить вам вредоносный код вместо кода, который вы хотели проверить. Поскольку :github ярлык использует git:// URL в Bundler 1.x версии, мы рекомендуем использовать HTTPS URL или переопределение :github ярлык с вашим собственным HTTPS мерзавец источник.

Не очень хороший способ добавить гем в ваш Gemfile

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

Хороший способ добавить драгоценный камень в ваш Gemfile

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

Лучший способ добавить gem в ваш Gemfile с помощью ветки

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 номер отдела.

Я надеюсь, что это полезно.

Другие вопросы по тегам