Ruby on Rails: RubyGems
简介
RubyGems is a package management framework for Ruby,RubyGems
是 Ruby 程序包管理器(工具)。很多编程语言或者平台都有自己的包管理工具,如 Rust 的 cargo、RedHat 的 RPM,Ubuntu 的 apt-get 等等。RubyGems 简称 gems
,使用它可以方便地下载安装 Ruby 的软件包到自己的系统或者 Ruby 工程中,一个软件包称之为 gem
。
为了更好的使用各种轮子(gem
),在 rubygems 可以找到很多已经用 ruby 写好的框架(或者称之为 lib),我们直接复用即可,另外自己也可以开发一些 ruby 库放到 gems
中供其他人享用。
文中提到的 gems 和 RubyGems 都表示是同一个意思。
安装 RubyGems
如果你使用的是 macOS,系统已经自带来 ruby 和 对应的 RubyGems,不需要单独安装。详细情况可以参考 Ruby 开发环境搭建 这篇文章。
如果你想独立安装 RubyGems,可以去 RubyGems 官网 下载安装即可。
安装完成之后,可以通过 gem 命令
查看 gems
版本。
1 | gem --version |
RubyGems 源
使用 gems
下载每个 gem
,默认使用的下载地址是 https://rubygems.org/
,即对应的包地址在国外,速度较慢甚至会出现下载失败的情况。为了解决这个问题,Ruby 中国 提供了国内下载 gem
的通道,速度较快,源更新也比较及时。
1 | 查看 gems 源 |
可以通过 gem 命令
更改 gems
源。
1 | gem sources -remove https://rubygems.org/ |
上面两条命令等同于下面。
1 | gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ |
我们也可以查看本地的文件确定是否已经更新源
1 | cat ~/.gemrc |
更新源缓存
1 | gem sources -u |
更多关于 gem sources 的命令,可以查看帮助
1 | gem help sources |
也可以使用清华大学提供的源:https://mirrors.tuna.tsinghua.edu.cn/rubygems/
,好人一生平安。
常用的 gem 命令
下面主要以 rails 这个 gem 来举例
search
根据 RubyGem的指南,使用search
可以搜索任何 gem。
1 | gem search rails --all |
确切的搜索使用:
1 | gem search '^rails$' --all |
包括预发布版本使用 --pre
1 | gem search '^rails$' --pre |
从本地和远程服务器上查找含有rails字符串的包
1 | gem search rails --both |
只从远程服务器上查找含有log字符串的包
1 | gem search rails --remoter |
只从远程服务器上查找含有log字符串的包
1 | gem search -r rails |
(un)install
安装最新版 rails
1 | gem install rails |
安装指定版本 rails
1 | gem install rails --version 6.1.5 |
卸载 rails
1 | gem uninstall rails |
卸载指定版本的 rails
1 | gem uninstall rails -v 6.1.5 |
list
查看本地安装了哪些 gem
1 | gem list -l |
查看本地安装了哪些版本的 rails
1 | gem list '^rails$' -l |
update
1 | 更新所有包 |
其他
1 | 查找本地含有数字的包 |
参考文档
- rubygems 学习手册:https://guides.rubygems.org/rubygems-basics/
- ruby-china:https://gems.ruby-china.com/
任何小事都不能忽视,否则可能就会出大事