SlideShare a Scribd company logo
1 of 44
Download to read offline
Ruby in Wheezy
 〜第69回 関西Debian勉強会〜

佐々木洋平/Youhei SASAKI
     twitter: @uwabami


       2013/02/24
 GREE 大阪オフィス セミナールーム
どーも
佐々木
です
About me.

Name & Contact:

 ✓ 佐々木洋平/Youhei SASAKI
 ✓ Twitter/Github: uwabami

Activity:

 ✓ Debian JP Project/ 関西 Debian 勉強会
 ✓ Ruby, TeX, Emacs, Scientific Computing...
About me.

Name & Contact:

 ✓ 佐々木洋平/Youhei SASAKI
 ✓ Twitter/Github: uwabami

Activity:

 ✓ Debian JP Project/ 関西 Debian 勉強会
 ✓ Ruby, TeX, Emacs, Scientific Computing...
Ruby...?
Maintainer Dashboard
    Debian QA

Maintainer Dashboard@UDD
  http://udd.debian.org/dmd.cgi?email1=uwabami
  %40gfd-dennou.org

Debian Quality Assuarance
  http://qa.debian.org/developer.php?
  login=uwabami%40gfd-dennou.org
Disclaimer

無保証無責任原則

 ✓ 用法, 用量を守って正しくお使い下さい
 ✓ 誤字脱字含め, 適宜ご指摘下されば幸いです.

疑問/質問/ツッコミ/茶々, 大歓迎

 ✓ その場でどうぞ

ハッシュタグ: #kansaidebian
Agenda


1. Ruby in Wheezy
2. Switch your Ruby
3. gem2deb

4. Debian with Rails
Agenda


1. Ruby in Wheezy
2. Switch your Ruby
3. gem2deb

4. Debian with Rails
Ruby in
Wheezy
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.

これらを用途の応じて使い分けるには?
Agenda


1. Ruby in Wheezy
2. Switch your Ruby
3. gem2deb

4. 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 not
available via APT, you should still use the Debian-packaged versions
of Ruby whenever possible since they are tested and supported by the
Debian community.

Please do not report bugs you encounter while using your homebuilt
Rubies 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.0rc2
install_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 not
available via APT, you should still use the Debian-packaged versions
of Ruby whenever possible since they are tested and supported by the
Debian community.

Please do not report bugs you encounter while using your homebuilt
Rubies to the Debian team; Rubies built by yourself are not supported.
Have any
questions?
Agenda


1. Ruby in Wheezy
2. Switch your Ruby
3. gem2deb

4. Debian with Rails
gem2deb
Ruby in Debian:
   Maintainer Team

Ruby 本体: 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_ruby

C 拡張ライブラリ: 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.8
irb(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.1
puts $LOAD_PATH
irb(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 Team

Ruby 本体: pkg-ruby チーム
 MRI, Rubinius...
 JRuby は pkg-java チーム

Ruby の(拡張)ライブラリ: pkg-ruby-extreas チーム
 Team Documentation and current packaging
 practices
 パッケージ作成には gem2deb を使用中
Ruby in Debian:
   gem2deb
gem2deb:
 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 any
questions?
Agenda


1. Ruby in Wheezy
2. Switch your Ruby
3. gem2deb

4. Debian with Rails
Debian
 with
 Rails
Rails Application in
    Debian

Debian パッケージとして提供している Rails アプリ
  今の所 Redmine のみ
  しかも Redmine 1.4.4
    Redmine 2.x は experimental

Redmine 1.4.4 は Rails2
  なので Debian パッケージには Rails2 と Rails3 が存
  在
Rails in Debian

Rails2, 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
  any
Ideas?
Have any
questions?
References.


Lucas Nussbaum's Blog:
  * Changes to Ruby in Debian (and Ubuntu)
    http://www.lucas-nussbaum.net/blog/?p=681

DebianWiki:
  * TeamsRuby:
    http://wiki.debian.org/Teams/Ruby
  * Debian/Ruby Wheezy Transition:
    http://pkg-ruby-extras.alioth.debian.org/wheezy/

More Related Content

What's hot

【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Masahito Zembutsu
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみたpyar6329
 
Mod lua
Mod luaMod lua
Mod luado_aki
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)佐久本正太
 
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンJAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンRyo Nakamaru
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話Nozomu KURASAWA
 
rsyncのちょっとイイ話
rsyncのちょっとイイ話rsyncのちょっとイイ話
rsyncのちょっとイイ話Kazuhiro Oinuma
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud FoundryKazuto Kusama
 
Weaveを試してみた
Weaveを試してみたWeaveを試してみた
Weaveを試してみたKazuto Kusama
 
DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話kenhys
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~decode2016
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構Ryosuke MATSUMOTO
 

What's hot (20)

【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
 
Mod lua
Mod luaMod lua
Mod lua
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンJAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
 
aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話
 
Mod mrubyについて
Mod mrubyについてMod mrubyについて
Mod mrubyについて
 
rsyncのちょっとイイ話
rsyncのちょっとイイ話rsyncのちょっとイイ話
rsyncのちょっとイイ話
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
 
Weaveを試してみた
Weaveを試してみたWeaveを試してみた
Weaveを試してみた
 
DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話DebianとFedoraでパッケージをリリースするまでの話
DebianとFedoraでパッケージをリリースするまでの話
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
組み込みスクリプト言語Mrubyを利用したwebサーバの機能拡張支援機構
 

Viewers also liked

第66回関西Debian勉強会@KOF2012
第66回関西Debian勉強会@KOF2012第66回関西Debian勉強会@KOF2012
第66回関西Debian勉強会@KOF2012Youhei SASAKI
 
Edat Mitjana Marc Cabestany
Edat Mitjana Marc CabestanyEdat Mitjana Marc Cabestany
Edat Mitjana Marc Cabestanymarc8
 
Debian 7.0 “Wheezy” frozen
Debian 7.0 “Wheezy” frozenDebian 7.0 “Wheezy” frozen
Debian 7.0 “Wheezy” frozenYouhei SASAKI
 
Civil Disobedence; Jasmine Johnson
Civil Disobedence; Jasmine JohnsonCivil Disobedence; Jasmine Johnson
Civil Disobedence; Jasmine Johnsonjasmine81493
 
Debian Update: ~ Jessie, Stretch, Buster ~
Debian Update: ~ Jessie, Stretch, Buster ~Debian Update: ~ Jessie, Stretch, Buster ~
Debian Update: ~ Jessie, Stretch, Buster ~Youhei SASAKI
 
Q4 Economic Webinar with Dr. Joe Webb
Q4 Economic Webinar with Dr. Joe WebbQ4 Economic Webinar with Dr. Joe Webb
Q4 Economic Webinar with Dr. Joe WebbEric Vessels
 

Viewers also liked (9)

Academic libraries, zagreb
Academic libraries, zagrebAcademic libraries, zagreb
Academic libraries, zagreb
 
第66回関西Debian勉強会@KOF2012
第66回関西Debian勉強会@KOF2012第66回関西Debian勉強会@KOF2012
第66回関西Debian勉強会@KOF2012
 
Catalunya4t
Catalunya4tCatalunya4t
Catalunya4t
 
University of Ioannina Library/ Gzachos
University of Ioannina Library/ GzachosUniversity of Ioannina Library/ Gzachos
University of Ioannina Library/ Gzachos
 
Edat Mitjana Marc Cabestany
Edat Mitjana Marc CabestanyEdat Mitjana Marc Cabestany
Edat Mitjana Marc Cabestany
 
Debian 7.0 “Wheezy” frozen
Debian 7.0 “Wheezy” frozenDebian 7.0 “Wheezy” frozen
Debian 7.0 “Wheezy” frozen
 
Civil Disobedence; Jasmine Johnson
Civil Disobedence; Jasmine JohnsonCivil Disobedence; Jasmine Johnson
Civil Disobedence; Jasmine Johnson
 
Debian Update: ~ Jessie, Stretch, Buster ~
Debian Update: ~ Jessie, Stretch, Buster ~Debian Update: ~ Jessie, Stretch, Buster ~
Debian Update: ~ Jessie, Stretch, Buster ~
 
Q4 Economic Webinar with Dr. Joe Webb
Q4 Economic Webinar with Dr. Joe WebbQ4 Economic Webinar with Dr. Joe Webb
Q4 Economic Webinar with Dr. Joe Webb
 

Similar to Ruby In Wheezy

Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyYouhei SASAKI
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Yohei Yasukawa
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Hitoshi Kurokawa
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞYoichi Toyota
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜niwatako
 
とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。Kouhei Maeda
 
Debian パッケージングチュートリアル
Debian パッケージングチュートリアルDebian パッケージングチュートリアル
Debian パッケージングチュートリアルNozomu KURASAWA
 
Debian Next Release Goal: Multiarch
Debian Next Release Goal: MultiarchDebian Next Release Goal: Multiarch
Debian Next Release Goal: MultiarchYouhei SASAKI
 
VC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境についてVC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境についてgoritto
 
最近のrubyのインストール方法
最近のrubyのインストール方法最近のrubyのインストール方法
最近のrubyのインストール方法Kazuhiro Nishiyama
 
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化Tsuyoshi Yamada
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方Ryo Tomidokoro
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Sea Mountain
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChefMasahiro NAKAYAMA
 

Similar to Ruby In Wheezy (20)

Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞ
 
RubyGemsの落とし穴
RubyGemsの落とし穴RubyGemsの落とし穴
RubyGemsの落とし穴
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Rbenv
RbenvRbenv
Rbenv
 
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
CocoaPoderと賢者の宝石 〜 まだ bundle exec で消耗してるの? 〜
 
とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。とあるWeb企業でのDebianシステムの使い方。
とあるWeb企業でのDebianシステムの使い方。
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
Debian パッケージングチュートリアル
Debian パッケージングチュートリアルDebian パッケージングチュートリアル
Debian パッケージングチュートリアル
 
Debian Next Release Goal: Multiarch
Debian Next Release Goal: MultiarchDebian Next Release Goal: Multiarch
Debian Next Release Goal: Multiarch
 
VC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境についてVC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境について
 
最近のrubyのインストール方法
最近のrubyのインストール方法最近のrubyのインストール方法
最近のrubyのインストール方法
 
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化20130328 第03回福岡debian勉強会   debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
 
Ruby build
Ruby buildRuby build
Ruby build
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Recently uploaded (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

Ruby In Wheezy

  • 1. Ruby in Wheezy 〜第69回 関西Debian勉強会〜 佐々木洋平/Youhei SASAKI twitter: @uwabami 2013/02/24 GREE 大阪オフィス セミナールーム
  • 4. About me. Name & Contact: ✓ 佐々木洋平/Youhei SASAKI ✓ Twitter/Github: uwabami Activity: ✓ Debian JP Project/ 関西 Debian 勉強会 ✓ Ruby, TeX, Emacs, Scientific Computing...
  • 5. About me. Name & Contact: ✓ 佐々木洋平/Youhei SASAKI ✓ Twitter/Github: uwabami Activity: ✓ Debian JP Project/ 関西 Debian 勉強会 ✓ Ruby, TeX, Emacs, Scientific Computing...
  • 7. Maintainer Dashboard Debian QA Maintainer Dashboard@UDD http://udd.debian.org/dmd.cgi?email1=uwabami %40gfd-dennou.org Debian Quality Assuarance http://qa.debian.org/developer.php? login=uwabami%40gfd-dennou.org
  • 8. Disclaimer 無保証無責任原則 ✓ 用法, 用量を守って正しくお使い下さい ✓ 誤字脱字含め, 適宜ご指摘下されば幸いです. 疑問/質問/ツッコミ/茶々, 大歓迎 ✓ その場でどうぞ ハッシュタグ: #kansaidebian
  • 9. Agenda 1. Ruby in Wheezy 2. Switch your Ruby 3. gem2deb 4. Debian with Rails
  • 10. Agenda 1. Ruby in Wheezy 2. Switch your Ruby 3. gem2deb 4. Debian with Rails
  • 12. 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. これらを用途の応じて使い分けるには?
  • 13. Agenda 1. Ruby in Wheezy 2. Switch your Ruby 3. gem2deb 4. Debian with Rails
  • 14. Switch your Ruby? Debian には update-alternatives がある 同じ機能を提供する複数のソフトウェアを切り替える仕 組み 例: vi -> nvi, vim /usr/bin/ruby の実体は symbolic link alternatives で管理. でも ruby 切り替えたら gem とか irb も変えたいよね?
  • 15. システム全体で変えるには? ruby-switch が便利です. update-aliternatives の wrapper です. % ruby-switch --list % ruby-switch --set ruby1.9.1 % ruby -v % ruby-switch --set ruby1.8 % ruby -v
  • 16. ユーザ毎に変えるには? 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
  • 17. Debian パッケージになって いないRuby を使うには? ruby-build を使うことが可能です. While ruby-build is a great tool to build Ruby versions that are not available via APT, you should still use the Debian-packaged versions of Ruby whenever possible since they are tested and supported by the Debian community. Please do not report bugs you encounter while using your homebuilt Rubies to the Debian team; Rubies built by yourself are not supported.
  • 18. 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.0rc2 install_git "ruby-2.0.0rc" "https://github.com/ruby/ruby.git" "v2_0_0_rc2" autoconf standard
  • 19. 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 ...
  • 20. 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] 試しにイロイロ動かしてみましょう
  • 21. ruby-build: 注意 再掲します: While ruby-build is a great tool to build Ruby versions that are not available via APT, you should still use the Debian-packaged versions of Ruby whenever possible since they are tested and supported by the Debian community. Please do not report bugs you encounter while using your homebuilt Rubies to the Debian team; Rubies built by yourself are not supported.
  • 23. Agenda 1. Ruby in Wheezy 2. Switch your Ruby 3. gem2deb 4. Debian with Rails
  • 25. Ruby in Debian: Maintainer Team Ruby 本体: pkg-ruby チーム MRI, Rubinius... JRuby は pkg-java チーム Ruby の(拡張)ライブラリ: pkg-ruby-extreas チーム Team Documentation and current packaging practices
  • 26. 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 の名前
  • 27. Ruby in Debian: File hierarchy(1) 本体同梱以外のパッケージは vendordir 以下に pure Ruby: Config::CONFIG['vendordir'] /usr/lib/ruby/vendor_ruby C 拡張ライブラリ: Config::CONFIG ['vendorarchdir'] /usr/lib/ruby/vendor_ruby/1.8/x86_64-linux /usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux
  • 28. Ruby in Debian: File hierarchy(2) % irb1.8 irb(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
  • 29. Ruby in Debian: File hierarchy(3) % irb1.9.1 puts $LOAD_PATH irb(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
  • 30. Ruby in Debian: Maintainer Team Ruby 本体: pkg-ruby チーム MRI, Rubinius... JRuby は pkg-java チーム Ruby の(拡張)ライブラリ: pkg-ruby-extreas チーム Team Documentation and current packaging practices パッケージ作成には gem2deb を使用中
  • 31. Ruby in Debian: gem2deb gem2deb: gem から deb パッケージを作成するコマンド % gem fetch hogehoge.gem % gem2deb hogehoge[version].gem % ... % dpkg -i ruby-hogehoge_[version]-1.deb ...と, 常にこうなるなら苦労しねぇんだな, これが.
  • 32. gem2deb pit fall(1): dependency hell 多くの gem は「依存漏れ」がある みつける度に Bug Report 書こう! chain dependencies Fxxk !!
  • 33. gem2deb pit fall(2): test/spec(1) Debian パッケージは Ruby1.8, 1.9.3 両方で動く必 要有 1.9 のみサポート, というのも可能ですが. なので, テストが転んで deb ができない, という事が多 い test/spec で PATH が埋め込まれている 相対 PATH が酷い事になっていたり gem としても作法が良くないですよね?
  • 34. gem2deb pit fall(2): test/spec(2) LOCALE の設定がアレ Debian のパッケージビルド環境は LOCALE が設定さ れていない test/spec の Encoding.default_external が... 最近 gem2deb は Encoding.default_external = "UTF-8" になった. Bundler で古いライブラリに pin 止めされていたり
  • 37. Agenda 1. Ruby in Wheezy 2. Switch your Ruby 3. gem2deb 4. Debian with Rails
  • 39. Rails Application in Debian Debian パッケージとして提供している Rails アプリ 今の所 Redmine のみ しかも Redmine 1.4.4 Redmine 2.x は experimental Redmine 1.4.4 は Rails2 なので Debian パッケージには Rails2 と Rails3 が存 在
  • 40. Rails in Debian Rails2, 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
  • 41. Rails in Debian パッケージとしての共存は不可能 ActiveRecord, ActiveSupport の 2 系と 3 系を共存? require に version 番号付けるだけで良い? そもそも需要あるの? chroot + reverse proxy ?
  • 44. References. Lucas Nussbaum's Blog: * Changes to Ruby in Debian (and Ubuntu) http://www.lucas-nussbaum.net/blog/?p=681 DebianWiki: * TeamsRuby: http://wiki.debian.org/Teams/Ruby * Debian/Ruby Wheezy Transition: http://pkg-ruby-extras.alioth.debian.org/wheezy/