RubyGems
本日は、RubyGems
というソフトを使ってみます!
Rubyのライブラリを扱うことができるそうで、Ruby on RailsもRubyGemsでパッケージングされているとのこと。早速始めます😊
目次
1.RubyGemsとは
RubyGemsの公式ガイドはこちらです。
今回はこのページに従って進めていきます!英語なので、ざっくりの要約を入れながら進めていきます💪
The RubyGems software allows you to easily download, install, and use ruby software packages on your system. The software package is called a “gem” which contains a packaged Ruby application or library.
どうやらRubyにはgem
と呼ばれるソフトがあるそうで、Rubygemsは、この gem を使えるようにしてくれるみたいですね。
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.
gemというのは、Rubyの機能性を拡張できるものらしく、他の人と共有したりできるみたいです。
なんだかUNIXみたいですね👀
2.gemのインストール
まずgemをインストールします。
INSTALLING GEMSのとおりにインストールしてみます!
$ gem install drip
最後の行に2 gems installed
とあります。
これはdrip
というgemと合わせて、rbtree
というgemも一緒にインストールされているようですね!!🎉
よく見るとrbtree
が先にインストールされて、rbtree
が拡張されてdrip
がインストールされているようですね。
rbtree
とやらが何なのか、公式サイトで検索できました!便利〜😎
rbtree | RubyGems.org | your community gem host
A RBTree is a sorted associative collection that is implemented with a Red-Black Tree. It maps keys to values like a Hash, but maintains its elements in ascending key order. The interface is the almost identical to that of Hash.
rbtree
はRedとBlackのTreeのことで、赤と黒のツリー表示で何かを表している専門用語のようです😪笑
ではdrip
は?というと、以下の解説が書かれています。
Simple RD-Stream for Rinda::TupleSpace lovers.
さっぱり何言ってるか分かりませんね〜😂
RDストリームも Rinda も TupleSpace も、調べてみると深そうなのでとりあえず今は置いておきます。
ひとまず、RubyGems で gem のインストールはできました👏
3.gemの一覧を表示
インストール済みの gem を一覧表示することができます。
gem list
いつの間にか沢山ありますね😳😳最初から入っているのでしょうか。
リモートで gem を探したい時はsearch
を使って検索できます。
gem search キーワード
先程インストールしたdrip
で検索してみました!
他にもいろいろな gem があるのが確認できました💡
4.gemの更新
gemを更新するには、以下のコマンドを実行します。
gem update gem名
gem名を指定しない場合、全部のgemをアップデートします。
私の場合は1分くらい処理をして、アップデートが完了しました👌
ログがすごく長いので、キャプチャは割愛します😆
5.gemのアンインストール
gemをアンインストールするには以下のコマンドを実行します。
gem uninstall gem名
ではdrip
をアンインストールします👋
RubyGemsについては今後使っていくと思いますが、とりあえず導入は以上です!✨