如何将 bundle install 从默认更改为我的项目 gemfile?

How to change bundle install from default to my project gemfile?

我正在尝试将 gems 从我的 Gem 文件安装到我的项目中,但是当我执行 "bundle install" 时,捆绑程序开始安装默认的 gems,但不是我 Gem 文件中的那个。

Gem文件目录:C:\Users\ipinhei5\Desktop\Automation\napps-ANDROIDmation

见下文: [捆绑安装默认 gems]

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

[我的项目Gem文件]:

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'

你能帮我从我的 Gem 文件中安装 gem 吗?

编辑 1:我想我误解了 gems 的依赖性。

编辑 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 -I C:/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 使 "DESTDIR=" 干净 当前目录: C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/json-2.2.0/ext/json/ext/generator 让 "DESTDIR=" make failedNo such file or directory - 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/' 在捆绑之前成功。

在Gem文件中: calabash-android 被解析为 0.9.8,这取决于 丝瓜被解析为2.1.0,这取决于 json

它没有安装 "default" 包。它正在安装您的 Gemfile 中的软件包以及这些软件包的 dependencies。如果您发现它正在安装您未在 Gemfile 中指定的包,那是因为这些包依赖于您的 Gemfile 中的一个或多个包。

来自bundle install documentation:

Install the dependencies specified in your Gemfile

...Bundler will fetch all remote sources, resolve dependencies and install all needed gems.

您可以使用带有 --reverse-dependencies 标志的 gem dependency 命令来查看安装 gem 的原因。例如,在您的情况下,使用 gem dependency CFPropertyList --reverse-dependencies 来查看为什么安装了 CFPropertyList gem。在命令输出的最底部,它会告诉您哪个包需要它作为依赖项。

您还可以在 运行 bundle install 之后检查您的 Gemfile.lock 文件,以查看您已安装的软件包列表及其依赖项。在 specs header 下,您将看到所有已安装软件包的列表。一些包下面有一个缩进包列表。这些是包的依赖项。

例如,让我们看看为什么要安装 to_boolean 软件包:

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

您的 Gemfile 中有 android-adb-extension 作为依赖项,如果我们检查 rubygem 上的 android-adb-extension 页面,我们会看到 to_boolean 它(仅)run-time 依赖。