プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】Bundler、Gemfileについて
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】Bundler、Gemfileについて

11.23

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

Bundlerとは?

RubyのライブラリであるRubyGemsを管理するためのツールで、開発プロジェクトごとにRubyGemsの依存関係を管理してくれます。これ自体もRubyGemsとして提供されています。

Bundlerがやってくれること

  • Rails等のRuby開発に必要なライブラリをまとめてダウンロードや、インストールすることができる。
  • 1つのマシンに、同じRubyGemsが複数バージョン使われていた場合は、プログラムを実行するRubyGemsを適切に切り替えてくれる。

Bundlerのインストール方法

「Bundler」自体がRubyGemsなので、下記のコマンドで最初にインストールする必要があります。

1
gem install bundler

上記は、Windows7へrubyinstallerを使ったBundlerインストールのキャプチャになります。

Bundlerの動作やコマンド等

bundle init

Bundlerでgemを管理したいプロジェクトのディレクトリでこのコマンドを実行するとGemfileというファイルが生成されます。

bundle install

Gemfileにて記述したGemをインストールするコマンドです。その際に「Gemfile.lock」が作成されます。ここにはに記録されてbundlerを介して同じバージョンでの実行が保証されます。仮に利用しているgemのバージョンがアップして最新版が新たに配信されているとしてもbundlerはバージョンをロックするため自動的に環境に反映されることはありません。

なお、あるGemに依存関係のある別のGemも合わせてインストールされることになります。

オプション
-j4

jobs=4の略で、gemのインストールを並列におこなってくれるオプションになります。

bundle update

gemファイルのバージョンを指定の範囲内で最新版にアップデートします。(このコマンドを実行しない限りはGemfile.lockにてバージョン固定されます。)bundle updateした後はバージョンがどのように上がったのかは必ずチェックするようにしましょう。

Gemfileとは?

BundlerがRailsアプリで使うRubyGemsを管理するためのものでRailsのルートフォルダに存在しています。

Railsで使うgemのバージョンを指定することができます。(なお、バージョン指定を省略することも可能で省略した場合は最新版のgemがインストールされることになります。)

Gemfileの書き方

1
gem 'gem名','バージョン指定'

更新方法

まずは、Gemfileを更新します。

次に、次のコマンドを実行するとGemfileの記述に従ったバージョンのgemがインストールされます。

1
bundle update gem名

また、gemの依存関係を示したGemfile.lockファイルも更新されます。(このファイルもGemfile同様にRailsのルート直下にあります。)

Gemfile.lockについて

別のPCやサーバーで同じバージョンのGemをインストールしたい場合に使うファイルです。ある環境で設定したGemfile.lockを別のPCにそのまま持っていくことによって同じバージョンのGemを共有して使うことができるようになります。

使用例

  • Railsアプリを開発用PCと公開用サーバーで同じバージョンのGemを活用して動かす。
スポンサーリンク
  • 2019 11.23
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 11.27

    【Ruby on Rails】テンプレートエンジンの種類(ERB,Haml,Slim)

  2. 2020 11.11

    【Ruby on Rails】「Capistrano」について

  3. 2019 11.17

    【Ruby】日付や時刻を扱うクラス

  4. 2019 12.30

    【Ruby on Rails】「Model Spec(モデルスペック)」の基本

  5. 2021 02.06

    【Rails】「find_or_initialize_by」や「find_or_create_by」について

  6. 2020 01.10

    【Ruby on Rails】「cancancan」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】アプリケーションサーバ「…

【セキュリティ】CSRF(クロスサイトリクエストフォー…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー