                                                                   K-Ruby 資料  BundlerやらRailsやら基本的なこと                     ...
                                                                  K-Ruby 資料 皆さんご存知の...                    https://rvm.beg...
                                                                 K-Ruby 資料 RVMについて    ●   RVM         –   バージョン環境を簡単に切り替え...
                                                                 K-Ruby 資料 RVMについて    ●   RVM         –   「.rvm」配下に何か色々作ら...
                                                               K-Ruby 資料 今回紹介するのは...                    http://gembundler...
                                                                K-Ruby 資料 Bundlerについて    ●   Bundler         –   RubyGems...
                                                                   K-Ruby 資料 Bundlerの導入    ●   まずは,RVMの削除        $ rvm se...
                                                                      K-Ruby 資料 Bundlerの導入    ●   Bundlerをインストール         ...
                                                                    K-Ruby 資料 BundlerによるRailsアプリ作成    ●   Railsアプリ用のディレクト...
                                                                       K-Ruby 資料 BundlerによるRailsアプリ作成    ●   インストールする gem...
                                                                 K-Ruby 資料 BundlerによるRailsアプリ作成    ●   gemファイルのインストールパスを指...
                                                                    K-Ruby 資料 BundlerによるRailsアプリ作成    ●   Railsのスケルトン作成  ...
                                                                         K-Ruby 資料 BundlerによるRailsアプリ作成    ●   全てのgemコマンド...
                                                             K-Ruby 資料 まとめ    ●        システムや開発環境単位ではなく,アプリケーション単位で       ...
                                                               K-Ruby 資料 実践! (1)まずはDBとテーブルの作成    $ mysql -u root -p    my...
                                                                 K-Ruby 資料 (2)Bundlerを使ったRails環境構築    $   mkdir my_app   ...
                                                                      K-Ruby 資料 (3)新規アプリ作成とMySQL DBの指定     $ bundle exec ...
                                                                         K-Ruby 資料 (4)Studentモデル作成(O/R Mapping)    $   bu...
                                                                            K-Ruby 資料 (5)routingとStudentsコントローラの作成    $ v...
                                                                            K-Ruby 資料 (6)ビューの作成,コントローラとの連携    $ echo "hel...
                                                                            K-Ruby 資料 (7)とりあえずレコードの内容を表示    [ app/views/s...
                                                                            K-Ruby 資料 (8)学生一覧から個人データを表示させる    [ config/ro...
                                                                          K-Ruby 資料 (8)学生一覧から個人データを表示させる    [ app/views/s...
                                                                            K-Ruby 資料 (8)学生一覧から個人データを表示させる    [ app/views...
Upcoming SlideShare
Loading in...5
×

Management of Gems using Bundler.

584

Published on

Bundlerを利用したGem管理

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
584
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Management of Gems using Bundler.

  1. 1.  K-Ruby 資料 BundlerやらRailsやら基本的なこと 2011年11月24日 鹿児島大学 学術情報基盤センター 学術情報処理研究部門 古屋 保 furuya@cc.kagoshima-u.ac.jpNovember 24, 2011 © Tamotsu FURUYA, All rights reserved. 1
  2. 2.  K-Ruby 資料 皆さんご存知の... https://rvm.beginrescueend.com/November 24, 2011 © Tamotsu FURUYA, All rights reserved. 2
  3. 3.  K-Ruby 資料 RVMについて ● RVM – バージョン環境を簡単に切り替えられる $ rvm use ruby-1.9.2 – gemの組合せ(Gemセット)も管理できる $ rvm gemset use rails3x – RubyもGemセットも一発で切り換えられる $ rvm use ruby-1.9.2@rails3x – ディレクトリ内に「.rvmrc」ファイルを作成し,その中に上記 コマンドを記載しておくと,さらに幸せになれる!November 24, 2011 © Tamotsu FURUYA, All rights reserved. 3
  4. 4.  K-Ruby 資料 RVMについて ● RVM – 「.rvm」配下に何か色々作られるのが,どうも...しかも パスが長い! – cdコマンドやgemコマンドが何かとすり替えられている. (別のスクリプトに置き換わっている) – 「rvmsudo」って何もの?(「sudo rvm …」じゃない の?) – もう Ruby 1.9.X onlyの環境で良いかも...November 24, 2011 © Tamotsu FURUYA, All rights reserved. 4
  5. 5.  K-Ruby 資料 今回紹介するのは... http://gembundler.com/November 24, 2011 © Tamotsu FURUYA, All rights reserved. 5
  6. 6.  K-Ruby 資料 Bundlerについて ● Bundler – RubyGemsのラッパー – コマンドは「bundle」 – Rails 3 で公式に採用されている gem の管理ツール – 依存関係を調べ,必要な全てのパッケージをインストールして くれる. – gemを特定のバージョンに固定(指定)できる – アプリケーションごとにgemパッケージを独立して管理するこ とができる.November 24, 2011 © Tamotsu FURUYA, All rights reserved. 6
  7. 7.  K-Ruby 資料 Bundlerの導入 ● まずは,RVMの削除 $ rvm seppuku $ rm -rf ~/.rvmrc .bashrc あるいは .bash_profile に記述してある rvm スクリ プトのロード部分を削除 ● 次に,gem をアンインストールしていく $ gem uninstall hogehoge ● 全ての gem をアンインストール(全部消える) $ gem list | cut -d " " -f1 | sudo xargs gem uninstallNovember 24, 2011 © Tamotsu FURUYA, All rights reserved. 7
  8. 8.  K-Ruby 資料 Bundlerの導入 ● Bundlerをインストール $ sudo gem install bundler $ gem list *** LOCAL GEMS *** Bundler (1.0.21)November 24, 2011 © Tamotsu FURUYA, All rights reserved. 8
  9. 9.  K-Ruby 資料 BundlerによるRailsアプリ作成 ● Railsアプリ用のディレクトリを作成する $ mkdir myapp ● 作成したディレクトリに移動し,Gemfileを作成 $ bundle init ● Gemfileを編集する source "http://rubygems.org" gem "rails", "3.0.11"November 24, 2011 © Tamotsu FURUYA, All rights reserved. 9
  10. 10.  K-Ruby 資料 BundlerによるRailsアプリ作成 ● インストールする gem のバージョン指定 gem "nokogiri" gem "rails", "3.0.0.beta3" gem "rack", ">=1.0" gem "thin", "~>1.1"November 24, 2011 © Tamotsu FURUYA, All rights reserved. 10
  11. 11.  K-Ruby 資料 BundlerによるRailsアプリ作成 ● gemファイルのインストールパスを指定してbundle install $ bundle install –-path vendor/bundle – 「vendor/bundle/ruby/1.9.1/」配下にgemがインストール – gemの依存関係を記述した Gemfile.lock が生成 GEM remote: http://rubygems.org/ specs: abstract (1.0.0) actionmailer (3.0.11) actionpack (= 3.0.11) mail (~> 2.2.19) actionpack (3.0.11) activemodel (= 3.0.11) activesupport (= 3.0.11) :November 24, 2011 © Tamotsu FURUYA, All rights reserved. 11
  12. 12.  K-Ruby 資料 BundlerによるRailsアプリ作成 ● Railsのスケルトン作成 $ bundle exec rails new . ● 再度(2度目はパスの指定なしでOK) $ bundle install ● その理由...「.bundle/config」ファイル BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: 1November 24, 2011 © Tamotsu FURUYA, All rights reserved. 12
  13. 13.  K-Ruby 資料 BundlerによるRailsアプリ作成 ● 全てのgemコマンドの実行の際,頭に「bundle exec」を付 加する必要がある. – $ bundle exec rails – $ bundle exec rake – $ bundle exec irb ● 「$ bundle install –-binstubs」と実行すると rails,rake, irb などのコマンドが ./bin ディレクトリにインストールされ る.November 24, 2011 © Tamotsu FURUYA, All rights reserved. 13
  14. 14.  K-Ruby 資料 まとめ ● システムや開発環境単位ではなく,アプリケーション単位で gemを管理することが可能. ● 色々な gem をインストールおよびアップデートしたことに よるバージョンの不整合が起きる問題が解消される. ● バージョンロック(Gemfile.lock)により,決まったgemの バージョン構成でデプロイできる. ● しかし,「bundle exec」を頭につけるのが面倒. →「Rails_root/bin」を$PATHに追加すれば解決! ● アプリケーションフォルダが肥大化してしまう. →しょうがないかも.November 24, 2011 © Tamotsu FURUYA, All rights reserved. 14
  15. 15.  K-Ruby 資料 実践! (1)まずはDBとテーブルの作成 $ mysql -u root -p mysql> grant all on my_app_db.* to hoge@localhost -> identified by foobar mysql> ¥q $ mysql -u hoge -p mysql> create database my_app_db; mysql> create table students ( -> sid char(10) NOT NULL PRIMARY KEY, -> name varchar(20), -> birth date);November 24, 2011 © Tamotsu FURUYA, All rights reserved. 15
  16. 16.  K-Ruby 資料 (2)Bundlerを使ったRails環境構築 $ mkdir my_app $ cd my_app $ bundle init $ vi Gemfile $ bundle install --path vendor/bundle $ bundle install --binstubs [ Gemfile ] source "http://rubygems.org" gem "rails", "3.0.11"November 24, 2011 © Tamotsu FURUYA, All rights reserved. 16
  17. 17.  K-Ruby 資料 (3)新規アプリ作成とMySQL DBの指定 $ bundle exec rails new . -T -d mysql (または,$ bin/rails new . -T -d mysql) $ bundle install $ vi config/database.yml [ config/database.yml ] : development: adapter: mysql2 encoding: utf8 database: my_app_db username: hoge password: foobar :November 24, 2011 © Tamotsu FURUYA, All rights reserved. 17
  18. 18.  K-Ruby 資料 (4)Studentモデル作成(O/R Mapping) $ bundle exec rails server $ bundle exec rails generate model Student $ vi app/models/student.rb $ bundle exec rails db $ bundle exec rails console [ app/models/students.rb ] class Student < ActiveRecord::Base set_primary_key sid endNovember 24, 2011 © Tamotsu FURUYA, All rights reserved. 18
  19. 19.  K-Ruby 資料 (5)routingとStudentsコントローラの作成 $ vi config/routes.rb $ bundle exec rails generate controller Students $ vi app/controllers/students_controller.rb [ config/routes.rb ] MyApp::Application.routes.draw do match lists => students#list : end [ app/controllers/students_controller.rb ] lass StudentsController < ApplicationController def list end endNovember 24, 2011 © Tamotsu FURUYA, All rights reserved. 19
  20. 20.  K-Ruby 資料 (6)ビューの作成,コントローラとの連携 $ echo "hello" > app/views/students/list.html.erb $ vi app/controllers/students_controller.rb $ vi app/views/students/list.html.erb [ app/controllers/students_controller.rb ] lass StudentsController < ApplicationController def list @students = Student.all end end [ app/views/students/list.html.erb ] hello<br /> <%= p @students %>November 24, 2011 © Tamotsu FURUYA, All rights reserved. 20
  21. 21.  K-Ruby 資料 (7)とりあえずレコードの内容を表示 [ app/views/students/list.html.erb ] <table> <tr> <th>Sid</th><th>Name</th><th>Birth</th> </tr> <% @students.each do |s| %> <tr> <td><%= s.sid %></td> <td><%= s.name %></td> <td><%= s.birth %></td> </tr> <% end %> </table>November 24, 2011 © Tamotsu FURUYA, All rights reserved. 21
  22. 22.  K-Ruby 資料 (8)学生一覧から個人データを表示させる [ config/routes.rb ] MyApp::Application.routes.draw do match lists => students#list match lists/:sid => students#show : end [ app/controllers/students_controller.rb ] class StudentsController < ApplicationController def list @students = Student.all end def show @student = Student.find(params[:sid]) end endNovember 24, 2011 © Tamotsu FURUYA, All rights reserved. 22
  23. 23.  K-Ruby 資料 (8)学生一覧から個人データを表示させる [ app/views/students/show.html.erb ] <table> <tr><th>Sid</th><td><%= @student.sid %></td></tr> <tr><th>Name</th><td><%= @student.name %></td></tr> <tr><th>Birth</th><td><%= @student.birth %></td></tr> </table> <%= link_to return lists, lists_path %> [ config/routes.rb ] MyApp::Application.routes.draw do match lists => students#list match lists/:sid => students#show, :as => list : endNovember 24, 2011 © Tamotsu FURUYA, All rights reserved. 23
  24. 24.  K-Ruby 資料 (8)学生一覧から個人データを表示させる [ app/views/students/list.html.erb ] <table> <tr> <th>Sid</th><th>Name</th><th>Birth</th> </tr> <% @students.each do |s| %> <tr> <td><%= link_to s.sid, list_path(s.sid) %></td> <td><%= s.name %></td> <td><%= s.birth %></td> </tr> <% end %> </table>November 24, 2011 © Tamotsu FURUYA, All rights reserved. 24
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×