RubyGems Guides

RubyGems Guides

Learn how RubyGems works, and how to make your own.

The RubyGems software allows you to easily download, install, and use ruby software packages on your system. The software package is called a "gem" and contains a package Ruby application or library.

Gems can be used to extend or modify functionality in Ruby applications. Commonly they're used to distribute reusable functionality that is shared with other Rubyists for use in their applications and libraries. Some gems provide command line utilities to help automate tasks and speed up your work.

RubyGems Basics

Use of common RubyGems commands

What is a gem?

Unpack the mystery behind what’s in a RubyGem.

Make your own gem

Start with an idea, end with a distributable package of Ruby code.

Gems with Extensions

Creating a gem that includes an extension that is built at install time.

Name your gem

Our recommendation on the use of “_” and “-“ in your gem’s name.

Publishing your gem

Start with an idea, end with a distributable package of Ruby code.

Security Practices

How to build and install cryptographically signed gems– and other security concerns.


Common gem packaging patterns and recommendations for building yours.

Specification Reference

Learn about the data in each gem package and how you can configure it.

Command Reference

In depth coverage of each gem command.

RubyGems API

The API documentation for the RubyGems library. API

Interact with publicly available gems over HTTP.

Run your own gem server

Need to serve gems locally or for your organization? Go here.


Great blog posts, tutorials, and other sites to help you out.

Contributing to RubyGems

How you can help make RubyGems and the surrounding ecosystem better.

Frequently Asked Questions

More of the “why” and “wtf” than “how”.


Extensions that use the RubyGems plugin API.


This site is open source and its content is Creative Commons licensed.