Ruby In Wheezy
Upcoming SlideShare
Loading in...5
×
 

Ruby In Wheezy

on

  • 1,877 views

第69回関西Debian勉強会で Debian 7.0 Wheezy 以降の Ruby 環境についてお話しました。

第69回関西Debian勉強会で Debian 7.0 Wheezy 以降の Ruby 環境についてお話しました。

Statistics

Views

Total Views
1,877
Views on SlideShare
1,542
Embed Views
335

Actions

Likes
2
Downloads
2
Comments
0

2 Embeds 335

http://www.nofuture.tv 168
http://uwabami.junkhub.org 167

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ruby In Wheezy Ruby In Wheezy Presentation Transcript

  • Ruby in Wheezy 〜第69回 関西Debian勉強会〜佐々木洋平/Youhei SASAKI twitter: @uwabami 2013/02/24 GREE 大阪オフィス セミナールーム
  • どーも
  • 佐々木です
  • About me.Name & Contact: ✓ 佐々木洋平/Youhei SASAKI ✓ Twitter/Github: uwabamiActivity: ✓ Debian JP Project/ 関西 Debian 勉強会 ✓ Ruby, TeX, Emacs, Scientific Computing...
  • About me.Name & Contact: ✓ 佐々木洋平/Youhei SASAKI ✓ Twitter/Github: uwabamiActivity: ✓ Debian JP Project/ 関西 Debian 勉強会 ✓ Ruby, TeX, Emacs, Scientific Computing...
  • Ruby...?
  • Maintainer Dashboard Debian QAMaintainer Dashboard@UDD http://udd.debian.org/dmd.cgi?email1=uwabami %40gfd-dennou.orgDebian Quality Assuarance http://qa.debian.org/developer.php? login=uwabami%40gfd-dennou.org
  • Disclaimer無保証無責任原則 ✓ 用法, 用量を守って正しくお使い下さい ✓ 誤字脱字含め, 適宜ご指摘下されば幸いです.疑問/質問/ツッコミ/茶々, 大歓迎 ✓ その場でどうぞハッシュタグ: #kansaidebian
  • Agenda1. Ruby in Wheezy2. Switch your Ruby3. gem2deb4. Debian with Rails
  • Agenda1. Ruby in Wheezy2. Switch your Ruby3. gem2deb4. Debian with Rails
  • Ruby inWheezy
  • Ruby の実装Ruby インタープリタには実装が複数ある MRI1.8.7, MRI1.9.3, JRuby: apt ready! Rubinius: Work in Progress ITP#591817 mruby: Work in Progress ITP#697835 他に HPC Ruby Compiler, Topaz, etc.これらを用途の応じて使い分けるには?
  • Agenda1. Ruby in Wheezy2. Switch your Ruby3. gem2deb4. Debian with Rails
  • Switch your Ruby?Debian には update-alternatives がある 同じ機能を提供する複数のソフトウェアを切り替える仕 組み 例: vi -> nvi, vim/usr/bin/ruby の実体は symbolic link alternatives で管理. でも ruby 切り替えたら gem とか irb も変えたいよね?
  • システム全体で変えるには?ruby-switch が便利です. update-aliternatives の wrapper です. % ruby-switch --list % ruby-switch --set ruby1.9.1 % ruby -v % ruby-switch --set ruby1.8 % ruby -v
  • ユーザ毎に変えるには?rbenv を使いましょう. % rbenv init # Load rbenv automatically by adding # the following to ~/.bash_profile: eval "$(rbenv init -)" % rbenv versions % rbenv alternatives % rbenv versions % rbenv global 1.9.3-debian
  • Debian パッケージになって いないRuby を使うには?ruby-build を使うことが可能です.While ruby-build is a great tool to build Ruby versions that are notavailable via APT, you should still use the Debian-packaged versionsof Ruby whenever possible since they are tested and supported by theDebian community.Please do not report bugs you encounter while using your homebuiltRubies to the Debian team; Rubies built by yourself are not supported.
  • ruby-build で ruby2.0rc2 を使うには?: (1) rbenv + ruby-build がオススメ ruby-build の definitions には 2.0.0-dev までしか ない 2.0.0rc2 の definitions を書いて build すれば良くね? /usr/share/ruby-build/2.0.0-dev をコピーして修 正% cat 2.0.0rc2install_git "ruby-2.0.0rc" "https://github.com/ruby/ruby.git" "v2_0_0_rc2" autoconf standard
  • ruby-build で ruby2.0rc2 を使うには?: (2)必要なパッケージを install % sudo apt-get build-dep ruby1.9.1-dev ...rbenv 管理下に install % ruby-build --verbose 2.0.0rc2 `echo $HOME`/.rbenv/versions/2.0.0rc2 ...
  • ruby-build で ruby2.0rc2 を使うには?: (3)rbenv で環境変数を読み込み % rbenv global 2.0.0rc2 % ruby -v ruby 2.0.0dev (2013-02-08 trunk 39159) [x86_64-linux]試しにイロイロ動かしてみましょう
  • ruby-build: 注意再掲します:While ruby-build is a great tool to build Ruby versions that are notavailable via APT, you should still use the Debian-packaged versionsof Ruby whenever possible since they are tested and supported by theDebian community.Please do not report bugs you encounter while using your homebuiltRubies to the Debian team; Rubies built by yourself are not supported.
  • Have anyquestions?
  • Agenda1. Ruby in Wheezy2. Switch your Ruby3. gem2deb4. Debian with Rails
  • gem2deb
  • Ruby in Debian: Maintainer TeamRuby 本体: pkg-ruby チーム MRI, Rubinius... JRuby は pkg-java チームRuby の(拡張)ライブラリ: pkg-ruby-extreas チーム Team Documentation and current packaging practices
  • Ruby in Debian: Package naming schemeこれまで: ruby1.8, ruby1.9.1 各々ついて別のパッケージ名 libhogehoge-ruby{,1.8,1.9.1} という名前これから: ruby1.8, ruby1.9.1 両方について同じパッケージ名 ruby-hogehoge: hogehoge は gem の名前
  • Ruby in Debian: File hierarchy(1)本体同梱以外のパッケージは vendordir 以下にpure Ruby: Config::CONFIG[vendordir] /usr/lib/ruby/vendor_rubyC 拡張ライブラリ: Config::CONFIG[vendorarchdir] /usr/lib/ruby/vendor_ruby/1.8/x86_64-linux /usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux
  • Ruby in Debian: File hierarchy(2)% irb1.8irb(main):001:0> puts $LOAD_PATH/usr/local/lib/site_ruby/1.8/usr/local/lib/site_ruby/1.8/x86_64-linux/usr/local/lib/site_ruby/usr/lib/ruby/vendor_ruby/1.8/usr/lib/ruby/vendor_ruby/1.8/x86_64-linux/usr/lib/ruby/vendor_ruby/usr/lib/ruby/1.8/usr/lib/ruby/1.8/x86_64-linux.=> nil
  • Ruby in Debian:File hierarchy(3)% irb1.9.1puts $LOAD_PATHirb(main):001:0> puts $LOAD_PATH/usr/local/lib/site_ruby/1.9.1/usr/local/lib/site_ruby/1.9.1/x86_64-linux/usr/local/lib/site_ruby/usr/lib/ruby/vendor_ruby/1.9.1/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux/usr/lib/ruby/vendor_ruby/usr/lib/ruby/1.9.1/usr/lib/ruby/1.9.1/x86_64-linux.=> nil
  • Ruby in Debian: Maintainer TeamRuby 本体: pkg-ruby チーム MRI, Rubinius... JRuby は pkg-java チームRuby の(拡張)ライブラリ: pkg-ruby-extreas チーム Team Documentation and current packaging practices パッケージ作成には gem2deb を使用中
  • Ruby in Debian: gem2debgem2deb: gem から deb パッケージを作成するコマンド % gem fetch hogehoge.gem % gem2deb hogehoge[version].gem % ... % dpkg -i ruby-hogehoge_[version]-1.deb...と, 常にこうなるなら苦労しねぇんだな, これが.
  • gem2deb pit fall(1): dependency hell多くの gem は「依存漏れ」がある みつける度に Bug Report 書こう!chain dependencies Fxxk !!
  • gem2deb pit fall(2): test/spec(1)Debian パッケージは Ruby1.8, 1.9.3 両方で動く必要有 1.9 のみサポート, というのも可能ですが. なので, テストが転んで deb ができない, という事が多 いtest/spec で PATH が埋め込まれている 相対 PATH が酷い事になっていたり gem としても作法が良くないですよね?
  • gem2deb pit fall(2): test/spec(2)LOCALE の設定がアレ Debian のパッケージビルド環境は LOCALE が設定さ れていない test/spec の Encoding.default_external が... 最近 gem2deb は Encoding.default_external = "UTF-8" になった.Bundler で古いライブラリに pin 止めされていたり
  • 実演?
  • Have anyquestions?
  • Agenda1. Ruby in Wheezy2. Switch your Ruby3. gem2deb4. Debian with Rails
  • Debian with Rails
  • Rails Application in DebianDebian パッケージとして提供している Rails アプリ 今の所 Redmine のみ しかも Redmine 1.4.4 Redmine 2.x は experimentalRedmine 1.4.4 は Rails2 なので Debian パッケージには Rails2 と Rails3 が存 在
  • Rails in DebianRails2, Rails3 in Debian % apt-show-versions -p rails Not installed rails 2:2.3.14.2 sid ftp.jp.debian.org % apt-show-versions -p rails3 Not installed rails3 3.2.6-1 sid ftp.jp.debian.org
  • Rails in Debianパッケージとしての共存は不可能 ActiveRecord, ActiveSupport の 2 系と 3 系を共存? require に version 番号付けるだけで良い?そもそも需要あるの?chroot + reverse proxy ?
  • Have anyIdeas?
  • Have anyquestions?
  • References.Lucas Nussbaums Blog: * Changes to Ruby in Debian (and Ubuntu) http://www.lucas-nussbaum.net/blog/?p=681DebianWiki: * TeamsRuby: http://wiki.debian.org/Teams/Ruby * Debian/Ruby Wheezy Transition: http://pkg-ruby-extras.alioth.debian.org/wheezy/