RubyGemsを1.3にアップデートする手順
gem update --system
ではうまく行かない場合があるようなので、
その場合には以下のようにすればOkです。
1 # gem install rubygems-update 2 # update_rub ygems
gem update --system
ではうまく行かない場合があるようなので、
その場合には以下のようにすればOkです。
1 # gem install rubygems-update 2 # update_rub ygems
Macのtopコマンドはdebianのものと違って、
Shift+M
ではメモリの使用量によるソートができませんでした。
Macの場合は、
1 % top -orsize
のように、オプションを指定して起動するか、
topが起動している状態で、o
キーを押してから、
rsize
と入力すると良いようです。
RSIZE
というカラムが使用しているメモリの量を表しています。
config/envrake gems:unpac
しようとすると、以下のようなエラーが出るようです。
1 % rake gems:unpack GEM=genki- pagination _scope 2 (in /Users/tak iuchi/proj ect/formul a) 3 ERROR: While executing gem ... (ArgumentEr ror) 4 Illformed requiremen t ["\">= 0.0.4\""]
RailsのLightHouse
rake gems:unpac
ということで、この問題を回避するために、上記Ticketに添付されていた
Patchを参考に、以下のようなMonkeyPatc
config/ini
1 module Rails 2 class GemDependency 3 def unpack_to(directory) 4 FileUtils.mkdir_p directory 5 Dir.chdir directory do 6 Gem::GemRunner.new.run( 7 unpack_com mand.map {|i| i.gsub(/\A["']|["']\z/, '')}) 8 end 9 10 spec_filen ame = File.join(gem_dir(directory), '.specifica tion') 11 File.open(spec_filen ame, 'w') do |file| 12 file.puts specificat ion.to_yaml 13 end 14 end 15 end 16 end
これをconfig/ini
の下に置いておけば、とりあえず正常にunpackする事ができます。
現時点では(version 0.3.1)、macirbを使うときは、LANG=C
で利用する必要があるようなので、以下のようにzshrcでaliasを登録してみました。
~/.zshrc
1 alias macirb='LANG=C macirb'
これで特に問題なくmacirb
を使う事ができます。
ちなみに、require "nkf"
をしているRubyスクリプトを
macrubyで実行する場合も、同様にLANGをCにする必要があるようです。
See Also
外で開発する場合に、マウスがないと不便なので、 vimouseをMacに移植するためにMacRubyをインストールしてみる事にしました。 最初はインストーラを以下のサイトから落としてきて普通にインストールしました。
インストール自体は非常に簡単に終了したのですが、 macirbを実行しようとすると以下のようなエラーが出て、 入力をいっさい受け付けなくなるという悲しい状況に。
1 % macirb 2 dyld: lazy symbol binding failed: Symbol not found: _rb_enc_find_index 3 Referenced from: /Library/F rameworks/ MacRuby.fr amework/Ve rsions/0.3 /usr/lib/r uby/1.9.0/ universal- darwin9.0/ nkf.bundle 4 Expected in: flat namespace 5 6 dyld: Symbol not found: _rb_enc_fi nd_index 7 Referenced from: /Library/F rameworks/ MacRuby.fr amework/Ve rsions/0.3 /usr/lib/r uby/1.9.0/ universal- darwin9.0/ nkf.bundle 8 Expected in: flat namespace
どうやら今のバージョン(0.3.1)のMacRubyには、 NKFに問題があって、日本語環境でmacirbを実行しようとすると問題があるようでした。
という事で、最新版なら直ってるかもしれないという望みにかけて、 trunkから切り出してきたMacRubyも試してみました。
1 % git svn clone http://svn.macosforg e.org/repo sitory/rub y/MacRuby -T trunk 2 % cd MacRuby 3 % rake 4 % sudo rake install 5 % macruby -v 6 MacRuby version 0.4 (ruby 1.9.0 2008-06-03 ) [universal- darwin9.0]
しかし残念ながら、上記の問題はまだ直っていないようです。
LeopardでGNU screenを使っているとき、以下のような エラーメッセージが出てくることがあるようです。
1 ****** Returning nil _server **********
これはLeopardに付属している/usr/bin/s
に当たっているパッチの影響であるらしく、Macports版のGNU screenを使えばこの問題は発生しないようです。
iPhone-2.1
おお。
See Also
.autotestを書き換えるたびに思い出すのに苦労するのでまとめておきます。
hook name | when does it happen? |
---|---|
:initializ | 起動直後 |
:interrupt | INT割り込み発生時 |
:reset | 初期化の後およびING割り込み時の初期化が完了した後 |
:run_comma | テストの実行前 |
:ran_comma | テスト完了時 |
:all_good | INTによる全体テストが成功裏に完了した場合 |
:waiting | テスト実行完了後にsleepする直前 |
:quit | 終了時 |
早速Growlとautotestを連携させてみようと思ったのですが、
growlnotif
1 % growlnotify -m "test" 2 2008-09-15 09:13:20.9 29 growlnotif y[901:10b] could not find local GrowlAppli cationBrid gePathway, falling back to NSDNC
こんな感じのWARNINGが出てきます。 メッセージ自体はきちんと表示されるので、実用上問題ないのですが、 毎回警告が出てくるのはちょっと気になるので、 警告が出ない方法が無いかいくつか試してみた所、 以下のようにホストを指定すると大丈夫なようでした。
1 % growlnotify -m "test" -H localhost
ということで、autotestと連携させるために、
以下のような.autotest
ファイルを作成しました。
1 class Autotest 2 module Growl 3 IMG_OK = '/Developer/Examples/ Carbon/Dia l/English. lproj/' + 4 'rotate_kno b_select.t iff' 5 IMG_NG = "/Applicati ons/Mail.a pp/Content s/Resource s/Caution. tiff" 6 class << self 7 def growl(title, msg, img = nil, pri = 0, sticky = "") 8 img ||= IMG_NG 9 msg += " at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}" 10 system "growlnotif y -n autotest #{title} -m #{msg.inspect}" + 11 " -H localhost --image #{img} -p #{pri} #{sticky}" 12 end 13 end 14 15 Autotest.add_hook :run_comman d do |at| 16 growl "autotest running", "Started", IMG_OK 17 end 18 19 Autotest.add_hook :ran_comman d do |at| 20 result = [at.results].flatten.join("\n") 21 examples = result.slice(/(\d+)\s+examples?/).to_i 22 tests = result.slice(/(\d+)\s+tests?/).to_i 23 failures = result.slice(/(\d+)\s+failures?/).to_i 24 errors = result.slice(/(\d+)\s+failures?/).to_i 25 if failures + errors > 0 26 growl "Tests Failed", 27 "#{failures} failures #{errors} errors", IMG_NG, 2#, "-s" 28 else 29 growl "Tests Passed", "#{tests + examples} tests", IMG_OK 30 end 31 end 32 end 33 end
最初はrequire 'autotest/g
をしてモンキーパッチを当てていたのですが、
結局ほとんど書きかえてしまったのでこうなりました。
エラーが発生した場所や、エラーメッセージなんかも表示できるようになるともっと便利になるかもしれないですね。
Mac環境でうまく動いていない状況だったので、修正を行いました。
http://git
基本的な使い方の変更は特にありません。
複数の端末でTridentを起動しているときに、
'Trident.re