Rubyistみたいな

2009-06-11

Ruby 1.9.1で $HOME/.gem/ruby/1.9.1 以下のGemパッケージを使う方法

| 16:38

正しい方法かは知らないけど、とりあえず使うために頑張ってみる。

require "rubygems/custom_require" をする

デフォルトでKernel.#requireを上書きするとかそんなことをやらないようにか、rubygems.rb内で、RUBY_VERSIONが1.9以上の場合はrubygems/custom_requireを読まないようになっています。なのでこいつを明示的に読むようにしてやれば一応は動きます。

Kernel#gem を使う

詳しくはbitclust辺りを参照。

指定された Gem をロードする前にその Gem が必要とする Gem をロードします。バージョン情報を省略した場合は、最も高いバージョンの Gem をロードします。指定された Gem やその Gem が必要とする Gem が見つからなかった場合は Gem::LoadError が発生します。

bitclust

ただ、るりまには上のように書いてあるのですが、バージョン情報を省略したらGem::LoadErrorが発生しました。仕方がないので最新バージョンの Gem をロードするためにひと手間かけました。

spec = Gem.searcher.find "hoge" # "hoge"に使用する Gem の名前を指定する
gem spec.name, "= #{spec.version}"
require spec.name

やっている事は rubygems/custom_require でやっていることと変わりありません。Gem.activateを使うかKernel#gemを使うかの違い。

Gem::QuickLoader.load_full_rubygems_library を使う方法

これはRuby 1.8.x以下でrequire "rubygems"としたのと全く同じ状態になるもの、だと思う。

多分各々が呼ぶべきものではないと思うのだけど、Ruby 1.9.1のソース内を探索していたらこんなものを見つけたので、せっかくなので使ってみる。

yharayhara2009/10/03 17:37trunkの7/30のコミットで、1.9でも普通に~/.gemからロードできるように直っているそうです。
Ruby 1.9.2 (あるいは、1.9.2-preview2) では上記の作業は不要になりますね。

MccadeMccade2016/05/07 16:08The price is certainly right, but I think I have moved on from McAfee in a permanent sense. The antivirus I run now is so far beyond that they were able to offer me, that I cannot see myself ever going ba3c;#82k0&nor would I ever want to.

2009-06-05

Rubygemsパッケージとか $HOME/.gem 以下にインストールするだろjk

| 17:05

/usr/bin/* を勝手に荒らされるという話。

no title

Rubygems 1.3.0から Gem.user_dir というメソッドが追加されていて、gemコマンドでインストールされるディレクトリにデフォルトで $HOME/.gem 以下も追加してくれています。しかもこれ、Rubyの処理系ごと(1.8.x,1.9.x,JRuby等)にディレクトリを分けてくれます。

例えば1.8.xの場合

$HOME/.gem/ruby/1.8

1.9.xの場合

$HOME/.gem/ruby/1.9.1

JRubyの場合

$HOME/.gem/jruby/1.8

となります。

ただ、JRuby--1.9オプションを付けてgemを実行しても、 $HOME/.gem/jruby/1.8 になってしまう問題はあります。Rubygemsはバージョン指定の部分はRbConfig::CONFIG['ruby_version']を取って指定しているだけなので、1.9.1でなくて1.8を返しているJRuby側の問題っぽいです。

デフォルト以外の場所にインストールする場合、環境変数GEM_HOMEを指定しちゃう方法が一番有名かもしれません。

たぶん、環境変数 GEM_HOME をローカルのどこかに設定してユーザー権限で gem install すればうまくいくんじゃないでしょか。

はてなダイアリー

これだと1.8.xだろうが1.9.xだろうがJRubyだろうが同じディレクトリのgemを参照することになり、なんとも気持ち悪いことになってしまいます。単一処理系しか動かさないのなら問題はありませんが、複数処理系を動かす場合問題が起きてしまうことがあります。

なので僕は基本GEM_HOMEも何も設定せずにユーザ権限で gem install するようにしています。ただ、この場合、処理系の数だけPATHに追加しないといけないので、結構面倒かもしれません。

2007-12-02

間違って日記の内容を消してしまった

| 03:44

今日の分の更新の際に昨日の日記の内容を消してしまいました。どうにかうろ覚えの内容を元に再現っぽく書いてみましたが、なんだか違う気がします。

RubyGems自身のアップデート

| 03:24

RubyGemsのプロジェクトページを見ていたら、RubyGems自体の.gemパッケージがあった。もしかしたらと思って調べたらgemRubyGems自身をアップデートできるらしい。

ちなみに自分の環境はWindowsなのですが、基本どのOSも変わりません。

参考:RubyGemsのアップデート - pulscope.ruby

Rubygemsのアップデート

> gem up --system

> gem pristine --all

俺の環境では下のコマンドを打ち込んだらエラー出た。このコマンドが何やっているかは不明。ググったけどよく分からない・・・・・・。

キャッシュの削除

source_cacheを削除しないとエラーでる場合があるらしいので削除しとく。C:\直下にインストールしている場合の場所は"C:\ruby\lib\ruby\gem\source_cache"になる。Explorerから削除してもいいけどgemやった直後なので折角だからプロンプトで削除してしまうのが吉。

del c:\ruby\lib\ruby\gem\source_cache

source_cacheのパスはそれぞれ環境にあわせて読み替えてください。Windowsでプロンプトってあまり使わないからコマンドを忘れてしまう・・・・・・。

rubikitchrubikitch2007/12/02 19:38ローカルの文書をアップロードする「はてダラ」を使えばこんな事故は起こりません。
試してみては?

from_kyushufrom_kyushu2007/12/02 20:55コメントありがとうございます。このようなスクリプトがあるんですね。Ruby移植版があるようですがRuby版はグループのほうは対応していないのは残念です・・・・・・。早速試させていただきます、ありがとうございました。

2007-12-01

RailsによるアジャイルWebアプリケーション開発 第2版 2日目

| 03:42

進捗状況

8.3 イテレーションC2(~P97)まで終わった。RadRailsRakeタスクがなぜか反応しなくなり、しばらく悪戦苦闘した後諦めて別途プロンプトからRakeを実行することに。これで時間をとられてしまったのが惜しかった。本当は第8章 タスクCを全て終わらせる予定だったのに・・・・・・。

補足情報

オーム社のWebサイトから日本語版のソースコードが落とせるのね。わざわざ原著のソースコード見てたよ。

あと、第1版はサポートページがあるのに、第2版はないみたい。正誤表代わりに原著のErrataを見るわけにも行かないし、誤字等がないことを祈るばかりです。

RailsによるアジャイルWebアプリケーション開発 第2版 1日目

| 03:42

進捗状況

6.4 イテレーションA4(~P77)まで終わった。イテレーションA3の検証の実装はあまりのシンプルさにちょっと感動した。

疑問

本書ではテストデータを用意するのにマイグレーションを使っているけど、フィクスチャじゃダメなのかな?索引見る限りではdb:fixtures:loadは出てきていないようだけど・・・・・・。こういうテストデータはマイグレーションで用意して、フィクスチャはテスト時のみに使うものなのかな。このまま勉強を進めたら分かりそうだから一時保留。

始めましてのご挨拶

| 03:42

初めまして、id:from_kyushuです

プログラム初心者の職業PGです。詳しいプロフィールははてなダイアリーのプロフィールにまとめていますので、そちらをご覧ください。

Rubyビジネスコモンズ及びRBC長崎の会員です。Rubyistに書くのはちょっと違うかなー、と思いますのでこっちではあまり触れることはないかと思います。

この日記について

下記の教本やRuby,Railsを勉強していく上でのメモとして書き残していく予定です。しばらくは本当に勉強メインですが、アプリケーションを開発していく上でのメモなども残せていけるようにしたいなぁ、なんて妄想中。

教本

最近やりはじめました。超わかりやすいです。でも超分厚い。

以前やっていたのですがちょっと分かりづらい?正誤表と併せてやらないと痛い目に合います。

はじめよう Ruby on Rails

はじめよう Ruby on Rails

ayucat_on_tabelogayucat_on_tabelog2007/12/01 21:11プロフ拝見させていただきました。お若いですねー。Railsは仕事っぽいことやっていますが、AWDWR 2nd ed.はまだ一度手に取っただけです。まだ学生ということで共通点も多いですね、今後も拝見させていただきます!

from_kyushufrom_kyushu2007/12/02 02:53コメントありがとうございます。しばらくは勉強のメモ代わりに更新していきますのであまり見所はないかと思いますが、今後もご覧頂ければうれしく思います。

AlexAlex2012/10/16 05:18You rlealy found a way to make this whole process easier.

njqimhwhrymnjqimhwhrym2012/10/16 21:3225SzZw <a href="http://qsiwnqzkxubl.com/">qsiwnqzkxubl</a>

uckymetbeouckymetbeo2012/10/20 01:2128kWSG <a href="http://asfthheoqycy.com/">asfthheoqycy</a>

aoupzgqahaoupzgqah2012/10/20 11:32L3iAsU , [url=http://pyvzgtymplox.com/]pyvzgtymplox[/url], [link=http://fehppdgpaeve.com/]fehppdgpaeve[/link], http://ttddukcpckvl.com/