Как изменить пакетную установку по умолчанию на мой gemfile проекта? - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь установить гемы из моего Gemfile в мой проект, но когда я выполнил «установку комплекта», пакет начал устанавливать гемы по умолчанию, но не тот из моего Gemfile.

Gemfiledir: C: \ Users \ ipinhei5 \ Desktop \ Automation \ napps-ANDROIDmation

См. ниже: [пакет установки гемов по умолчанию]

C:\Users\ipinhei5\Desktop\Automation\napps-ANDROIDmation>bundle install
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using CFPropertyList 3.0.0
Using to_boolean 1.0.2
Using android-adb-extension 0.1.2
Using awesome_print 1.8.0
Using backports 3.13.0
Using builder 3.2.3
Using bundler 2.0.1
Fetching byebug 11.0.1
Installing byebug 11.0.1 with native extensions

[Мой проект Gemfile]:

source "https://rubygems.org"

gem "calabash-cucumber"
gem 'calabash-android'
gem 'cucumber'
gem 'rspec'
gem 'yml_reader'
gem 'rest-client'
gem 'android-adb-extension', '~> 0.1.1'
gem 'pry', '~> 0.10.4'
gem 'pry-byebug', '~> 3.4'
gem 'rubysl-rexml'
gem 'cpf_generator', '~> 1.0'
gem 'meglish', '~> 1.0', '>= 1.0.5'
gem 'pluoa-mapper', '~> 1.0', '>= 1.0.2'

Не могли бы вы помочь мне установить драгоценные камни из моего Gemfile?

Редактировать 1: Я думаю, что неправильно понял гемы с зависимостями.

Редактировать 2: У меня возникли некоторые ошибки при установкепакет json

Извлечение json 2.2.0 Установка json 2.2.0 с собственными расширениями Gem :: Ext :: BuildError: ОШИБКА: не удалось создать собственное расширение gem.

текущий каталог: C: /Ruby24-x64 / lib / ruby ​​/ gems / 2.4.0 / gems / json-2.2.0 / ext / json / ext / generator C: /Ruby24-x64/bin/ruby.exe -IC: / Ruby24-x64 / lib/ruby/site_ruby/2.4.0 -r ./siteconf20190412-3460-119pn5l.rb extconf.rb создание Makefile

текущего каталога: C: /Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-2.2.0/ext/json/ext/generator make "DESTDIR =" очистить текущий каталог: C: / Ruby24-x64 / lib/ruby/gems/2.4.0/gems/json-2.2.0/ext/json/ext/generator make «DESTDIR =» make failNo, такой файл или каталог - make «DESTDIR =»

Gem файлы будутоставаться установленным в C: /Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-2.2.0 для проверки.Результаты заносятся в C: /Ruby24-x64/lib/ruby/gems/2.4.0/extensions/x64-mingw32/2.4.0/json-2.2.0/gem_make.out

Произошла ошибка при установкеjson (2.2.0), и Bundler не может продолжить.Убедитесь, что gem install json -v '2.2.0' --source 'https://rubygems.org/' успешен перед объединением.

В Gemfile: calabash-android был разрешен до 0.9.8, что зависит от luffa, разрешено до 2.1.0, что зависит от json

1 Ответ

1 голос
/ 12 апреля 2019

Он не устанавливает пакеты по умолчанию. Он устанавливает пакеты в ваш Gemfile и зависимости этих пакетов. Если вы видите, что он устанавливает пакеты, которые вы не указали в своем Gemfile, это потому, что эти пакеты являются зависимостями одного или нескольких пакетов в вашем Gemfile.

Из bundle install документации :

Установите зависимости, указанные в вашем Gemfile

... Bundler извлекает все удаленные источники, разрешает зависимости и установить все необходимые драгоценные камни.

Вы можете использовать команду gem dependency с флагом --reverse-dependencies, чтобы увидеть, почему был установлен гем. В вашем случае, например, используйте gem dependency CFPropertyList --reverse-dependencies, чтобы увидеть, почему был установлен гем CFPropertyList. В самом низу вывода команды будет указано, какой пакет требует его в качестве зависимости.

Вы также можете проверить файл Gemfile.lock после запуска bundle install, чтобы увидеть список установленных пакетов и их зависимостей. Под заголовком specs вы увидите список всех установленных пакетов. Некоторые из пакетов имеют список пакетов с отступом под ними. Это зависимости пакета.

Например, давайте посмотрим, почему был установлен пакет to_boolean:

specs:
  android-adb-extension (0.1.2)
    to_boolean (~> 1.0)

В вашем Gemfile была зависимость android-adb-extension, и если мы проверим страницу android-adb-extension на rubygems, мы увидим, что to_boolean это (только) зависимость во время выполнения.

...