- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我编写了一个 rake 任务来对子目录中的 Berksfile 执行 berks package
命令:
task :cook do
`berks package ./cookbooks.tar.gz -b ./cookbook/Berksfile`
end
我也试过这些变化:
task :cook do
`.\\scripts\\berks_package.bat` # containing stuff
end
task :cook do
`C:\\opscode\\chefdk\\embedded\\bin\\ruby.exe "C:\\opscode\\chefdk\\bin\\berks" package ..\\cookbooks.tar.gz -b ..\\cookbook\\Berksfile`
end
无论我如何执行 berks,任务都会失败并出现以下错误:
C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/resolver.rb:434:in `version_conflict': Bundler could not find compatible versions for gem "nokogiri": (Bundler::VersionConflict)
In snapshot (Gemfile.lock):
nokogiri (1.6.5)
In Gemfile:
albacore (~> 2.0.0) x86-mingw32 depends on
nokogiri (~> 1.5) x86-mingw32
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/resolver.rb:232:in `resolve_for_conflict'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/resolver.rb:250:in `resolve_conflict'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/resolver.rb:373:in `resolve'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/resolver.rb:166:in `start'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/resolver.rb:129:in `resolve'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:193:in `resolve'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:132:in `specs'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:177:in `specs_for'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/definition.rb:166:in `requested_specs'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/environment.rb:18:in `requested_specs'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/runtime.rb:13:in `setup'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler.rb:122:in `setup'
from C:/tools/ruby213/lib/ruby/gems/2.1.0/gems/bundler-1.7.9/lib/bundler/setup.rb:17:in `<top (required)>'
from C:/opscode/chefdk/embedded/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from C:/opscode/chefdk/embedded/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
rake aborted!
Albacore::CommandFailedError: Command failed with status (1):
.\scripts\berks_package.bat
从命令提示符执行 berks package ./cookbooks.tar.gz -b ./cookbook/Berksfile
与在任务中执行其他正常系统命令一样。
gem 文件:
source 'https://rubygems.org'
gem 'albacore', '~> 2.0.0'
gem 'semver2', '~> 3.4.0'
Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
albacore (2.0.16)
map (~> 6.5)
nokogiri (~> 1.5)
rake (~> 10)
semver2 (~> 3.4)
map (6.5.5)
mini_portile (0.6.1)
nokogiri (1.6.5-x64-mingw32)
mini_portile (~> 0.6.0)
rake (10.4.2)
semver2 (3.4.0)
PLATFORMS
x64-mingw32
DEPENDENCIES
albacore (~> 2.0.0)
semver2 (~> 3.4.0)
最佳答案
我在写问题时弄清楚了问题并偶然发现了新想法。
根本问题是与 ChefDK 一起安装的 Ruby 二进制文件和 gems 与 Ruby 的系统安装冲突。具体来说,rake任务是在系统Ruby安装下执行的,但是执行berks时,它是在嵌入式ChefDK Ruby下运行的。我不清楚下一部分,但 ChefDK Ruby 似乎知道 Gemfile 并尝试自行解决依赖关系,但由于 nokogiri 无法由 Windows 上的 bundler 轻松解决(即构建),因此失败了。
以下是我为解决问题所做的工作:
C:\opscode\chefdk\bin
添加到系统 PATH 变量中,以便我可以运行 ruby、rake、gem、bundle 等。gem install nokogiri
(现在在 ChefDK 的 Ruby 下执行)bundle install
重新创建了 Gemfile.lock 文件Bundler.with_clean_env
block 围绕 berks 系统调用(这是关键!)
任务现在看起来像:
task :cook do
Bundler.with_clean_env do
`berks package cookbooks.tar.gz -b .\\cookbook\\Berksfile`
end
end
关于windows - 从 Windows 上的 rake 任务执行 berks 命令时出现 Bundler 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711480/
我开始使用一个新项目,它基于 ruby 1.8.7,我使用 rvm 来管理我的 ruby 版本,我已经安装了 1.8.7 和 1.9.2。 重要的是当我这样做的时候: rvm use 1.8.
ERROR: paperclip is not part of the bundle. Add it to Gemfile. (Gem::LoadError) 添加paperclip bundle 列
如何强制 Bundler 重新安装 gemfile 中的所有 gem?或者,如何强制 Bundler 卸载它安装的所有 gem,以便我可以自己重新安装它们? 我看到了rails bundle clea
如果我更改 Gemfile 中所需的 bundler 版本,然后键入 bundle,我得到 Bundler could not find compatible versions for gem "bu
我在存储库中有一个缓存的 gem。 gem 是使用 bundle package --all 保存的。命令。 在未安装 Bundler 但确实有此 repo 副本的新建机器 (centos) 上,我想
我正在用 Jekyll 制作 GitHub 博客页面。我失败了很多次,只是 fork 了一个新的,然后按照存储库上的自述文件进行操作。 它是 https://github.com/jancziziko
我遇到了 bundle 的以下错误 Bundler could not find compatible versions for gem "bundler": In Gemfile: bundler
这里是 Ruby 和 Rails 的完全新手...过去尝试过一些教程,但仅此而已。我正在尝试学习“Ruby on Rails 3 教程”一书,但遇到了障碍,在此处和 Google 上搜索后我无法找到任
bundle有什么区别& bundler命令? bundle有什么区别& bundle install ? 如果没有区别,为什么有多个命令做同样的事情? 最佳答案 可执行文件 bundle & bun
Bundler 1.1.1 似乎与 rake 不兼容。 我不知道发生了什么,我正在尝试安装 webistrano,当我运行以下命令时 RAILS_ENV=production rake db:migr
标题就是问题,这里是提示它的上下文。 gem 文件: source "http://rubygems.org" # Specify your gem's dependencies in the gem
当我使用 require 'bundler/setup' 我得到 Bundler.with_clean_env 不受支持。 但是当我把它改成 require 'bundler' 它支持Bundler.
我是 Rails 的新手,正在尝试启动并运行演示应用程序。我的 linux 系统(lubuntu,主要是全新安装)在运行“捆绑安装”时遇到了问题。即使是这样,如果我关闭我的终端并启动另一个终端,它也无
所以我在我的电脑硬盘上安装了鹦鹉操作系统, 之后我更新了漏洞系统并尝试运行 MSFCONSOLE . 执行该命令后,我收到此错误: Bundler failed to load and return
我正在使用 heroku,每次我尝试推送我的应用程序时都会显示此消息: remote: Compressing source files... done. remote: Building sourc
我几天前才开始使用 ruby。我不完全理解 gemfile 的概念。我的 Gemfile 看起来像: source 'http://rubygems.org' gem 'sunspot_solr'
这是: require 'bundler' Bundler.setup 完成与: require 'bundler/setup' 据我所知,bundler/setup 自动要求所有组,而 requir
我已尝试使用 Elastic Beanstalk for rails。当我运行 eb deploy 时,我收到了这个错误。我需要至少安装 bundler 1.8.4。知道如何解决这个问题吗? Bun
在 Rails 应用程序中,在 boot.rb 中,有一行: require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) 在appli
您好,我一直在尝试安装 Ruby gem 包。收到此消息后,我按照 gem install bundle 的说明进行操作,但是当我键入 bundle -v 时它仍然不起作用。我也打字 捆绑并接收 /U
我是一名优秀的程序员,十分优秀!