前言
RubyGems 是 Ruby 的一个包管理器。类似于 Ubuntu 的 apt-get,CentOS 的 yum,Python 的 pip,iOS 的 Cocoapods。方便 Rubyists 管理软件包(gem),分享可复用的功能,为应用、库的开发提供坚实的巨人肩膀。
Gem
Gem 一般都有 version、name 和 platform。
gem help platform
Gems 内部组成一般分为以下三部分:
- Code (including tests and supporting utilities)
- Documentation
- gemspec
示例 Gem cocoapods-search-1.0.0 代码组织结构
lib 包含 gem 的源码。
test 或者 spec 包含开发者测试的代码或者测试框架。
Rakefile 通常为 rake 程序自动化测试、生成代码、执行任务。
bin 包含可执行文件,在 gem 安装时加载到 PATH 中。
文档通常包含 README 和代码内联说明,在 gem 安装时自动生成,一般 为 RDoc 文档和 YARD 文档。
gemspec 包含 gem 的信息。
Gem 命令集
gem environment
➜ ~ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 3.0.8
- RUBY VERSION: 2.6.5 (2019-10-01 patchlevel 114) [x86_64-darwin19]
[...]
gem search
➜ ~ gem search ^rails
*** REMOTE GEMS ***
rails (4.0.0)
rails-3-settings (0.1.1)
[...]
gem install 安装
➜ ~ gem install cocoapods-clean
Fetching cocoapods-clean-0.0.1.gem
Successfully installed cocoapods-clean-0.0.1
Parsing documentation for cocoapods-clean-0.0.1
Installing ri documentation for cocoapods-clean-0.0.1
Done installing documentation for cocoapods-clean after 0 seconds
1 gem installed
gem uninstall 卸载
➜ ~ gem uninstall cocoapods-clean
Successfully uninstalled cocoapods-clean-0.0.1
gem list
➜ ~ gem list
*** LOCAL GEMS ***
actioncable (6.0.3.2)
actionmailbox (6.0.3.2)
actionmailer (6.0.3.2)
actionpack (6.0.3.2)
[...]
➜ ~ gem list --local
➜ ~ gem list --remote
gem fetch (下载 gem 但不安装)和 gem unpack (取出 .gem 内容)
➜ ~ gem fetch cocoapods-clean
Fetching cocoapods-clean-0.0.1.gem
Downloaded cocoapods-clean-0.0.1
➜ ~
➜ ~ gem unpack cocoapods-clean-0.0.1.gem
Unpacked gem: '/Users/gekang/cocoapods-clean-0.0.1'
➜ ~
➜ ~ more cocoapods-clean-0.0.1/README.md
# cocoapods-clean
This command will simply remove Podfile.lock, Pods/ and *.xcworkspace from the current project. Which I happen to do a lot.
## Installation
$ gem install cocoapods-clean
## Usage
$ pod clean
gem sources gem 源增删查
➜ ~ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com
https://rubygems.org
➜ ~ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem which 查找 gem 目录
➜ ~ gem which cocoapods
/Users/glek/.rvm/gems/ruby-2.6.5/gems/cocoapods-1.5.3/lib/cocoapods.rb