RubyGems 导航菜单

博客

返回博文

2.1.0 Release Candidate 2

RubyGems 2.1.0 即将发布新版,增加了许多新功能并进行了一些内部更改。如果您想要试用 RubyGems 2.1.0,可以使用以下命令进行安装:

gem update --system --prerelease

要降级到 RubyGems 2.0.7,运行

gem update --system=2.0.7

如果您在安装 2.1.0.rc.1 后需要更多有关如何降级 RubyGems 的说明,请参阅升级文档。

重大增强

  • RubyGems 使用新的依赖项解析器来进行宝石安装,其类似于 bundler 解析器。新的解析器可以解决先前的解析器无法解决的冲突,并且会在发现冲突时提供改进的诊断信息。

次要增强

  • RubyGems 现在改善了 ARM 架构的平台匹配。使用“arm”CPU 构建的宝石将匹配任何特定的 ARM CPU。有关详细信息,请参见gem help platform。修复 Kim Burgestrand 发现的 #532。
  • –version 选项现在接受复合要求,就像宝石依赖项中的要求一样。以下调用将在 rails 4.0.0.beta 到 4.2 之间安装 rails

    gem install rails -v '>= 4.0.0.beta, < 4.2'
    

    修复 Gary S. Weaver 发现的 #531

  • gem clean 现在允许 -n 作为 --dryrun 的别名。Gastón Ramos 提交的 Pull Request #517
  • gem help 添加了 gem update --system。Vince Wadhwani 提交的 Pull Request #514
  • gem env 输出中添加了 PATH。Michal Papis 提交的 Pull Request #490
  • gem owner 中添加了 –host 选项,以匹配使用 gemcutter API 的其他命令。Hugo Lopes Tavares 提交的 Pull Request #462 和问题 #461
  • gem uninstall 中添加了 –abort-on-dependent。这将中止安装操作,而不会询问是否卸载另一个宝石依赖的宝石。Philip Arndt 提交的 Pull Request #549。
  • 在安装时,RubyGems 不再更改 Gem::Specification.dirs。基于 Vít Ondruch 提交的 Pull Request #452
  • 如果存在,RubyGems 通过 rbconfig.rb 的 make 优先使用 MAKEmake 环境变量。Erik Hollensbe 提交的 Pull Request #443
  • RubyGems 现在可以将远程源缓存文件保存在由 ENV["GEM_SPEC_CACHE"] 控制的另一个目录中。Michal Papis 提交的 Pull Request #489
  • 生成的私钥已加密。Pietro 在 Pull Request #453 中添加
  • Steve Klabnik 在 Pull Request #283 中将 Gem::Request 与 Gem::RemoteFetcher 分开。
  • William T Nelson 在 Bug #519 中报告 RubyGems 在验证时指明 .gem 内容已损坏。
  • Gastón Ramos 在 Pull Request #520 中重构了通用安装程序设置。
  • Gastón Ramos 在 Pull Request #521 中将激活测试移动至 Gem::Specification。
  • 如果给出带有预发布版本的 –version 选项,RubyGems 会自动启用预发布版本,但只使用最后一个版本。如果第一个版本是预发布版本,则这不适用于除非显式给出 --prerelease--no-prerelease。修复部分 #531。
  • RubyGems 现支持 SSL 客户端证书。Robert Kenny 在 Pull Request #550 中添加。
  • RubyGems 现建议如何修复权限错误。Odin Dutton 在 Pull Request #553 中添加。
  • Charles Nutter 在 Pull Request #566 中添加了将 gem 安装为 Ruby 备用实现的默认 gem 的支持。
  • Charlie Somerville 在 Pull Request #569 中通过缓存加载的 gemspec 改善了 Gem::Specification#load 的性能。
  • 即使安全策略允许未签名的 gem,如果在安装时给出 -P,RubyGems 现会在验证时对未签名 gem 发出警告;即使安全策略允许不受信任的证书,也会在看到不受信任的证书时发出警告。Issue #474 由 Grant Olson 提交。
  • RubyGems 现在可以通过 gem pristine --all --only-executables --env-shebang(或 --no-env-shebang)使用或不使用 /usr/bin/env 的 shebang 重写可执行文件。Issue #579 由 Paul Annesley 提交。
  • RubyGems 现在可以不使用 OpenSSL 运行其测试。Ruby Bug #8557 由 nobu 提交。
  • 通过缓存 Gem::Version 对象和避免在 Gem::Specification 中使用 method_missing 改善了性能。Jon Leighton 在 Pull Request #447 中添加。
  • Jesse Bowes 在 Pull Request #582 中报告 .gem 中的文件现保留其修改时间。
  • Andras Suller 在 Pull Request #595 中通过 Array#bsearch(存在时)改善了在 SpecFetcher 中查找依赖项的速度。
  • Shannon Skipper 在 Pull Request #584 中向 gem uninstall 添加了 --all 选项,该选项删除 GEM_HOME 中的所有 gem。
  • Ryan Davis 在 Issue #186 中添加了 Gem.find_latest_files,它与 Gem.find_files 等效,但只返回每个 gem 的最新版本的匹配文件。
  • 通过减少重复工作改善了 gem outdated 的性能(它仍然很慢,但在快速连接中对 250 个 gem 进行了改进,我看到提高了近 50%)。另请参阅 Gem::Specification::outdated_and_latest_version

错误修复

  • rubygems_plugin.rb 文件现只从最新安装的 gem 中加载。
Eric Hodel