LoginSignup
12
12

More than 5 years have passed since last update.

gemをインストールする

Last updated at Posted at 2016-09-23

gemとは

RubyGemsで管理されるrubyのアプリケーションやライブラリのことです。
gemはコンソールから簡単にインストール・削除することができます。

さっそくgemをインストールしてみます。今回はprawnというpdfを作るライブラリをいれます。
gemのインストールはgem installでできます。

gem install prawn
Fetching: ttfunk-1.4.0.gem (100%)
Successfully installed ttfunk-1.4.0
Fetching: pdf-core-0.6.1.gem (100%)
Successfully installed pdf-core-0.6.1
Fetching: prawn-2.1.0.gem (100%)
Successfully installed prawn-2.1.0
Parsing documentation for ttfunk-1.4.0
Installing ri documentation for ttfunk-1.4.0
Parsing documentation for pdf-core-0.6.1
Installing ri documentation for pdf-core-0.6.1
Parsing documentation for prawn-2.1.0
Installing ri documentation for prawn-2.1.0
Done installing documentation for ttfunk, pdf-core, prawn after 3 seconds
3 gems installed

うまくいきました。削除はgem uninstallです

gem uninstall prawn
Successfully uninstalled prawn-2.1.0

この方法でインストールするgemはgem environmentのINSTALLATION DIRECTORY以下にインストールされます。

gemコマンドでgemを入れることによるデメリット

gemの更新によってそのgemを使用しているアプリケーションが動かなくなる場合、gemコマンドはその問題を回避できません。

そこでbundler

bundlerもgemを管理するツールですがgemと違うのは、他のgemに依存され続けているgemの更新を認めません。そうすることによって、gem間の依存関係による問題を回避します。
bundlerのメリットはそれだけではありません。プロジェクト毎にgemを管理できるので、そのプロジェクト専用のgemの環境を構築できます。更に、bundlerではinstallするgemをGemfileに記述するので、そのGemFileをgit等で管理すれば複数人の開発者の開発環境を同期させることができます。

bundlerを使ったgemのインストール

bundlerではインストールするgemをGemfileに記述します。
Gemfileはbundle initで作成できます。
作成されたGemfileにインストールしたいgemを記述していくのですが、この時いろいろなバージョン指定の方法があります。

version specifiers meaning
= 指定されたバージョンのみ
> 指定されたバージョンより大きいもの
>= 指定されたバージョン以上のもの
< 指定されたバージョンより小さいもの
<= 指定されたバージョン以下のもの
~> ~> 2.2 の場合は 2.2.beta.12の様なプレスリリースのバージョン
source 'https://rubygems.org'

gem 'bootstrap-sass', '3.2.0.0'`

の様にGemfileに書いたあと、
bundle installをすることでGemfileに記述されているgemをsourceの後に指定されたurlにgemを見に行きます。

bundlerで入れたgemの保存場所

デフォルトではgemコマンドで入れた場合と同じ場所にインストールされる。インストール先を指定したい場合はbundle -install --path hoge/hugaのようにすることで指定できる。
bundleは指定された場所を覚えるので次からは指定する必要はない。

よく使うbundlerのコマンドやそのオプション

コマンド 処理
bundler install --path 指定されたpathにGemfileの内容に
もとづいてXgemをインストール
bundler exec bundlerでインストールされたコマンドを
そのコンテキストに基づいて実行する。
bundler list インストールしたgemの一覧

bundler execの意味はこの記事を書くまで知らなかった。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12