该技能用于 Ruby 的包管理实践,围绕 gems 与 Bundler 展开。
用途:管理项目依赖、创建 gem、构建并发布到 RubyGems。
主要能力:
- Gemfile 编写:声明 source、ruby 版本、生产/开发/测试分组、git 与本地 path 依赖、指定分支或 tag、require 选项。
- 版本约束:精确版本、~> 悲观运算符、>=、区间与多重约束。
- Bundler 命令:bundle install(可用 --path vendor/bundle)、bundle update(可指定 gem)、bundle outdated、bundle show、bundle exec、bundle open、bundle check、bundle clean、bundle list、bundle viz。
- Gemfile.lock:锁定版本以保证一致安装,建议提交到版本控制,可用 rm Gemfile.lock && bundle install 重新生成。
- 创建 gem:bundle gem my_gem 生成目录结构(lib、spec、bin、gemspec、Rakefile 等),并编写 gemspec、version.rb 与主库文件。
- 构建与发布:gem build my_gem.gemspec、本地 gem install ./my_gem-0.1.0.gem、gem push my_gem-0.1.0.gem,以及 gem yank/unyank。
- 其他命令:gem list、search、info、dependency、update、cleanup、env、install -v、--no-document、uninstall、fetch。
使用方式:在 Gemfile 声明依赖后运行 bundle install;用 bundle exec 执行命令以确保使用锁定版本;创建 gem 时用 bundle gem 生成骨架,编辑 gemspec 与版本文件后 gem build 并 gem push 发布。
适用场景:日常 Ruby 项目依赖管理、gem 开发与版本发布、私有源或 git 源依赖、按平台与分组安装 gem。
限制与注意:资料未提供收费、平台支持范围与具体性能数据;需注意不提交 vendor/bundle、避免不必要地使用 require: false 与精确版本、不推送未测试版本、不打包无关文件、不在 gemspec 或 Gemfile 中硬编码凭证。故障排查可用 bundle clean --force、删除 Gemfile.lock 重新生成、bundle install --verbose 等。