SDカード領域でbundlerからthinを起動する時のはまりポイント
bundleでインストールしたgemsファイルは下記のように実行できるわけですが
bundle exec thin start
SDカード領域に保存した場合、thin実行時にthin_parser.soのアクセスに失敗するというケースがありました。
root@microserver:/media/sdcard/app# bundle exec thin start /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin_parser.so: /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin_parser.so: failed to map segment from shared object: Operation not permitted - /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin_parser.so (LoadError) from /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin.rb:40 from /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/bin/thin:5:in `require' from /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/bin/thin:5 from /usr/bin/thin:19:in `load' from /usr/bin/thin:19
なんだろ?と思って調べた所、UbuntuなのかLinuxの制限なのかファイルシステムがFAT32の場合に発生する現象ということがわかりました。Shellでよく利用するシンボリックリンク作成時も同様の「Operation not permitted」エラーが発生します。
fdiskを使ってSDカードをFAT32からext3に初期化しなおす事で、bundlerのexecで実行したthinでも起動できるようになりました。
デジカメなどストレージ利用を目的としたSDカードならFAT32のままでもよいのですが、常にマウントしてファイルシステムとして利用するなら無難にext3にしておいた方がよさそうです。