ディレクトリを指定してGemをインストールする方法
gemを指定したディレクトリにインストールする方法を紹介します。 以下のように -i オプションでディレクトリを指定します。
1 gem install -i ./gems data_objects --no-ri --no-rdoc
Gemをunpackしている場合に、もう一つ、二つGemを追加したい時などに重宝します。
gemを指定したディレクトリにインストールする方法を紹介します。 以下のように -i オプションでディレクトリを指定します。
1 gem install -i ./gems data_objects --no-ri --no-rdoc
Gemをunpackしている場合に、もう一つ、二つGemを追加したい時などに重宝します。
現在のところ、JRubyでjgem install do_sqlite3
1 Building native extensions. This could take a while... 2 /usr/local /jruby/lib /ruby/1.8/ mkmf.rb:7: JRuby does not support native extensions . Check wiki.jruby .org for alternativ es. (NotImpleme ntedError)
この問題を解決するには、最新版のdatamapper
http://git
doをgit cloneしたら、まずはdata_objec
1 % jruby -S rake package 2 % sudo jgem install pkg/data_objects-0.9 .12.gem
続いて、do_jdbcディレクトリに移動し、do_jdbcをコンパイルしてインストールします。
1 % jruby -S rake compile 2 % jruby -S rake package 3 % sudo jgem install pkg/do_jdbc-0.9.12-j ava.gem
最後に、do_sqlite3
1 % jruby -S rake package 2 % sudo jgem install pkg/do_sqlite3-0.9.1 2-java.gem
以上でインストール完了です。
Bumble はGoogle App Engine for JavaのDateSoreを利用するためのライブラリですが、Railsで利用する前提で作られているので、 Merbで利用する場合には、以下のような修正を加えると良いようです。
bumble.rb
1 module Bumble 2 (..snip..) 3 def self.included(base) 4 base.send :include, InstanceMe thods 5 base.send :extend, ClassMetho ds 6 Merb::Router.root_behav ior = 7 Merb::Router.root_behav ior.identify(Bumble => :key) 8 end
これによって、resource(@person) #=> /people/5 のようにidentifyしてくれるようになります。
GAEjのファイル数制限が厳しいので、rails.jarを試作してみました。
jrubyのバグなのか、jarファイルの中身に対してrequireをする時に、 pathの中に../..のような感じの指定が入っているとうまくロードできないようなので、その問題を回避するモンキーパッチをあてる必要がありました。
require_fi
1 alias :require_original :require 2 def require(path) 3 path = File.expand_pat h(path) if path.to_s.match(/^file:/) 4 require_or iginal path 5 end 6 7 alias :load_origi nal :load 8 def load(path) 9 path = File.expand_pat h(path) if path.to_s.match(/^file:/) 10 load_origi nal path 11 end
それでこんな感じに使えます。
1 % java -jar $JRUBY_HOME/lib/jruby -complete. jar -rrequire_ fix -rrails-2. 3.2.jar -S rails -v 2 Rails 2.3.2
実際にはlibの下に設置する感じになりますね。
Ramaze はModularなWebアプリケーションフレームワークです。 以下のようにしてインストールしました。
1 % sudo gem install ramaze 2 % sudo gem install manveru-innate 3 % sudo gem install manveru-na goro
続いて、以下のようひな形を生成して起動します。
1 % ramaze --create hello 2 % cd hello 3 % ramaze
ログの出力
起動画面
2日前ぐらいからいろいろ頑張ってたのですが、ようやくGAEjの本番環境でMerbアプリを動かせました。
使っているgemをfreezeする仕組みがあるフレームワークであれば、どれでも以外と簡単に動きそうな感じがします。
いやー、これは色々面白い事が出来そうですね!
Google App EngineでMerbを動かしてみた。
しかし、本番環境にデプロイするためには別途Google App Engine Javaのアカウント申請が必要らしい。申請してみたけれど、レスポンスが無いので初回の10000万件の枠はもう無くなっている模様。
残念だなー。
最新のhpricotをjruby(1.2)で利用する手順をメモしておきます。
まず、githubから最新のhpricotをcloneしてきます。
あとは、以下のようにしてjruby用のパッケージをbuildしてインストールします。
1 % jruby -S rake package_java 2 % sudo jgem install pkg/hprico t-0.8.235- jruby.gem
これでOK.
以前、Merb用のaliasの設定をご紹介しましたが、今度はjruby版です。
1 alias jm='PATH=./bin:$PATH jruby -S merb' 2 alias jmi='jm -i' 3 alias jmg='PATH=./bin :$PATH jruby -S merb-gen'
rubyとjrubyを両方使ってると、
1 % jruby -S merb
のように書く事が多いので、aliasを設定しておくと便利ですね。
思い立ってJRubyの環境を入れてみる事にしました。
ちょうどバージョン1.2が出ているようなので、ソースを落としてきます。
http://dis
落としてきたファイルは/usr/local
1 % ant
あとは、以下のように~/.zshrcなどで環境変数を設定します。
1 export JRUBY_HOME=/usr/loca l/jruby-1. 2.0 2 export PATH=:$JRUBY_HOME /bin:$PATH
これで、ひとまずjrubyが動くようになります。
1 % jruby -v 2 jruby 1.2.0 (ruby 1.8.6 patchlevel287) (2009-04-08 rev 6586) [i386-java]