Z
ZHANK
工程化

Gem 包管理

gem install、Gemfile、Bundler、gemspec 创建自己的 gem

Gem 包管理

gem 是 Ruby 的包管理器,Bundler 管理项目依赖——Gemfile 声明依赖,Gemfile.lock 锁定版本。

学完本章你将: 掌握 gem install、Gemfile/Bundler、创建自己的 gem。


gem 命令

bash
gem install rails           # 安装
gem list                    # 列出已安装
gem update rails            # 更新
gem uninstall rails         # 卸载

Bundler 项目依赖

ruby
# Gemfile
source "https://rubygems.org"

ruby "3.3.0"

gem "rails", "~> 7.1"
gem "pg"                     # PostgreSQL
gem "puma"
gem "sidekiq"                # 后台任务

group :development, :test do
    gem "rspec-rails"
    gem "rubocop"
end
bash
bundle install        # 安装所有依赖
bundle update         # 更新依赖
bundle exec rspec     # 在 bundle 环境中运行

创建自己的 Gem

bash
bundle gem my_gem     # 生成 gem 骨架

# my_gem/
# ├── lib/my_gem.rb
# ├── my_gem.gemspec   # 元数据
# ├── Gemfile
# └── Rakefile
ruby
# my_gem.gemspec
Gem::Specification.new do |spec|
    spec.name    = "my_gem"
    spec.version = "0.1.0"
    spec.summary = "我的第一个 gem"
    spec.authors = ["小明"]
end