トップ «前の日記(2008/06/22 (日) ) 最新 次の日記(2008/06/24 (火) )» 編集 RSS feed

HsbtDiary


2008/06/23 (月) [長年日記]

[tDiary][ruby]tDiary の footer に RUBY_PATCHLEVEL を表示するようにした

tDiaryでのRubyのバージョン表示を詳しくした経由。

確かにちまたでは 1.8.7-p22 とかそういう表記が使われているのに、それを表示しないのはよろしくないと思ったので tDiary でも対応してみた。とりあえず、constant Kernel::RUBY_PATCHLEVELによると

パッチレベルという概念および RUBY_PATCHLEVEL 定数は、 Ruby 1.8.5-p1 以降、 1.8.6 以降で導入されました。 1.8.5やそれ以前のバージョンでは定義されていません。

ということらしいので、単純に RUBY_VERSION > 1.8.5 だったら表示する。これ、RUBY_VERSION >= 1.8.6 の方が仕様的にはいいのかのう…。

追記

いきなり大ボスから添削入ってわらた。

[rubygems][ZenTest][multiruby][ruby]Ruby の互換性チェックがめんどくさい

Ruby で特定のバージョン間の動作チェックをする時ってとてもめんどい。今回は1.8.5以下と1.8.6以上とで動作チェックをするという前提。

まず最初にとった考えた方法は @noritada さんの提案にある http://snapshot.debian.net/ にあるデイリーパッケージを使う方法。とりあえず、ruby1.8 で検索するとわらわら deb パッケージはでてくるけど、これを既存の環境を壊さずに使う方法をオレは知らないので今回は断念。

次は walf443 さんから提案された ZenTest に含まれている multiruby を使う方法。これは

~/.multiruby/version

の下に使いたいバージョンの tar ボールを放り込んでおくと

~/.multiruby/install

以下にバージョンごとに Ruby バイナリが作られるというもの。とりあえず

sudo gem install ZenTest

してから 1.8.4 と 1.8.6 の tar ボールを配置後に multiruby_setup を実行、しばらく待った後に作成されたバイナリを使ってチェック完了。これ、1.9.0 もできるっぽいので tDiary の止血作業をするときにはいいかもなー。

noritada++, walf443++

[debian][rubygems] debian での rubygems bin ディレクトリ

multiruby を使うときに軽くはまったんだけど、debian に用意されている rubygems でインストールしたものって

/var/lib/gems

配下に展開されるんだねえ、今まで知らなかったよ。なので、rubygems を使ってインストールしたもので bin 配下のものを使うときは PATH とかに

/var/lib/gems/1.8/bin

を追加しないとダメ。やれやれ。

本日のツッコミ(全4件) [ツッコミを入れる]
# takano32 (2008/06/23 (月) 22:11)

取り込み、さんくす!hsbt++

# walf443 (2008/06/26 (木) 00:02)

なんだかんだでgemではまらないためには、.gemrcを用意して、gempathの設定をして必要なところにはPATHを通しておくのが吉だったりしますw<br><br>具体的には、複数のバージョンのrubyに同じgemを読ませたりしようとしたり、gemのバージョンをアップデートしたときに、今まで参照できていたライブラリが急に読みこめなくなったりなど。

# しばた (2008/06/26 (木) 07:37)

>walf443さん<br>なるほど。gemrcで/usr/local以下に環境構築って感じですかねー?

# walf443 (2008/06/26 (木) 09:02)

手元のMacBookだとgempathを/Library/Ruby/Gems/に設定してますね<br><br>Linuxだと基本原則からは外れますが、gempathを/usr/local/gems/とかに設定して、/usr/local/gems/bin/にPATHを通しておくとかですね。そうすると、gemで読んだりインストールするファイルがそれ以降は/usr/local/gems/以下に全て集まるといった感じになります