2012年 9月 の投稿一覧

fuse: bad mount pointが起きたときは

sshfsでローカルにリモートのディレクトリをマウントしていたときに、回線が切れたりした場合、マウントした箇所に移動しようとすると、

fuse: bad mount point `/Users/hideack/mnt/foo': Input/output error

といったエラーメッセージが表示されることがある。この場合、一度、sshfsのプロセスを消す必要がある。

$ ps uax | grep sshfs
hideack     41245   0.0  0.0   679756    308   ??  Ss    5:59PM   0:00.71 sshfs hideack@192.168.**.**:/home/foo /Users/hideack/mnt/foo
$ kill -QUIT 41245
$ umount -l ~/mnt/foo

落ち着いて考えればわかることですね。落ち着いて考えよう…。

Padrinoでormをmongoidに指定した場合のGemfileにmongoが無い…?

Padrino (Padrino v. 0.10.6) でORMをmongoidに指定した場合

$ padrino g project projectname -t rspec -e erb -d mongoid
$ padrino start
/usr/local/Cellar/ruby/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bundler-1.2.0.pre/lib/bundler/runtime.rb:68:in `require': cannot load such file -- mongo (LoadError)
(以下略)

となって、エラーになる。
padrinoコマンドで自動生成されたGemfileを見ると

source :rubygems
# Server requirements
# gem 'thin' # or mongrel
# gem 'trinidad', :platform => 'jruby'
# Project requirements
gem 'rake'
gem 'sinatra-flash', :require => 'sinatra/flash'
# Component requirements
gem 'erubis', "~> 2.7.0"
gem 'mongoid'
gem 'bson_ext', :require => "mongo"
(略)

となっていて、gem 'mongo' が無いので、ここに

gem 'mongo'

足すと問題解決するんだけど、なんで含まれないんだ…?

Padrinoで追加したRakeタスクをProduction環境として実行する

padrinoで作っていたrakeタスクを...

$ padrino rake taskname

といった具合に実行しようとするとdevelopで実行されていてrakeタスクの中で呼んでいたmongoidがdevelopを向いていて本番用のデータベースを向いて実行されない。
よくよく考えると環境変数設定してないからだな。ということで、

$ PADRINO_ENV=production padrino rake taskname

とかけば、本番用のデータベースに向いた状態でタスクが実行される。