・他の環境で同じものを作るときも容易にgemリも合わせて環境構築ができる。
・通常のgemでは、依存関係を最新のものでカバーされてしまうらしい。また同じ環境で同じgem
でも異なるバージョンのgemを使い分けたいときなどにも対応できる。
ということができるようです。
つまり、rubyをpikでバージョン管理し(Linuxだとrbenv)、gemをbundlerで管理ってことですね。
便利そうです。ということで入れてみます。
条件は以下の通り。
・Windows8
・rubyは2.0.0
・アプリAのためのgemのセットを作る
です。
1.bundlerのインストール
まずはbundlerをインストールしてみる。
>gem install bundler
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
Parsing documentation for bundler-1.3.5
Installing ri documentation for bundler-1.3.5
1 gem installed
で簡単だけど終了。
2.アプリA用の設定をする
アプリA用フォルダ(d:\program\a)を作成し、そこを基点にgem環境を作る。
>mkdir d:\program\a
>cd d:\program\a
>bundle init
d:\program\a>bundle init
Writing new Gemfile to d:/program/a/Gemfile
gemfileが作成されたので、これを修正し、必要なgemを記載する。今回必要なgemとしてはこの
あとに作る予定のアプリで使う、mechanizeを入れてみる。以下設定内容。
Gemfile
===
# A sample Gemfile
source "https://rubygems.org"
# gem "rails"
gem "mechanize"
===
先を指定することができる。もし間違ったら、ディレクトリごと削除すればよいだけなので、便利
らしい。
>bundle install --path gem
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Installing unf_ext (0.0.6)
Installing unf (0.1.2)
Installing domain_name (0.5.13)
Installing http-cookie (1.0.2)
Installing mime-types (1.25)
Installing net-http-digest_auth (1.4)
Installing net-http-persistent (2.9)
Installing mini_portile (0.5.1)
Installing nokogiri (1.6.0)
Installing ntlm-http (0.1.1)
Installing webrobots (0.1.1)
Installing mechanize (2.7.2)
Using bundler (1.3.5)
Your bundle is complete!
It was installed into ./gem
>
無事インストールができた!
3.bundle環境でのアプリの実行
bundle環境でアプリを実行するには
>bundle exec [アプリ名]
とするらしい。これはアプリを作成した時に改めて試そう。
4.設定ファイルをgitで管理
bundlerで他の環境でも同一の環境を作るには、アプリA用フォルダ直下に作成されている
「Gemfile」と「Gemfile.lock」を管理すればよいらしい。Gemfile.lockにはインストールされたgem
の依存関係やバージョン情報が記載されている。
>notepad .gitignore
===
.bundle
gem
===
>git init
Reinitialized existing Git repository in d:/program/a/.git/
>git add -A
warning: LF will be replaced by CRLF in Gemfile.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Gemfile.lock.
The file will have its original line endings in your working directory.
>git commit -m "ruby 2.0.0 initial commit"
[master (root-commit) a39b353] ruby 2.0.0 initial commit
warning: LF will be replaced by CRLF in Gemfile.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Gemfile.lock.
The file will have its original line endings in your working directory.
3 files changed, 41 insertions(+)
create mode 100644 .gitignore
create mode 100644 Gemfile
create mode 100644 Gemfile.lock
>git add -A
warning: LF will be replaced by CRLF in Gemfile.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Gemfile.lock.
The file will have its original line endings in your working directory.
>git commit -m "ruby 2.0.0 initial commit"
[master (root-commit) a39b353] ruby 2.0.0 initial commit
warning: LF will be replaced by CRLF in Gemfile.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Gemfile.lock.
The file will have its original line endings in your working directory.
3 files changed, 41 insertions(+)
create mode 100644 .gitignore
create mode 100644 Gemfile
create mode 100644 Gemfile.lock
>git log
commit a39b35337544c6abbe16272350bcd5be897d00ac
Author: Chikayuki Hayashi <hayachi617@gmail.com>
Date: Sun Sep 22 03:31:02 2013 +0900
ruby 2.0.0 initial commit
>
これでgitにUPされた。めでたし。
0 件のコメント:
コメントを投稿