2007年05月14日

CentOS 4.3とyumとsqlite

先日、tracのDB定義をsqliteのコマンドで直接参照するというのを書いたのですが、この時、sqliteのコマンドラインツールが入っていなかったため、yumを使ってインストールした。

これが良くなかったようで、今朝からtracに接続できなくなっていた。なぜ今朝からかというと、金曜の夜に一度ブレーカが落ちてtracを運用しているサーバを再起動したので、httpサーバ(さらに詳しく言うとmod_python)の読むライブラリがその時から新しくなり、その後、誰もアクセスしなかったため、今朝気付いた訳です。
#ブレーカが落ちるオフィスというのもアレですが(苦笑)

現象はhttpdがメモリをどんどん食いつぶしてメモリーエラーで落ちる。落ちるまでの間ロードアベレージもCPU使用率もバンバン上がる。最初はHDDのせいか?メモリ不良か?とハードを疑った(ブレーカー落ちの不正終了もあったので)のですが、他のサービスは問題なく動いているため、とりあえず、yum updateしてみた。

すると、こっちも落ちる。

# yum update Setting up Update Process Setting up repositories Reading repository metadata in from local files Traceback (most recent call last): File "/usr/bin/yum", line 29, in ? yummain.main(sys.argv[1:]) File "/usr/share/yum-cli/yummain.py", line 97, in main result, resultmsgs = do() File "/usr/share/yum-cli/cli.py", line 471, in doCommands return self.updatePkgs() File "/usr/share/yum-cli/cli.py", line 949, in updatePkgs self.doRepoSetup() File "/usr/share/yum-cli/cli.py", line 75, in doRepoSetup self.doSackSetup(thisrepo=thisrepo) File "__init__.py", line 260, in doSackSetup File "repos.py", line 287, in populateSack File "sqlitecache.py", line 96, in getPrimary File "sqlitecache.py", line 83, in _getbase File "sqlitecache.py", line 76, in getDatabase File "sqlitecache.py", line 49, in loadCache File "/var/tmp/python-sqlite-root//usr/lib/python2.3/site-packages/sqlite/main.py", line 244, in execute MemoryError

これでsqliteのバージョンが合ってない事に気付きました(遅い)最後に行った設定変更をまず疑うのが基本でした。

OSはCentOS 4.3なので、RPMを探すとsqlite-3.2.2-1.i386.rpmである。金曜に入ったsqliteは、sqlite-3.3.3-1.2。

# wget http://ftp.riken.jp/Linux/centos/4.3/os/i386/CentOS/RPMS/sqlite-3.2.2-1.i386.rpm # rpm -Uvh --oldpackage sqlite-3.2.2-1.i386.rpm

これで無事yumも起動、tracにもアクセスできるようになりました。ここのCentOSのバージョンも上げたいところだなぁ。

投稿者 iwazawa : 13:21 | コメント (2)

同じ現象で悩んでいました。
自己解決できず、この情報で解決できました。
ありがとうございました。

ざっと、ブログを拝見させていただいて、
非常に興味深かったので、これからも訪問させて
いただきます。

今後ともよろしくお願いいたします。


by char 2007/08/14 22:41

体調を崩していたもので、返事が遅くなりまして済みません。
これ、私もかなりハマりました。
会社の開発環境だったんで、大慌てで調べて直した記憶があります(汗)
お役に立てて嬉しいです。


by iwa 2007/08/21 13:27

意外と進まない

Railsでコードを書き始めたのだが、意外とサクサク進まない。

こちとら、JavaでHibernateでバリバリ書いていたという自負(苦笑)があり、Railsのテーブル関連も、最初にRailsによるアジャイルWebアプリケーション開発を読んだとき、特に引っかかることもなくすらすら読めたし、Railsのmigrationも良くできている。Controllerだって、Strutsに比べたら簡単そうだ。Viewに関しては更に、である。

しかし実際にコードを書きながら進めていくと、この場合、モデルやコントローラを作るのか作らないのか、名前はどうするの?など、規約を知らないために右往左往してしまっている。本を読んでいると、分らないことは特になく、何でも今すぐ作れそうな気がしてしまうが、自分がやろうとしていることを、どうやるのかがすぐには分らない。

ウリであるところの規約は、規約自体を知らなければ意味がないと言うことです(笑)

いや別にRailsをけなしているわけではなく、これは当たり前のことで、今までの開発ツールであれば、

(1) 設定方法を調べ
(2) 設定し
(3) 設定を使う

といった3段階でやっていたことを、

(1) 規約を調べ
(3) 規約を使う

の2段階にしてくれる上に、感覚的には前者の(1)、(2)の難易度は後者の(1)よりも相応難しかったはずです。

ツールの使い方につても、習熟が足りない。generate modelやscaffoldや、rake db:migrateやその他、いろいろをいつやって、何ができて、本当にやっていいの?など迷う。

今はまだRailsをさわり始めたばかり(しかもほぼ休日の数時間)なため、なかなかノリが見えてこないが、慣れたらいけるはず。出来る子のはず(笑)

ある程度の規模のアプリを書くためにはRailsの規約の何パーセントくらいが分ったらサクサクいけるのかを身をもって体験していきたいと思います。今のところ…20%くらいか(自己申告)

投稿者 iwazawa : 00:04 | コメント (0)