Import RubyGems to Ruby 1.9

Wednesday 17 October 2007 07:36:16 e$B$Ke(B Masatoshi SEKI
e$B$5$s$O=q$-$^$7$?e(B:

e$B$3$l$O$-$C$H;d$N%3%s%T%e!<%?%j%F%i%7!<$,$J$$$+$i$@$H;W$&$N$G$9$,!"e(B
e$B;d$N<j85$N4D6-e(B (2e$BBf$Ne(BOSXe$B!"e(BcoLinuxe$B$Ne(Bdebiane$B!"e(BRedhade$B7O$N$J$K$+e(B + e$B<+J,$Ge(B
e$B%S%k%I$7$?e(BRuby) e$B$G$O!"e(BRubyGemse$B$,B?$/$N>l9g$&$4$-$^$;$s!#e(B

e$B@hF|e(Bbackloge$B$re(Bgeme$B$G%$%s%9%H!<%k$7$h$&$H$7$Fe(B
e$B$=$N0MB8e(Bgeme$B$G$"$ke(Bpostgresql-rubye$B$He(B
rmagicke$B$N%$%s%9%H!<%k$,$G$-$J$$$H$$$&$N$r7P83$7$^$7$?!#e(B

postgresql-rubye$B$K$D$$$F$OMW$9$k$Ke(B
e$B30It%i%$%V%i%j$N%Q%9$J$I$r;XDj$G$-$J$$$N$,860x$Ge(B
e$B$3$&$$$&$N$r$I$&2sHr$9$k$H$h$$$N$+$h$/CN$i$J$$$N$G!"e(B
e$B7k6I$Oe(Bgemspece$B$r=q$-D>$7$F%$%s%9%H!<%k$7$^$7$?!#e(B

rmagicke$B$K$D$$$F$O!"2?$b8@$o$:$Ke(B/usr/share/e$B0J2<$Ke(B
e$B%U%!%$%k$r@8@.$7$h$&$H$7$?$?$a!“e(B
e$B;d$O0lHL%f!<%6$G<B9T$7$F$$$?$?$a$K%(%i!<$K$J$j$^$7$?!#e(B
e$B$`$m$s$=$N%f!<%6$G=q$1$k>l=j$Ke(BGEM_HOMEe$B$re(B
e$B;H$C$F$$$^$7$?$,!”$3$A$i$be(Bgemspece$B$r=q$-D>$9$J$I$7$Fe(B
e$B2sHr$7$^$7$?!#e(B

e$B$3$l$i$Oe(BRubyGemse$B<+BN$NLdBj$G$O$"$j$^$;$s$,!“e(B
e$B$3$NDxEY$NIJ<A$Ne(Bgeme$B$O$1$C$3$&$”$k$h$&$K;W$$$^$9!#e(B
e$B$=$&$$$&0UL#$G;d$be(Bgeme$B$J$^$H$b$J1?MQ$,$G$-$?$?$a$7$O$"$j$^$;$s!#e(B

e$B463PE*$K$O30It%i%$%V%i%j$rI,MW$H$9$ke(Bgeme$B!“e(B
e$B$”$kDxEY0J>e$N%U%!%$%k?t$Ne(Bgeme$B!"e(B
pre/poste$B=hM}$r$7$F$$$ke(Bgeme$B!“e(B
e$B$J$I$O$1$C$3$&$”$d$7$$$H;W$C$F$$$^$9!#e(B

e$BC/$+$N:n$i$l$?%i%$%V%i%j$r;H$C$F$_$?$$$J!"$H;W$C$F$b%$%s%9%H!<%kJ}K!$,e(B
geme$B$7$+=q$$$F$J$$$H$H$F$b0%$7$$5$;}$A$K$J$j$^$9!#e(B

e$BF1$8$/$G$9!#e(B

e$B$"$k$$$O!“I8=`E:IU$5$l$k$H$$$&$3$H$O!VAGKQ$J%$%s%9%H!<%k!W$,e(Bgeme$B$K$J$ke(B
e$B$H$$$&$3$H$r0UL#$9$k$N$@$+$i!”$=$s$J?4G[$OI,MW$J$$$h!*$C$F$3$H$+$J$"!#e(B

e$B$&$^$/$$$/%1!<%9$G$N%$%s%9%H!<%k<j=g$O4JC1$K$J$k$H;W$$$^$9$1$I!"e(B
e$B$=$&$G$J$$%1!<%9$G$O$o$j$H$I$&$7$h$&$b$J$$$h$&$K;W$$$^$9!#e(B

e$B$9$Y$F$K$H$O$$$o$J$$$^$G$b!"$$$m$$$m$J4D6-$KBP=h$G$-$k$h$&e(B
RubyGemse$B$,?J2=$7$F$/$l$k$H$$$$$J$H$O;W$&$N$G$9$,!"e(B
e$B:#$N>u67$G$NI8=`E:IU$O!"8D?ME*$K$O!“e(B
e$B%^%$%J%9$K$J$k2DG=@-$b$”$k$N$G$O$J$$$+$J$H;W$$$^$9!#e(B

Tuesday 16 October 2007 14:09:13 e$B$Ke(B NAKAMURA, Hiroshi
e$B$5$s$O=q$-$^$7$?e(B:

1-1-1e$B$K$D$$$F$O!"$h$/$o$+$j$^$;$s!#$d$^$@$5$s$"$?$j$+$i!"$3e(B
e$B$3$,LdBj$H$$$&OC$rJ9$-$?$$5$$,$7$^$9$,!"$J$s$@$+1sN8$7$F$$$ke(B
(or e$B$"$-$i$a$F$$$ke(B)e$B$h$&$J8}$V$j$KJ9$3$($k$s$G$9$,!#e(B

e$B;d$bJ9$-$?$$!#8D?ME*$K$"$^$jMxMQ7P83$,$J$$$N$G!"$o$+$C$F$J$$$s$G$9$h$M!#e(B
e$B!Ve(Bdebe$B$GF~$l$?$b$N$r%f!<%6$,e(Bgeme$B%3%^%s%I$G:o=|$7$?;~$KIT@09g$,=P$F%/%l!<%`e(B
e$B$,M=A[$5$l$k!W$H$+$J$s$H$+$@$C$?$h$&$J!#e(B

1-1-1e$B$C$F0J2<$G$9$h$M!#e(B

1-1-1. e$B4{B8$NB>$N%Q%C%1!<%8%s%0%7%9%F%`$H$NAj@-$,0-$$e(B?
e$B$3$l$O;d<+?H$O>Z5r$r;}$C$F$$$J$$$,!"$=$&8@$C$F$$$k%G%#%9%H%je(B
e$B%S%e!<%?$,5o$k!#$J$N$G!"$H$j$"$($:e(Bdefault disablee$B$G!"LdBj$J$$$3$He(B
e$B$,$o$+$C$F$+$ie(Bdefault enablee$B$K0\9T$9$l$P$h$$$H9M$($F$$$k!#e(B

e$B;d$,JQ$J8@$$J}$r$7$?$N$,0-$+$C$?$N$@$H;W$&$N$G$9$,!“e(B
e$BAj@-$&$s$L$s$H$$$&$N$O?7$?$Ke(BRubyGemse$B4X78$N%U%!%$%k$,e(B
e$BDI2C$5$l$k$H$$$&$3$H<+BN$K$O$”$^$j4X78$J$$$G$9!#e(B
e$B4X78$,$"$k$N$OI8=`E:IU$7$F$+$D!"e(BRubye$BK\BN$KE:IU$5$l$ke(B
e$B%i%$%V%i%je(B(e$B$N0lIte(B?)e$B$,e(Bpre-installed-geme$B2=$5$l$k%1!<%9$G$9!#e(B

e$B$3$&$$$&>l9g!"%f!<%6$Oe(Bgeme$B$rCV$-49$($^$9$+$ie(B
e$B%Q%C%1!<%84IM}$NLL$+$i$O$=$l$J$j$KLLE]$J$3$H$K$J$j$^$9!#e(B
e$B$b$A$m$s!"$3$NE@$O%Q%C%1!<%8%7%9%F%$H$7$F$O%1%"$7$J$$e(B e$B$D$^$j%Q%C%1!<%8$GDs6!$5$l$kItJ,$r2u$9$N$O<+M3$H$$$&e(B e$B8+J}$,2DG=$J$O$:$G$9$+$i!"$=$NE@$G$Oe(B e$BC1=c$K%Q%C%1!<%8%7%9%F%B&$NLdBj$G$7$+$J$$$H$b8@$($^$9!#e(B

e$B$?$@!"%Q%C%1!<%8%7%9%F%`$N$+$i$_$H$OJL$K!"e(B
e$B$D$^$j%Q%C%1!<%8$r;H$C$?$+$I$&$+$K$h$i$:!"e(B
e$B$d$O$j%f!<%6$Oe(Bgeme$B$rCV$-49$($^$9$+$ie(B
e$B$=$&$$$&>l9g!"CV$-49$(8e$N2?$+$^$G4^$a$Fe(B
Rubye$BK\BN$@$H$$$&$U$&$KG’<1$5$l$k$@$m$&$J$H;W$$$^$9!#e(B
e$B$3$&$$$&$N$C$F8_49@-$^$G4^$a$k$He(B
e$B$1$C$3$&$J%3%9%H$K$D$J$,$h$&$J5$$,$7$^$9!#e(B
(pre-installed-geme$B$K$7$?$$$H$$$&$N$Oe(B
e$B$=$NItJ,$N%j%j!<%9$r%3%s%H%m!<%k$7$J$$$H$$$&$3$H$G$7$g$&$+$i!#e(B)

e$B%j%j!<%9$K4X78$7$J$$<T$,?4G[$9$k$3$H$G$b$J$$$G$7$g$&$,!“e(B
e$B$=$l$G$be(Bpre-installed-geme$B2=$5$l$?2?$+$Ke(B
e$B=EBg$JLdBj$,5/$-$?$H$-$Ke(BRubye$BK\BN$H$7$Fe(B
e$B$I$N$h$&$J%”%/%7%g%s$,$H$i$l$k$N$+$K$O4X?4$,8~$-$^$9!#e(B

e$B!Ve(Bgeme$B$r99?7$7$F$M!W$G=$o$j$H$$$&$N$b$"$jF@$k$G$7$g$&$7!"e(B
e$B=>MhDL$j?7$7$$e(BRubye$B$NG[I[J
$,:n$i$l$k$3$H$b$"$k$G$7$g$&!#e(B
e$B$=$&$J$C$?$H$-$K%Q%C%1!<%83+H/<T$*$h$SMxMQ<T$Oe(B
e$BAj1~$K$d$d$3$7$$$3$H$K$J$k$J$k$+$b$7$l$J$$$J!"$H$O;W$$$^$9!#e(B


ay

e$B$"$-$i$a$F$$$k$H$$$&$N$O$=$&$+$b$7$l$J$$$G$9!#e(B

e$B$"$^$j@bF@NO$,$J$$$H;W$$$^$9$N$G!#MxMQ7ABV$N0l$D$@$H$O;W$&$N$G$9$,!#e(B

e$B2!ED$G$9!#e(B

$ grep -L --include=Makefile ^TARGET -r ext/

$ ruby -e ‘Dir.glob(“ext/**/Makefile”){|m|puts m if
open(m){|f|f.grep(/^TARGET/){break}}}’

e$B$J$k$[$Ie(B Makefile e$B$N@8@.>u67$+$iH=CG$G$-$k$o$1$G$9$M!#e(B
e$B5$IU$-$^$;$s$G$7$?e(B m(__)m

e$B$J$K$+$"$C$?$[$&$,$$$$$G$7$g$&$+!#e(B

e$B$b$7!“e(B
e$B31$5$s$Ne(B RubyGems e$BIT6q9g$,K\7o$K$h$k$b$N$G$”$l$P!"e(B
1.9 e$B$K$OI,MW$K$J$k5$$,$7$^$9!#e(B

e$BI8=`E:IU$H8@$($I$b3HD%%i%$%V%i%j$G$9$+$i!"e(B
configure e$B$N7k2L%9%-%C%W$,@8$8$F$bNI$$$H;W$$$^$9!#e(B
e$B$?$@e(B Installed Features : hoge1, hoge2 e$BE*$JI=<($O!“e(B
e$B$”$k$HNI$$$N$G$OL5$$$G$7$g$&$+!#e(B

e$BNc$($Pe(B ruby-gnome2 e$B$O=jBS$NBg$-$58N$b$"$k$G$7$g$&$,!"e(B
feature e$B$Ne(B enabled / disabled e$B$rI=<($7$F$/$l$^$9!#e(B

e$B$h$j87L)$K$O!“e(B
e$BE:IU%i%$%V%i%jF1;N$N0MB84X78$N2r>C$O!“e(B
e$B!J$b$7$”$l$P!”$G$9$,!"!Ke(B
make e$B$,J]>c$7$F$/$l$J$$$H:$$C$F$7$^$&$H;W$$$^$9!#e(B

Thursday 11 October 2007 22:36:25 e$B$Ke(B NAKAMURA, Hiroshi
e$B$5$s$O=q$-$^$7$?e(B:

e$B$D$^$j!“e(B1.9.1e$B$Ne(Brubye$B$O!”>o$Ke(Bgeme$BC5:w$,M-8z$J>uBV$GF0:n$9$k!"$H$$$&$3$H$G$9e(B
e$B$h$M!#$3$l$K$D$$$F$O$3$l$^$G!";d!"$d$^$@$"$-$i$5$s$+$iH?BP$,=P$F$^$9$M!#e(B
e$B$3$3$^$G3NG’$G$-$?$i!"<!$NEj9F$"$?$j$G;d$NH?BPM}M3$r=q$-$^$9!#;d$NH?BP0Ue(B
e$B8+$O6u?6$jN($,9b$$$s$G!"$d$^$@$"$-$i$5$s$b$I$&$>!#e(B:-)

e$BC1=c$KI,MW$J$$$b$N$re(Brequiree$B$7$F$[$7$/$J$$$C$F$$$&E@$G$9$M!#e(B
e$B$^!"e(BRubye$B<+BN$,$=$N$h$&$KJQ$o$k$H$$$&8+J}$+$i$9$l$P!"e(B
e$BI,MW$J$$$b$N$G$O$J$$$C$F$$$&$3$H$K$J$C$A$c$&$s$@$H;W$$$^$9$,!#e(B

At Sat, 20 Oct 2007 14:08:44 +0900,
akira yamada wrote:

å¤–éƒ¨ãƒ©ã‚¤ãƒ–ãƒ©ãƒªã®ãƒ‘ã‚¹ãªã©ã‚’æŒ‡å®šã§ããªã„ã®ãŒåŽŸå› ã§
こういうのをどう回避するとよいのかよく知らないので、
結局はgemspecを書き直してインストールしました。

 gem install で指定すればいいんじゃないでしょうか。-- の後に
書いた引数は extconf.rb に渡されるようです。

 昨日 FreeBSD ports の rubygem-postgres で試してみたんですが、
うまくいきましたよ。

rmagickについては、何も言わずに/usr/share/以下に
ファイルを生成しようとしたため、
私は一般ユーザで実行していたためにエラーになりました。
ã‚€ã‚ã‚“ãã®ãƒ¦ãƒ¼ã‚¶ã§æ›¸ã‘ã‚‹å ´æ‰€ã«GEM_HOMEã‚’
使っていましたが、こちらもgemspecを書き直すなどして
回避しました。

 –doc-dir ç­‰ã§å…¥ã‚‹å ´æ‰€ã‚’æŒ‡å®šã§ãã‚‹ã¨æ€ã„ã¾ã™ãŒã€ã©ã†ã§ã—ã‚‡ã†ã€‚
FreeBSD ports では --doc-dir を指定しています。

 もしダメだったとしても、方法がないか聞くとか、方法を用意して
くれと要望するとか、働きかけなかったんでしょうか。(gemspec を
修正してもらったということかな?)

 以前 RMagick の作者に extconf.rb の修正パッチを送ったことが
ありますが、連絡を取るとすぐに取り込むと返事をくれましたよ。

これらはRubyGems自体の問題ではありませんが、
この程度の品質のgemはけっこうあるように思います。
そういう意味で私もgemなまともな運用ができたためしはありません。

感覚的には外部ライブラリを必要とするgem、
ある程度以上のファイル数のgem、
pre/post処理をしているgem、
などはけっこうあやしいと思っています。

 pre/post 処理等で自由度が高いのは setup.rb 等でも同じことで、
ä½œæ³•ã®å•é¡Œã§ã¯ãªã„ã§ã—ã‚‡ã†ã‹ã€‚æ ¹æ°—ã‚ˆããƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒ
大事だと思います。

 また、今は gem を作る人向けのドキュメントが手薄なので、そこは
æ—¢å­˜ã®ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ã‚·ã‚¹ãƒ†ãƒ ã«é€ è©£ã®æ·±ã„äººãŒé©å®œã‚¢ãƒ‰ãƒã‚¤ã‚¹ã—ã¦ã€å……å®Ÿ
させていく必要がありますね。

ã†ã¾ãã„ãã‚±ãƒ¼ã‚¹ã§ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ‰‹é †ã¯ç°¡å˜ã«ãªã‚‹ã¨æ€ã„ã¾ã™ã‘ã©ã€
そうでないケースではわりとどうしようもないように思います。

すべてにとはいわないまでも、いろいろな環境に対処できるよう
RubyGemsが進化してくれるといいなとは思うのですが、
今の状況での標準添付は、個人的には、
マイナスになる可能性もあるのではないかなと思います。

 むしろ私などは、標準添付によってこっち側に引っ張り込むことに
よって、さまざまなパッケージシステムで扱いやすい作法というのを
広めやすくなるんじゃないかと楽観しています。

 タイミング的にも、 1.9 系列が安定していくプロセスのどさくさの
中で進めれば、ライブラリ作者も 1.9 対応と新 gem 対応のニーズを
背景に、時間を取る気になりやすいかも、とか。(超ポジティブ)


/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

“Different eyes see different things,
Different hearts beat on different strings –
But there are times for you and me when all such things agree”

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32097] Re: Import RubyGems to Ruby 1.9”
on Sat, 20 Oct 2007 00:31:52 +0900, Masatoshi SEKI
[email protected] writes:

|e$B5-O?$r$H$C$F$"$C$?$N$O$?$H$($P$3$&$$$&$d$D$G$9$,!"e(B
|
|* 2006-11-03

e$B8+$F$_$^$9!#e(B

|e$B$^$D$b$H$5$s$,e(B
|
|> |geme$B$J$I%Q%C%1!<%8%s%0%7%9%F%`$r;H$&$D$b$j$,$J$$?Me(B(e$B$D$^$j;de(B)e$B$Ke(B
|> |e$B$H$C$F$b!“$J$K$+$N1F6A$,=P$k$N$G$7$g$&$+e(B?
|>
|> e$B$G$-$k$@$11F6A$,=P$J$$$h$&$K$7$?$$$H;W$C$F$$$^$9!#e(B
|
|e$B$H$*$C$7$c$C$F$$$k$N$G!”$H$/$K2r7h$G$-$J$/$F$b$+$^$$$^$;$s!#e(B

e$B$H$O$$$(!"1F6A$,%<%m$H$$$&$o$1$K$O$$$+$J$$$H;W$$$^$9$N$G!"5$e(B
e$B$,$D$$$?;~$K$O%3%a%s%He(B(e$BJ86g!)e(B)e$B$r$D$1$F$/$@$5$$!#e(B

Saturday 20 October 2007 15:47:01 に Akinori MUSHA さんは書きました:

 gem install で指定すればいいんじゃないでしょうか。-- の後に
書いた引数は extconf.rb に渡されるようです。

おー、そうでしたか。今度機会があったら試してみます。

依存関係でひっぱってくるときにどうなるかとか。

 –doc-dir ç­‰ã§å…¥ã‚‹å ´æ‰€ã‚’æŒ‡å®šã§ãã‚‹ã¨æ€ã„ã¾ã™ãŒã€ã©ã†ã§ã—ã‚‡ã†ã€‚

こっちは試しましたがダメでした。

 もしダメだったとしても、方法がないか聞くとか、方法を用意して
くれと要望するとか、働きかけなかったんでしょうか。

やってません。

 pre/post 処理等で自由度が高いのは setup.rb 等でも同じことで、
ä½œæ³•ã®å•é¡Œã§ã¯ãªã„ã§ã—ã‚‡ã†ã‹ã€‚æ ¹æ°—ã‚ˆããƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒ
大事だと思います。

ええ、それはそうでしょうね。
でもそう言われちゃうと、この議論では
私はおよそ何も言えなくなります。
だって今まずいところがあっても
æ ¹æ°—ã‚ˆããƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã™ã‚Œã°ãªã‚“ã¨ã‹ãªã‚Šã¾ã™ã‚ˆã­ã€‚

説得も含めて。

ただ、まあ、かなりマイナーな意見なのでしょうから、
そういうものなんだと思っておきます。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

akira yamada wrote:

1-1-1. e$B4{B8$NB>$N%Q%C%1!<%8%s%0%7%9%F%`$H$NAj@-$,0-$$e(B?
e$B$3$l$O;d<+?H$O>Z5r$r;}$C$F$$$J$$$,!"$=$&8@$C$F$$$k%G%#%9%H%je(B
e$B%S%e!<%?$,5o$k!#$J$N$G!"$H$j$"$($:e(Bdefault disablee$B$G!"LdBj$J$$$3$He(B
e$B$,$o$+$C$F$+$ie(Bdefault enablee$B$K0\9T$9$l$P$h$$$H9M$($F$$$k!#e(B

e$B;d$,JQ$J8@$$J}$r$7$?$N$,0-$+$C$?$N$@$H;W$&$N$G$9$,!“e(B
e$BAj@-$&$s$L$s$H$$$&$N$O?7$?$Ke(BRubyGemse$B4X78$N%U%!%$%k$,e(B
e$BDI2C$5$l$k$H$$$&$3$H<+BN$K$O$”$^$j4X78$J$$$G$9!#e(B
e$B4X78$,$"$k$N$OI8=`E:IU$7$F$+$D!"e(BRubye$BK\BN$KE:IU$5$l$ke(B
e$B%i%$%V%i%je(B(e$B$N0lIte(B?)e$B$,e(Bpre-installed-geme$B2=$5$l$k%1!<%9$G$9!#e(B

e$B$H$9$k$H!"!Ve(BRubyGemse$B$,B>$N%Q%C%1!<%8%s%0%7%9%F%`$H$NAj@-$,0-$$!W$H$$$&E@e(B
e$B$K$D$$$F!“e(BRubye$BK\BN$KE:IU$5$l$k%i%$%V%i%j$,e(Bpre-installed-geme$B2=$5$l$J$$>le(B
e$B9g!”$d$^$@$"$-$i$5$s$N7|G0$OJ’?!$5$l$k$H$$$&$3$H$K$J$j$^$9$+e(B?

e$B$I$J$?$+$3$NJU!"LdBjE@$H9M;!$r2U>r=q$-$K$^$H$a$i$l$J$$$b$s$G$7$g$&$+!#e(B
ruby-coree$B$Ke(BopenSUSEe$B$N%Q%C%1!<%8%a%s%F%J$5$s$,$G$F$-$F!"26$K$b;22C$5$;$me(B
e$B$H8@$C$F$^$9!#e(B

e$B;d$O$3$N%M%?!Je(B1-1-1e$B!K$K$D$$$F$OCN<1$H6=L#$,B-$j$J$$$N$G!"@0M}$r$d$kM=e(B

e$BDj$O$"$j$^$;$s!#$[$C$H$/$H$3$N$^$^$NN.$l$G!"%G%U%)%k%HM-8z2=$KN.$le(B

e$B$A$c$C$?$j$9$k$+$b!#$^!"$J$s$H$J$/$_$J$=$l$r<u$1MF$l$F$=$&$@$1$I!#e(B

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)

iQEVAwUBRxob9h9L2jg5EEGlAQLQpwgAglZ4xstsAXtyVQKu+9179OBmJsFw6+7T
UpBU9MxPyaRu32ymjvqJO+4C7nt9DXJ6NViHSXGuzfo8iCgOVAU5py/vRCtDuRN0
2cXKtaxQ71wyl5bLMh2ozKZJdfvl3Pd3/NhPZuaAZL4xchyz8nbzJnxJfu2VTB1w
IcXDU/bTnplisbyKTsXG+EZ+99DwlVczObk7DWeaSPpsGI23m7WFHvOxC7nw2lDQ
02FcHI4JydzXpsljA1QDoWgLWrbEjGGmcTN3YlKQQx3DGv10+zUymTuYl9YEY41c
UiLD96T13fP4mRJ9Ekap/v5raCIux7gNrE0gwLPp+ztrMD4sdRk/ZQ==
=vr7C
-----END PGP SIGNATURE-----

Sunday 21 October 2007 00:17:43 e$B$Ke(B NAKAMURA, Hiroshi
e$B$5$s$O=q$-$^$7$?e(B:

e$B$H$9$k$H!"!Ve(BRubyGemse$B$,B>$N%Q%C%1!<%8%s%0%7%9%F%`$H$NAj@-$,0-$$!W$H$$$&E@e(B
e$B$K$D$$$F!“e(BRubye$BK\BN$KE:IU$5$l$k%i%$%V%i%j$,e(Bpre-installed-geme$B2=$5$l$J$$>le(B
e$B9g!”$d$^$@$"$-$i$5$s$N7|G0$OJ’?!$5$l$k$H$$$&$3$H$K$J$j$^$9$+e(B?

e$B$"$"!"$=$&$$$&0UL#$@$H$^$?=q$-J}$,0-$+$C$?$G$9$M!#?=$7J,$1$J$$$G$9!#e(B

e$B%P%$%J%j%Q%C%1!<%8$H$NAj@-$,0-$$$N$O$?$7$+$@$H;d$O;W$C$F$$$^$9!#e(B
e$B%U%!%$%kG[CV$N$d$jJ}$J$s$+$r8+$k$H!"e(B
e$BDL>o$N%P%$%J%j%Q%C%1!<%8$NMxMQJ}K!$+$i8+$k$He(B
e$B$I$&$K$b$7$,$?$$$H$3$m$,;D$j$^$9!#e(B
(e$B!D!D;d$NCN<1$,8E$9$.$k$N$G$J$1$l$P!#e(B)

e$B$?$@!"$=$l$G:$$k$N$O$?$V$se(Bpre-installed-geme$B2=$5$l$?$H$-$@$1$G!"e(B
e$B%G%U%)%k%He(Brequiree$B$O%$%d$@$H$+$O$^$?JL$NOC$@$H;W$C$F$$$^$9!#e(B

e$B;d$O$3$N%M%?!Je(B1-1-1e$B!K$K$D$$$F$OCN<1$H6=L#$,B-$j$J$$$N$G!"@0M}$r$d$kM=e(B

e$BDj$O$"$j$^$;$s!#$[$C$H$/$H$3$N$^$^$NN.$l$G!"%G%U%)%k%HM-8z2=$KN.$le(B

e$B$A$c$C$?$j$9$k$+$b!#$^!"$J$s$H$J$/$_$J$=$l$r<u$1MF$l$F$=$&$@$1$I!#e(B

e$B$^$"!“e(BRubyGemse$B$b%Q%C%1!<%8%7%9%F%`$J$s$Ge(B
e$BAj@-$,0-$$$H$3$m$O$I$&$7$?$C$F$G$A$c$$$^$9$M!#e(B
e$B$I$3$+$G$*$j$”$$$rIU$1$k$7$+$J$$OC$@$H;W$$$^$9!#e(B

e$B$3$l$^$G$Ke(Bgeme$B$+$ie(Bdebe$B$r:n$k$H$+e(Brpme$B$r:n$k$H$+e(B
e$B$=$&$$$&$N$O$d$C$F$_$?$3$H$,$"$j$^$9!#e(B
e$B$G$b?M!9$N6=L#$r$R$/$3$H$O$[$H$s$I$G$-$J$+$C$?$G$9$M!#e(B
e$B$H$$$&$N$O$*$=$i$/e(Bgeme$B$r;H$&?M$Oe(Bgeme$B%3%^%s%I$G$d$C$D$1$?$$$s$@$H;W$$$^$9!#e(B
(e$B$^$“[email protected]$KLdBj$,$”$C$?$N$+$b$7$l$^$;$s$1$I!#e(B)

At Sat, 20 Oct 2007 21:00:33 +0900,
akira yamada wrote:

Saturday 20 October 2007 15:47:01 に Akinori MUSHA さんは書きました:

 –doc-dir ç­‰ã§å…¥ã‚‹å ´æ‰€ã‚’æŒ‡å®šã§ãã‚‹ã¨æ€ã„ã¾ã™ãŒã€ã©ã†ã§ã—ã‚‡ã†ã€‚

こっちは試しましたがダメでした。

gem install rmagick-1.15.10.gem -- --with-doc-dir=/dir

でできました。gem_extconf.rb を見ると引数は sh configure に渡る
ことがわかり、続いて configure(.ac) を読むと --with-doc-dir が
見つかります。

 gem 的には gems/$VER/doc/$gem_name に入れるべきだと思うのですが、
うまく gem_extconf.rb あるいは configure からそのディレクトリを
取る方法があるのかどうか、聞いてみます。

 もしダメだったとしても、方法がないか聞くとか、方法を用意して
くれと要望するとか、働きかけなかったんでしょうか。

やってません。

 ここのところの議論を見ても、私を含め、パッケージ作成者間での
gem に関するノウハウがまったく共有されていないことがわかります。

 今後は、直接的なフィードバックで解決しない、あるいはしそうに
ãªã„å•é¡ŒãŒã‚ã£ãŸå ´åˆã¯MLで共有しましょう。

 pre/post 処理等で自由度が高いのは setup.rb 等でも同じことで、
ä½œæ³•ã®å•é¡Œã§ã¯ãªã„ã§ã—ã‚‡ã†ã‹ã€‚æ ¹æ°—ã‚ˆããƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã™ã‚‹ã“ã¨ãŒ
大事だと思います。

ええ、それはそうでしょうね。
でもそう言われちゃうと、この議論では
私はおよそ何も言えなくなります。
だって今まずいところがあっても
æ ¹æ°—ã‚ˆããƒ•ã‚£ãƒ¼ãƒ‰ãƒãƒƒã‚¯ã™ã‚Œã°ãªã‚“ã¨ã‹ãªã‚Šã¾ã™ã‚ˆã­ã€‚

説得も含めて。

ã€€åŽŸå› ã®è¿½æ±‚ã¨ã‹å…·ä½“çš„ãªä¿®æ­£ãªã©ã¯ä¸¸æŠ•ã’ã§ã„ã„ã‹ã‚‰ã€ã¨ã«ã‹ãå•é¡ŒãŒ
あるなら挙げてくれ、というのが今の流れです。すでにこのスレッドで
フィードバックになっていると思うので、この調子でお願いします。


/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

“Different eyes see different things,
Different hearts beat on different strings –
But there are times for you and me when all such things agree”

e$B2!ED$G$9!#e(B

e$B$K$D$$$F!“e(BRubye$BK\BN$KE:IU$5$l$k%i%$%V%i%j$,e(Bpre-installed-geme$B2=$5$l$J$$>le(B
e$B9g!”$d$^$@$"$-$i$5$s$N7|G0$OJ’?!$5$l$k$H$$$&$3$H$K$J$j$^$9$+e(B?

e$B!V%Q%C%1!<%8%^%M!<%8%c$H$NAj@-$K4X$9$k7|G0!W$K$D$$$F$O!Ve(Byese$B!W$H$$$&A0Ds$H$9$k$H!"e(B
e$B!J;d$K$O$d$^$@$5$s$NJV?.e(B 32110 e$B$O$=$N$h$&$KFI$a$^$7$?!#!Ke(B

e$B$I$J$?$+$3$NJU!"LdBjE@$H9M;!$r2U>r=q$-$K$^$H$a$i$l$J$$$b$s$G$7$g$&$+!#e(B

e$B>e5-$O!J%Q%C%1!<%8%^%M!<%8%c;kE@!"8=9T5!G=$r3HD%$7$J$$A0Ds!Ke(B

e$B!&e(Bgem
e$B$,%Q%C%1!<%830$N%U%!%$%k$rCV$/$3$H$O2fK}$G$-$k!JLdBj$G$O$J$$!Ke(B
e$B!&e(Bgem
e$B$,%Q%C%1!<%8Fb$N%U%!%$%k$rCV49$9$k$3$H$K$OBQ@-$rJ]>Z$G$-$J$$e(B

e$B$J$N$G!"8e<T$rM6H/$9$k%Q%C%1!<%8FbMF$r6/MW!JA0Ds!K$5$l$k$H:$$k!#e(B

e$B!V6/MW!JA0Ds!K!W$H$O%=!<%9$KF1:-$5$le(B make
[email protected]*$KF~$C$F$$$k$3$H!"$G$9!#e(B
RubyGems e$BK\BN$de(B pre-installed gem e$BEy$,!"$G$9!#e(B

e$B!V:$$k!W$O!VEXNO$9$l$P2sHr$G$-$k$,4pK\E*$K$O95$($FM_$7$$!W$G$9$+$M!#e(B

e$B!V2sHr$G$-$k!W$O!"e(B
e$BNc$($Pe(B Red Hat e$B7O$O#1$D$N%=!<%9$+$iJ#?t$Ne(B rpm
e$B$r:n$k;v$r$o$6$o$6$9$k$N$G!"e(B
e$B$=$N1dD9$GBP=h2DG=$G$O$J$$$+!"e(B
e$B$H$N?dB,$K$h$j$^$9!#e(B
Ruby e$B$N>l9g$OK\BN$H4pK%i%$%V%i%j$He(B irb, tk
e$BEy$,JL%Q%C%1!<%8$KJ,N%$5$l$F$^$9!#e(B
e$BMW$9$k$K$=$NO+6l$rJ’$C$F$G$b%Q%C%1!<%8%s%0%]%j%7!<$r4S$-$?$$!"e(B
e$B$C$F;v$@$H;W$&$N$G!"e(B
e$B$=$NHO0O$,3HBg$9$k$@$1$J$iBP=h$7$F$/$l$k$N$G$O$J$$$G$7$g$&$+!#e(B

e$B$?$@$=$N>l9g!"C1=c$K9M$($k$He(B gem e$B2=$5$l$F$$$kI8=`E:IUJ*$O!“e(B
e$B!V%Q%C%1!<%8G[I[BP>]$+$i=|30$5$l$k!W$K$J$k$H;W$$$^$9!#e(B
e$B$”$k$$$O%P!<%8%g%K%s%0$r;&$7$Fe(B site_ruby
e$B2<$K:FG[CV$7$F%Q%C%1!<%8%s%0!"e(B
e$B$G$7$g$&$+!#@.8y$7$?$b$N$N$_!#e(B

e$B$"!“E:IUJ*F1;N$G0MB84X78$,$”$k>l9g$O!&!&!&0J2<>JN,!J$)$#e(B

e$B!tI8=`E:IUJ*$,A4$F??$Ke(B stable
e$B$@$H3Z%A%s$O3Z%A%s$G$9$M$’!#!#!#e(B

e$B$9$_$^$;$s%]%$%s%?$,1s$$$G$9$,B3$-$^$9!#e(B

e$B!VBQ@-!W$H$O%Q%C%1!<%8%^%M!<%8%c$,F0$-B3$1$k$3$H!"$7$+;W$$Ib$+$S$^$;$s!#e(B
e$B$=$7$F!"$=$N<BNc$OK3$7$$$H;W$$$^$9!#e(B
e$B$3$C$A$,=EMW$H;W$C$F$$$^$9$,!#e(B

e$B;d$,e(B Fedora Core 6 e$B$G<B83$7$?$H$3$m!"e(B
0.9.2 e$B$Ne(B rpm e$B$r%$%s%9%H!<%k$7e(B gem update e$B$Ge(B 0.9.4
e$B$K$7$?8e!“e(B
rpm e$B$r%”%s%$%s%9%H!<%k$7$F$_$^$7$?$,!"e(B
e$BFC$K<e2;$OEG$-$^$;$s$G$7$?!#e(B
e$B:FEYe(B 0.9.2 e$B$re(B rpm e$B$G%$%s%9%H!<%k$7$?$H$3$me(B 0.9.2
e$B$H$7$FF0$-$^$7$?!#e(B

0.9.2 e$B$He(B 0.9.4 e$B$O$=$l$J$j$K%U%!%$%k9=@.$,0c$$$^$7$?!#e(B
e$B%G%#%l%/%H%j$bA}$($?$j$7$F$$$^$9!#e(B
e$B!J%5%V%3%^%s%IKh$K%U%!%$%k$,MQ0U$5$l$?!)$C$]$+$C$?!#!Ke(B

e$B!t;D3<3NG’$7$J$+$C$?!!!$X$?$3$$$?!A!!!$G$b$=$s$J$N!JN,e(B

ruby-coree$B$Ke(BopenSUSEe$B$N%Q%C%1!<%8%a%s%F%J$5$s$,$G$F$-$F!"26$K$b;22C$5$;$me(B

e$B;d$NM=A[$G$Oe(B rpm e$B$K$O!VBQ@-$,$"$k!W$H;W$$$^$9$,!"e(B
e$B%Q%C%1!<%8%a%s%F%J$5$s$N0U8+$O@'HsJ9$$$F$_$?$$$H;W$$$^$9!#e(B
e$B$`$7$m;22C$7$FD:$$$?J}$,NI$$5$$,$7$^$9!#e(B

e$B2!ED$G$9!#e(B

e$B4X78$,$"$k$N$OI8=`E:IU$7$F$+$D!“e(BRubye$BK\BN$KE:IU$5$l$ke(B
e$B%i%$%V%i%je(B(e$B$N0lIte(B?)e$B$,e(Bpre-installed-geme$B2=$5$l$k%1!<%9$G$9!#e(B
Rubye$BK\BN$KE:IU$5$l$k%i%$%V%i%j$,e(Bpre-installed-geme$B2=$5$l$J$$>le(B
e$B9g!”$d$^$@$"$-$i$5$s$N7|G0$OJ’?!$5$l$k$H$$$&$3$H$K$J$j$^$9$+e(B?
e$B$?$@!"$=$l$G:$$k$N$O$?$V$se(Bpre-installed-geme$B2=$5$l$?$H$-$@$1$G!"e(B

e$B$=$N0UL#$G$Oe(B RubyGems e$BK\BN$,4{$K$=$NBP>]$G$9$h$M!#e(B
e$B<+?H$Oe(B gem e$B$8$c$J$$$1$Ie(B gem e$B7PM3$G99?7=PMh$Fe(B site_ruby
e$B2<$r=q$-49$($k!#e(B

e$B!t$"!"I8=`$K$J$C$?$ie(B site_ruby e$B$8$c$J$/$J$k$N$+!#e(B

e$B$3$l$^$G$Ke(Bgeme$B$+$ie(Bdebe$B$r:n$k$H$+e(Brpme$B$r:n$k$H$+e(B
e$B$=$&$$$&$N$O$d$C$F$_$?$3$H$,$"$j$^$9!#e(B

e$B;d$O6=L#DE!9$G$9!#e(B

e$B$H$$$&$N$O$*$=$i$/e(Bgeme$B$r;H$&?M$Oe(Bgeme$B%3%^%s%I$G$d$C$D$1$?$$$s$@$H;W$$$^$9!#e(B

e$B;d$Oe(B gem e$B$,e(B pkg* / apt* / rpm e$B$Ne(B frontend
e$B$r1i$8$F$bNI$$$H;W$$$^$9!#e(B

e$B@>;3OB9-$G$9!#e(B

At Sun, 21 Oct 2007 02:57:10 +0900,
Akinori MUSHA wrote:

e$B!!860x$NDI5a$H$+6qBNE*$J=$@5$J$I$O4]Ej$2$G$$$$$+$i!“$H$K$+$/LdBj$,e(B
e$B$”$k$J$i5s$2$F$/$l!“$H$$$&$N$,:#$NN.$l$G$9!#$9$G$K$3$N%9%l%C%I$Ge(B
e$B%U%#!<%I%P%C%/$K$J$C$F$$$k$H;W$&$N$G!”$3$ND4;R$G$*4j$$$7$^$9!#e(B

e$B7R$2$d$9$+$C$?$N$G!"$3$3$K7R$2$F$7$^$$$^$9$,!“e(Bgeme$B$NCf$KF~$C$F$$$ke(B
setup.rbe$B$,8E$$$He(Bshebange$B$,$A$c$s$HCV$-49$($i$l$:$Ke(B
e$B!Ve(B#!/usr/bin/env
rubye$B!W$K$J$C$F$$$FF0$+$J$$e(B(rubygemse$B$rF~$l$F$$$ke(B
rubye$BK\BN$K$Oe(B–program-suffixe$B$rIU$1$F$$$k$N$Ge(B)e$B$H$$$&$3$H$,e(B
e$B$h$/$”$j$^$9!#e(B

rubygemse$BK\BN$Oe(B
http://rubyforge.org/tracker/?func=detail&group_id=126&aid=9315&atid=575
e$B$Ge(Bsetup.rbe$B$r99?7$7$F$b$i$C$?$N$G$9$,!"e(Bbine$B$K%U%!%$%k$rF~$l$ke(Bgeme$B$Ge(B
e$B$R$C$+$+$kEY$Ke(B(e$BF~$l$F$_$?$@$1$G;H$$B3$1$k$H$O8B$i$J$$e(Bgeme$B$^$Ge(B)
e$BJs9p$7B3$1$k$N$O87$7$$$G$9!#e(B

e$B$3$N7o$Oe(Bsetup.rbe$B<+BN$+e(Bsetup.rbe$BAjEv$N5!G=$,e(Brubygemse$B$KF~$C$F$$$k$He(B
e$B2r7h$G$-$k$+$b!"$H;W$C$F$$$^$9!#e(B

e$B$J$+$@$G$9!#e(B

At Sun, 21 Oct 2007 17:54:44 +0900,
[email protected] wrote in [ruby-dev:32115]:

e$B!V2sHr$G$-$k!W$O!"e(B
e$BNc$($Pe(B Red Hat e$B7O$O#1$D$N%=!<%9$+$iJ#?t$Ne(B rpm e$B$r:n$k;v$r$o$6$o$6$9$k$N$G!"e(B
e$B$=$N1dD9$GBP=h2DG=$G$O$J$$$+!"e(B
e$B$H$N?dB,$K$h$j$^$9!#e(B
Ruby e$B$N>l9g$OK\BN$H4pK%i%$%V%i%j$He(B irb, tk e$BEy$,JL%Q%C%1!<%8$KJ,N%$5$l$F$^$9!#e(B
e$BMW$9$k$K$=$NO+6l$rJ’$C$F$G$b%Q%C%1!<%8%s%0%]%j%7!<$r4S$-$?$$!"e(B
e$B$C$F;v$@$H;W$&$N$G!"e(B
e$B$=$NHO0O$,3HBg$9$k$@$1$J$iBP=h$7$F$/$l$k$N$G$O$J$$$G$7$g$&$+!#e(B

e$B5U$K!"J#?t$N%=!<%9$r$^$H$a$F%Q%C%1!<%8$9$k$3$H$bMF0W$J$o$1$G!“8De(B
e$B?ME*$K$Oe(Bpre-installed-geme$B$K$O0UL#$r8+=P$;$^$;$s!#2?$rDI2C$9$k$+e(B
e$BJ,$1$k$+$O!”%Q%C%1!<%8%a%s%F%J$N%]%j%7!<$NLdBj$G!"e(Brubye$BK\BNB&$G7he(B
e$B$a$k$Y$-LdBj$G$O$J$$$H;W$$$^$9!#e(B

e$B;d$,e(B Fedora Core 6 e$B$G<B83$7$?$H$3$m!"e(B
0.9.2 e$B$Ne(B rpm e$B$r%$%s%9%H!<%k$7e(B gem update e$B$Ge(B 0.9.4 e$B$K$7$?8e!“e(B
rpm e$B$r%”%s%$%s%9%H!<%k$7$F$_$^$7$?$,!"e(B
e$BFC$K<e2;$OEG$-$^$;$s$G$7$?!#e(B
e$B:FEYe(B 0.9.2 e$B$re(B rpm e$B$G%$%s%9%H!<%k$7$?$H$3$me(B 0.9.2 e$B$H$7$FF0$-$^$7$?!#e(B

0.9.2 e$B$He(B 0.9.4 e$B$O$=$l$J$j$K%U%!%$%k9=@.$,0c$$$^$7$?!#e(B
e$B%G%#%l%/%H%j$bA}$($?$j$7$F$$$^$9!#e(B
e$B!J%5%V%3%^%s%IKh$K%U%!%$%k$,MQ0U$5$l$?!)$C$]$+$C$?!#!Ke(B

e$B$?$V$se(B0.9.4e$B$GDI2C$5$l$?J,$O%"%s%$%s%9%H!<%k$G$O>C$($F$$$J$$$H;We(B
e$B$$$^$9!#e(B

e$B2!ED$G$9!#e(B

e$B5U$K!"J#?t$N%=!<%9$r$^$H$a$F%Q%C%1!<%8$9$k$3$H$bMF0W$J$o$1$G!"e(B

e$B6D$kDL$j$G$9!#e(B

e$B8D?ME*$K$Oe(Bpre-installed-geme$B$K$O0UL#$r8+=P$;$^$;$s!#e(B

e$B8D?ME*$K$OF146$G$9!#e(B

e$B$?$@!"e(B
e$B!VA4$F!JBgH>!)!K!W$,e(B gem e$B4IM}$5$l$k;v$K$J$C$?;~!"e(B
e$B!V%M%C%H%o!<%/%$%s%9%H!<%k$7$F$M!W$G:$$k?M!&4D6-$N$?$a!“e(B
e$B%m!<%+%k$K!J!VI8=`E:IU!W$N$F~$C$?!K%j%]%8%H%j$rN)$F$i$l$k5!G=$r@$1$ke(B
e$B$J$I$NBeBX:v$,>iD9$@!”$H$J$l$P!"e(B
e$B!tA0CV$-D9$$e(B
gem e$B$re(B pre-install e$B$9$k;v$bA*Br;h$KF~$k$+$H;W$$$^$9!#e(B

e$B2?$rDI2C$9$k$+e(B
e$BJ,$1$k$+$O!"%Q%C%1!<%8%a%s%F%J$N%]%j%7!<$NLdBj$G!"e(Brubye$BK\BNB&$G7he(B
e$B$a$k$Y$-LdBj$G$O$J$$$H;W$$$^$9!#e(B

e$B$=$&$G$9$M!#e(B
e$B$G$9$+$i<B:]$KLdBj$H8@$$=P$7$?%Q%C%1!<%8%a%s%F%J$5$s$,EP>l$5$l$J$$$H!&!&!&e(B
e$B5U$KEP>l$,4|BT$G$-$J$$$J$iAj@-LdBj$OL5;k$7$F$bNI$$$N$G$O!)e(B(^^;

e$B$?$V$se(B0.9.4e$B$GDI2C$5$l$?J,$O%"%s%$%s%9%H!<%k$G$O>C$($F$$$J$$$H;We(B
e$B$$$^$9!#e(B

e$B$O$$!">C$($F$$$^$;$s$G$7$?!#e(B
e$B$^$?e(B rubygems-update e$B$Ne(B gem e$B$b;D$C$F$$$F!“e(B
e$B:FEYe(B 0.9.4 e$B$Xe(B update e$B$9$k$?$a$K$O0lEYe(B gem
e$B$r>C$9I,MW$,$”$j$^$7$?!#e(B

e$B$J$+$@$G$9!#e(B

At Mon, 22 Oct 2007 11:12:47 +0900,
[email protected] wrote in [ruby-dev:32118]:

e$B$?$@!"e(B
e$B!VA4$F!JBgH>!)!K!W$,e(B gem e$B4IM}$5$l$k;v$K$J$C$?;~!"e(B
e$B!V%M%C%H%o!<%/%$%s%9%H!<%k$7$F$M!W$G:$$k?M!&4D6-$N$?$a!“e(B
e$B%m!<%+%k$K!J!VI8=`E:IU!W$N$F~$C$?!K%j%]%8%H%j$rN)$F$i$l$k5!G=$r@$1$ke(B
e$B$J$I$NBeBX:v$,>iD9$@!”$H$J$l$P!"e(B
e$B!tA0CV$-D9$$e(B
gem e$B$re(B pre-install e$B$9$k;v$bA*Br;h$KF~$k$+$H;W$$$^$9!#e(B

geme$B$N%$%s%9%H!<%k$K%j%]%8%H%j$OITMW$@$m$&$H;W$$$^$9$,!"$=$b$=$be(B
pre-installed geme$B$C$F!"$I$&$$$&?M$rBP>]$K9M$($F$$$k$s$G$7$g$&$+!#e(B
pre-installed
geme$B$rD>@%$%s%9%H!<%k$9$k$H$$$&$N$O!“e(Brubye$B<+BN$r%=!<e(B
e$B%9$+$i%$%s%9%H!<%k$9$k>l9g$G$9$h$M!#e(Brubye$B$O%=!<%9$+$i%$%s%9%H!<%ke(B
e$B$G$-$k$N$Ke(Bgeme$B$G$O$G$-$J$$$H$$$&>u67$,!”$"$^$jA[Dj$G$-$J$$$N$G$9e(B
e$B$,!#e(B

e$B2?$rDI2C$9$k$+e(B
e$BJ,$1$k$+$O!"%Q%C%1!<%8%a%s%F%J$N%]%j%7!<$NLdBj$G!"e(Brubye$BK\BNB&$G7he(B
e$B$a$k$Y$-LdBj$G$O$J$$$H;W$$$^$9!#e(B

e$B$=$&$G$9$M!#e(B
e$B$G$9$+$i<B:]$KLdBj$H8@$$=P$7$?%Q%C%1!<%8%a%s%F%J$5$s$,EP>l$5$l$J$$$H!&!&!&e(B
e$B5U$KEP>l$,4|BT$G$-$J$$$J$iAj@-LdBj$OL5;k$7$F$bNI$$$N$G$O!)e(B(^^;

e$BAj@-LdBj$O$R$H$^$:$$$$F$$/$H$7$F!“e(Brubye$BK\BNB&$G4XM?$9$Y$-$G$O$Je(B
e$B$$NN0h$G$O$J$$$+!”$H$$$&$N$,;d$N0U8+$G$9!#e(B

[email protected] e$B$5$s$O=q$-$^$7$?e(B:

e$B$=$N0UL#$G$Oe(B RubyGems e$BK\BN$,4{$K$=$NBP>]$G$9$h$M!#e(B
e$B<+?H$Oe(B gem e$B$8$c$J$$$1$Ie(B gem e$B7PM3$G99?7=PMh$Fe(B site_ruby e$B2<$r=q$-49$($k!#e(B

e$BE:IU$5$l$k$h$&$K$J$k$H$7$F$be(B
e$B<BBV$H$7$F$I$N$h$&$KE:IU$5$l$k$N$+$Oe(B
e$B$^$@7h$^$C$F$$$k$H$3$m$G$O$J$$$H;W$C$F$$$^$9!#e(B

e$B$,!“e(Bpre-installed-geme$B$H$7$F$G$J$/e(B
e$BDL>o$N%i%$%V%i%j$H$7$FE:IU$5$l$F$$$k$N$G$”$l$P!"e(B
e$B$=$NItJ,$r%f!<%6$,2?$r;H$&$K$;$h>e=q$-$9$k$N$Oe(B
e$B<+M3$@$H;W$$$^$9!#e(B

e$B$b$A$m$se(Bpre-installed-geme$B$G$"$l2?$G$"$le(B
e$B<+M3$J$N$OF1$8$G$9$,!"$?$@!“e(B
pre-installed-geme$B$H$7$FDs6!$5$l$k$H$J$k$He(B
e$B%=!<%9$+$i%$%s%9%H!<%k$9$k%f!<%6$G$”$le(B
e$B%P%$%J%j%Q%C%1!<%8$r;H$C$F$$$k%f!<%6$G$"$l!“e(B
pre-installed-geme$B$KBP$9$kA:n$b4^$a$Fe(B e$B!VI8=E*$Je(BRubye$B$NG[I[J*!W$@$H8+$k$H;W$$$^$9e(B
(e$B$3$l$Oe(Bdebe$B$r%a%s%F%J%s%9$7$F$-$?Cf$G$N7P83$+$i$/$k?dB,$G!“e(B
e$B$h$C$FE*30$l$G$”$k2DG=@-$b$”$j$^$9e(B)e$B$+$i!“e(B
e$B$=$NItJ,$X$N%1%”$,$I$N$h$&$K$J$5$l$k$N$+!“e(B
e$B$”$k$$$O$J$5$l$J$$$N$+$O5$$K$J$j$^$9!#e(B

e$BJL$N%a!<%k$G$bF1$8$h$&$J$3$H$r=q$-$^$7$?$,G0$N$?$a!#e(B

e$B;d$Oe(B gem e$B$,e(B pkg* / apt* / rpm e$B$Ne(B frontend e$B$r1i$8$F$bNI$$$H;W$$$^$9!#e(B

e$B$I$&$$$&>u67$+A[A|$G$-$J$$$N$G$9$1$Ie(B
e$BIaDL$N%P%$%J%j%Q%C%1!<%8%f!<%6$Oe(B
debe$B$J$je(Brpme$B$J$j$,e(Bgeme$B$GA`:n$G$-$F$be(B
e$B$&$l$7$/$J$$$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$D$$$G$K$$$($P%P%$%J%j%Q%C%1!<%8$N%f!<%6$Oe(B

e$B%P%$%J%j$G$O$J$$e(Bgeme$B$K$b$=$l$[$I6=L#$r;}$?$J$$$H;W$$$^$9!#e(B

e$B2!ED$G$9!#e(B

geme$B$N%$%s%9%H!<%k$K%j%]%8%H%j$OITMW$@$m$&$H;W$$$^$9$,!"e(B

e$B$=$&$G$7$?$+!#e(B
e$B<:Ni$7$^$7$?!#e(B

e$B!t;d$O%i%$%H%f!<%6!<$G$7$F!&!&!&e(B
e$B!t$+$D$Fe(B .gem e$B$r:n$m$&$H;W$C$?$3$H$b$"$j$^$9$,7k6Ie(B .rpm
e$B$r:n$C$F$7$^$$$^$7$?!#e(B

pre-installed geme$B$rD>@%$%s%9%H!<%k$9$k$H$$$&$N$O!"e(Brubye$B<+BN$r%=!<e(B
e$B%9$+$i%$%s%9%H!<%k$9$k>l9g$G$9$h$M!#e(B

e$B$$$d5U$8$c$J$$$G$9$+!#e(B
e$B;d$O%P%$%J%j%Q%C%1!<%8$Ge(B ruby
e$B$r%$%s%9%H!<%k$9$k>l9g$@$H9M$($F$$$^$9!#e(B

e$B$=$N%Q%C%1!<%8$Ke(B gems/ e$B0J2<$N%U%!%$%k$r4^$a$F$7$^$C$?>l9g!"e(B
e$B8e!9e(B gem
e$B$G%Q%C%1!<%8%c$,4IM}$7$F$$$k%U%!%$%k9=@.$rGK2u$9$k;v$,=PMh$F$7$^$&$Ge(B
e$B$7$g$&!#e(B
e$B$=$7$F$=$l$,LdBj$K@.$jF@$k$N$G$7$g$&!#e(B

e$B$?$@!"A05-$NDL$j!“e(B
e$BJLCJe(B .gem e$B$N%$%s%9%H!<%k$Ke(B .gem
e$B%U%!%$%k0J30$J$K$bMW$i$J$$$N$G$”$l$P!"e(B
e$BNc$($Pe(B rpm e$B$G$$$&e(B post install script e$B$,e(B gem
e$B$rF0$+$;$P;vB-$j$F!"e(B
e$BI|?t$N%Q%C%1!<%8%c$,4XM?$9$k%U%!%$%k$J$IB8:$5$;$:$K:Q$$^$9$h$M!#e(B

e$BAj@-LdBj$O$R$H$^$:$$$$F$$/$H$7$F!“e(Brubye$BK\BNB&$G4XM?$9$Y$-$G$O$Je(B
e$B$$NN0h$G$O$J$$$+!”$H$$$&$N$,;d$N0U8+$G$9!#e(B

e$B;d$b$=$&;W$$$^$9$h!#e(B
e$B%Q%C%1!<%8$5$l$k:]$NET9g$r5$$K$7$F$/$l$k%W%m%8%’%/%H$J$s$F!"e(B
e$BIaDL$OL5$$$H;W$$$^$9e(B^^

[email protected] e$B$5$s$O=q$-$^$7$?e(B:

e$B$K$D$$$F!“e(BRubye$BK\BN$KE:IU$5$l$k%i%$%V%i%j$,e(Bpre-installed-geme$B2=$5$l$J$$>le(B
e$B9g!”$d$^$@$"$-$i$5$s$N7|G0$OJ’?!$5$l$k$H$$$&$3$H$K$J$j$^$9$+e(B?

e$B!V%Q%C%1!<%8%^%M!<%8%c$H$NAj@-$K4X$9$k7|G0!W$K$D$$$F$O!Ve(Byese$B!W$H$$$&A0Ds$H$9$k$H!"e(B
e$B!J;d$K$O$d$^$@$5$s$NJV?.e(B 32110 e$B$O$=$N$h$&$KFI$a$^$7$?!#!Ke(B

e$B%Q%C%1!<%8$NLdBj$H$O@Z$jJ,$1$?$D$b$j$J$s$G$9!#e(B

e$B$I$J$?$+$3$NJU!"LdBjE@$H9M;!$r2U>r=q$-$K$^$H$a$i$l$J$$$b$s$G$7$g$&$+!#e(B

e$B>e5-$O!J%Q%C%1!<%8%^%M!<%8%c;kE@!"8=9T5!G=$r3HD%$7$J$$A0Ds!Ke(B

e$B!&e(Bgem e$B$,%Q%C%1!<%830$N%U%!%$%k$rCV$/$3$H$O2fK}$G$-$k!JLdBj$G$O$J$$!Ke(B
e$B!&e(Bgem e$B$,%Q%C%1!<%8Fb$N%U%!%$%k$rCV49$9$k$3$H$K$OBQ@-$rJ]>Z$G$-$J$$e(B

e$B$J$N$G!"8e<T$rM6H/$9$k%Q%C%1!<%8FbMF$r6/MW!JA0Ds!K$5$l$k$H:$$k!#e(B

e$B%Q%C%1!<%8%7%9%F%`$rA0Ds$H$7$F$$$k$o$1$G$O$J$/$F!“e(B
e$BC1$Ke(Bpre-installed-geme$B$H$$$&$b$N$K%a%j%C%H$,8+=P$;$J$$$H;W$C$F$$$^$9e(B
(e$B$$$d!”%a%j%C%H$O$"$k$H$$$&N)>l$,$"$k$N$OJ,$+$j$^$9$,e(B)e$B!#e(B

e$B$G!“0J2<$O%Q%C%1!<%8%7%9%F%`$N5!G=$K$D$$$F$NOC$Ge(B
e$B$”$^$jK\O@$H$O4X78$J$$$s$8$c$J$$$+$H;W$$$^$9$,!D!De(B

e$B$3$N$"$?$j$NOC$O!"%Q%C%1!<%8%7%9%F%`$,$I$&F0$/$+$H$+e(B

e$B$I$&$d$k$H%Q%C%1!<%8$r:n$l$k$+$@$1$G$O$J$/$F!"e(B

e$B$I$&$$$&%Q%C%1!<%8$r:n$k$Y$-$+$H$$$&$3$H$b4X78$7$F$-$^$9$7!"e(B

e$B7+$jJV$7$G$9$,K\O@$H$O$"$^$j4X78$J$$$H;W$$$^$9!#e(B

e$BMW$9$k$K$=$NO+6l$rJ’$C$F$G$b%Q%C%1!<%8%s%0%]%j%7!<$r4S$-$?$$!"e(B
e$B$C$F;v$@$H;W$&$N$G!"e(B
e$B$=$NHO0O$,3HBg$9$k$@$1$J$iBP=h$7$F$/$l$k$N$G$O$J$$$G$7$g$&$+!#e(B

e$B$"$^$j4X78$J$$$H;W$$$^$9!#e(B
e$B%Q%C%1!<%8J,3d$OMM!9$J$3$H$r9M$($Fe(B
e$B%Q%C%1!<%8%a%s%F%Je(B(e$B$H!"$b$A$m$s%Q%C%1!<%8%f!<%6e(B)e$B$,e(B
e$B7h$a$F$$$/$b$N$G$9$+$i!#e(B

e$B!V$o$6$o$6!W$K$b$=$l$>$l$N%1!<%9$K1~$8$F0UL#$,$"$k$O$:$G$9!#e(B

e$B$?$@$=$N>l9g!"C1=c$K9M$($k$He(B gem e$B2=$5$l$F$$$kI8=`E:IUJ*$O!“e(B
e$B!V%Q%C%1!<%8G[I[BP>]$+$i=|30$5$l$k!W$K$J$k$H;W$$$^$9!#e(B
e$B$”$k$$$O%P!<%8%g%K%s%0$r;&$7$Fe(B site_ruby e$B2<$K:FG[CV$7$F%Q%C%1!<%8%s%0!"e(B
e$B$G$7$g$&$+!#@.8y$7$?$b$N$N$_!#e(B

pre-installed-geme$B$r4^$`G[I[J*$K$J$C$?>l9g!“e(B
e$B%P%$%J%j%Q%C%1!<%8$,$=$&$J$k$3$H$b$”$k$G$7$g$&$7!“e(B
e$BC1$K$I$l$+$N%Q%C%1!<%8$N0lIt$K$J$k$3$H$b$”$k$G$7$g$&!#e(B
e$B$b$A$m$s%Q%C%1!<%8%a%s%F%J$N?t$@$1J}?K$O$"$jF@$k$H;W$$$^$9!#e(B

e$B$"!“E:IUJ*F1;N$G0MB84X78$,$”$k>l9g$O!&!&!&0J2<>JN,!J$)$#e(B

e$B=EMW$JItJ,$,e(Bpre-installed-geme$B$K$J$C$?>l9g$K$Oe(B
e$B%P%$%J%j%Q%C%1!<%8$N7A$r$I$&$9$k$K$;$h$O$:$;$J$/$J$k$G$7$g$&!#e(B

e$BC1$K%Q%C%1!<%82=$r$d$a$k$H$$$&A*Br;R$b$"$jF@$k$H$O$$$($^$9$,!#e(B

0.9.2 e$B$He(B 0.9.4 e$B$O$=$l$J$j$K%U%!%$%k9=@.$,0c$$$^$7$?!#e(B
e$B%G%#%l%/%H%j$bA}$($?$j$7$F$$$^$9!#e(B
e$B!J%5%V%3%^%s%IKh$K%U%!%$%k$,MQ0U$5$l$?!)$C$]$+$C$?!#!Ke(B

e$B$=$&$$$&LdBj$G$O$J$$$H;W$$$^$9!#e(B
e$B%Q%C%1!<%8%7%9%F%$O%Q%C%1!<%8%7%9%F%<+?H$Ne(B
e$B%G!<%?%Y!<%9$N$h$&$J$b$N$r$3$o$7$G$b$7$J$$8B$je(B
e$B%Q%C%1!<%8$N:n$j$K$7$,$C$FF0:n$9$k$b$N$G$9!#e(B

e$B$=$&$G$O$J$/$F!"$?$H$($P!"B?$/$N%Q%C%1!<%8%7%9%F%`$G$Oe(B
e$B0l3g$7$F%Q%C%1!<%8$r99?7$9$k5!G=$,Ds6!$5$l$F$$$^$9!#e(B

e$B$=$&$$$&$H$-!"%Q%C%1!<%8%7%9%F%$K$J$$$H$3$m$Ge(B e$B99?7$7$?%U%!%$%k$O%Q%C%1!<%8%7%9%F%$K$h$C$F$Oe(B
e$BC1$K>e=q$-$5$l$F$7$^$$$^$9!#e(B
geme$B$K$h$k99?7$r<+J,$G$d$C$?$N$@$+$i!"e(B
e$B$=$l$O$=$N%f!<%6$NITCm0U$@$H$$$($P$b$A$m$s$=$&$G$7$g$&$,e(B
e$B!VAj@-!W$H$$$&E@$G$O$3$&$$$&$3$H$b$=$N0lIt$@$H;W$$$^$9!#e(B

e$B$?$H$($=$&$J$C$F$b2sHrJ}K!$d=$I|J}K!$,$"$k$N$OJ,$+$C$F$$$^$9!#e(B

e$BJL$N$H$3$m$G!"B?J,e(BRubyGemse$B$Ne(BMLe$B$J$s$+$Ge(B
e$BB3$1$F$b$i$C$?$[$&$,NI$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

e$B;d$O;22C$7$F$^$;$s$,!"e(B

e$B;d$J$s$+$h$j>$7$$?M$,$$$i$C$7$c$k$H;W$$$^$9$7!"e(B

RubyGemse$B$N3+H/<T$N?M!9$K$bEA$o$k$s$8$c$J$$$+$H;W$$$^$9!#e(B

[email protected] e$B$5$s$O=q$-$^$7$?e(B:

yum e$B$N>l9g$Oe(B wget e$B$He(B rpm -i / -e e$B$@$1$G$9$,!"e(B
gem e$B$K$Oe(B rpm spec e$B$de(B .src.rpm e$B$N<+F0@8@.$He(B rpmbuild e$B$rDI2C$G$d$C$F$b$i$$$^$9!#e(B
e$B2DG=$J$i$P4{$Ke(B build e$B$5$l$?e(B .rpm e$B$O6&M-=PMh$k$HNI$$$G$7$g$&!#e(B

e$B30It%i%$%V%i%j$,I,MW$J>l9g!"e(B
geme$B$,I,MW$H$7$F$$$k2?$+$,$9$G$K%Q%C%1!<%8$GDs6!$5$l$F$$$k>l9g!“e(B
e$B$J$I$G<+F0@8@.$O$&$^$/F/$+$J$$$H;W$C$F$$$^$9!#e(B
e$B$=$l$G$b$”$kDxEY$N$R$J7?$O:n$l$^$9$,!#e(B

e$B$G!"$=$&$@$H$7$F$be(B
RubyGemse$B$,CN$i$J$$%Q%C%1!<%8%7%9%F%`$Oe(B
e$B$$$/$i$G$b=P$F$/$k$o$1$G!"e(B
RubyGemse$BB&$G$=$&$^$G$d$k%a%j%C%H$Oe(B
e$B$J$$$s$8$c$J$$$G$7$g$&$+!#e(B

e$B$^$"!"$=$l$O$3$3$G9M$($k$3$H$G$b$J$$$G$7$g$&$,!#e(B

e$B$D$$$G$K$$$($P%P%$%J%j%Q%C%1!<%8$N%f!<%6$Oe(B

e$B%P%$%J%j$G$O$J$$e(Bgeme$B$K$b$=$l$[$I6=L#$r;}$?$J$$$H;W$$$^$9!#e(B

e$B$9$_$^$;$s!"$3$A$i$N>u67$,M}2r$G$-$^$;$s!#e(B

rpme$B$r%$%s%9%H!<%k$7$?$iCf$Ge(Bgeme$B$,F0:n$7$Fe(B
gcce$B$,F0:n$7$F!D!D$H$$$&$h$&$J$N$O$C$F$$$&DxEY$N0UL#$G$9!#e(B

e$B5U$K8@$&$H!“e(B
e$B2>$Ke(BRubyGemse$BB&$G%Q%C%1!<%8%7%9%F%`$r%1%”$9$k$H$7$F$be(B
e$B0lHLE*$J$H$3$m$G$O$=$N$"$?$j$^$G$7$+e(B
e$B%1%"$G$-$J$$$s$8$c$J$$$+$H;W$C$F$$$^$9!#e(B