2012-01-15
セマフォ
セマフォについて理解が弱かったので纏めてみた。
『new Semaphore(0)』
http://d.hatena.ne.jp/hsyd/20120113/1326480032
セマフォのデッドロック検知はどのように行うべきか、というテーマが残った。生成したセマフォを完全に管理すればそれぞれを監視することで検知できるだろうけど、一般的にどうやるものなんだろう。
サーバ移行
NYNOCがこれまでのVPSサービスを止めてしまう為、これを契機に日本のVPSサービスに乗り換え。
面白そうなPaaSが増えているので、本当にVPSを使うべきなのか結構迷った。拙作のツールはRuby+Rails+MySQLが使えれば移行できそうだし、デプロイするインフラを整える時間を考えると、多少環境が違ってもアジャストできるのではないか、とも考えていた。
ドメインを持っていることもあり、またPaaSに移行できないであろう過去の資産を簡単に捨てるのも良くないので、またVPSを使うという選択にした。
gccすら入ってない状態で環境を構築するのはかなり久々。嵌ったのは以下の点。愚痴ではなく備忘録です。
Passengerのインストール時にlibopenssl-rubyが見つからない
Ubuntu(Maverick)のlibopenssl-rubyのパッケージを見つけることができず。universeにあるよ、という情報があったけど、apt-get installする際になぜかlibrubyに代わってしまう。
結局パッケージの問題ではなく、Rubyのext/openssl下をコンパイルしてインストールすることでうまくいった。
MySQL-5.5のコンパイル時のCMake
MySQLのインストールなんて本当に久しぶりと思って始めてみたら、configureがCMakeに代わっていた。指定できるオプションにあまり差異は無いものの、合わせるのが少し面倒だった。
MySQL-5.5のbasedirが認識できない
起動スクリプトにbasedirを書いても、スクリプト内でmy_print_defaultsの実行結果をパースしてbasedirを上書きしている。
その上、my_print_defaultsがパス上にある全てのmy.cnfを参照するらしく、basedirのエントリが複数表示されてしまい、その結果意図したbasedirが設定されない。不要なmy.cnfを削除した。