Ruby Gems 三两事

1,559 阅读1分钟

​RubyGems 是 Ruby 的一个包管理器。类似于 Ubuntu 的 apt-get,CentOS 的 yum,Python 的 pip,iOS 的 Cocoapods。方便 Rubyists 管理软件包(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
RubyGemsEnvironment:  
- 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 seconds1 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


欢迎关注小小公众号~