Google Code Prettify

ラベル Ruby の投稿を表示しています。 すべての投稿を表示
ラベル Ruby の投稿を表示しています。 すべての投稿を表示

2008年8月3日

CentOS 5.2 上で Ruby の環境を整える

CentOS 5.2 の標準では ruby 1.8.5 止まりである。

Ruby を最新バージョンに上げて、RubyGems入れて、Railsも入れるとか、結構、巷で行われている

まぁ、記念なので、次のサイトを参考にインストールしたら、すんなりできた

RPMforge の追加

公開鍵の取得し、レポジトリのパッケージの確認し、インストールし、デフォルトでは使わない設定をする。

# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -K rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpmforge-release-0.3.6-1.el5.rf.i386.rpm: (sha1) dsa sha1 md5 gpg OK
# rpm -i rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# sed -ie 's/enabled = [01]/enabled = 0/' /etc/yum.repos.d/rpmforge.repo
# yum --enablerepo=rpmforge list

気持ち ffmpeg や mencoder をインストール出来るようになるってうれしい

# yum --enablerepo=rpmforge install fmpeg mencoder

checkinstall のインストール

tarball からRPMパッケージなどを簡単に作れるようにするものらしい。(1, 2)、、、ちょっとだけいい。

# yum --enablerepo=rpmforge install checkinstall

ruby 1.8.7 のインストール

公式サイトから取得して、つらつらとRPMパッケージに仕立てて、インストールする。バイナリパッケージなので、依存するライブラリを気をつければ、別の環境にもサクサク移せるとは、いい感じ。

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p17.tar.bz2
# tar xfj ruby-1.8.7-p17.tar.bz2
# cd ruby-1.8.7-p17
# ./configure --prefix=/usr
...
# make
...
# checkinstall --fstrans=no
...
# rpm -ih /usr/src/redhat/RPMS/i386/ruby-1.8.7-p17-1.i386.rpm 
# ruby -v
ruby 1.8.7 (2008-06-09 patchlevel 17) [i686-linux]

RubyGemsのインストール

公式サイトから取得して、サクッとRPMパッケージに仕立てて、インストールする。

# wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
# tar xfz rubygems-1.2.0.tgz 
# cd rubygems-1.2.0
# checkinstall -R "ruby setup.rb"
...
# rpm -ih /usr/src/redhat/RPMS/i386/rubygems-1.2.0-1.i386.rpm 
# gem -v
1.2.0

ここまでくると、gem コマンドが使える状態になるので、あとはそいつに任せれば、環境が出来上がる。

# gem install rails

どっかに、CentOS 用の ruby 最新版のレポジトリとか無いのかなぁ。。。

追記(2010-05-18)

2年も経つとURLも変わるらしい。上手く行かない時は次の記事を参考にと。

1.8.7へアップデート死亡遊技 - Rubyの勉強を始めます。 - Rubyist

2008年2月27日

Typo を 5系列にする

気がついてみたら、typo 5.0.2 が出ていたので更新してみた。

ほんとに呆気なく出来てしまった。。。

まず rails 1.2.x から rails 2.x への更新

# gem update -y

rails と typo の最新版がgemパッケージがインストールされる。 gem が複数のバージョンを同時に使えるので、ほとんど typo 4 運用中でも実行できる。。。本当かぁ!すげ。

で、typo 4 から typo 5 への更新

$ typo_dir=~/typo                  # 運用中のディレクトリ
$ typo stop ${typo_dir}
$ typo install ${typo_dir}
...
暫く、ファイルのコピーやら削除やら、データベースの更新やらのメッセージ
...
Starting Typo on port XXXX
...

で最後に、管理画面にログインすると、再度データベースを更新する趣旨のボタンがでる。なので、こいつを押して、完了。

操作性は殆ど変わらない。ただ、typo 4 では sitealizer というアクセス解析ツールが含まれていたが、それが無くなってしまった。。。

ついでなので画像ファイルを Flickr へ移行してみたら、Lightbox JS と絡めて簡単使える拡張タグがあり結構 typo のサポートが良い。

他のブログシステムか、他の企業が提供してるブログに乗り換えようかと思ったが、もうちょっと typo を使い続けてみようかなぁ。

2007年2月23日

アプリが利用している Rails を最新版にする

あるアプリを書いてる間に使っている Railsのバージョンが上がってしまった。

この場合は、config/environment.rb 内の RAILS_GEM_VERSION変数を使いたいバージョンにしてから、

rake rails:update

だそうだ(参照HowtoUpgrade)。 後は、テストを走らせるだけ、、、ふむ。

2007年2月20日

RWiki 2.1.1 をインストールしてみる

ときどき Ruby のレファレンスマニュアルを配布・公開されてるサイトが落ちることがあり、ちょっと不便を噛み締めていた。

ただ最新のRD形式のソースが tarball で配布されているので、こいつと RWiki を何とかすれば、ローカルでビューすることが出来るのでちょっとやってみた。

RWiki 2.1.1 の立ち上げは相当めんどくさい。

dRubyベースのアプリサーバ rwiki.rb がバックエンドに必要らしいのに気付くまで小一時間かかった。それ以前に、公式サイトの情報が異様に発散していてサイトの袋小路に小二時間ほど迷ってしまった。

次に、RWikiが Ruby-GetText-Package を利用しているのだが、debian etch に含まれる 1.7.0 と gem から取れる 1.9.0 とは相性が悪いのか全く動かない。これにも気付くのに、小三時間かかった。

で、手順は以下の通り。

依存パッケージをインストール

debian etch で不足分のパッケージをインストール

apt-get install rdtool

もっと必要かも、、

rwiki の取得

RAAのrwiki から最新版のリンクを辿ってソースを取得し、 展開する。

tar xfz rwiki-2.1.1.tar.gz -C $(rwiki-src-parent-dir)

ドキュメント読む

rd/install.rd を熟読する、、、小四時間。

rwiki をインストール

適当なディレクトリを指定してインストールスクリプトを走らせる。

 install.rb -d $(rwiki-lib-top)

でも、rwiki.rb 等々はまだ展開したソースにあるので、展開したソース群は削除しない、、、何故なのかは聞かない約束なのかなぁ。

rwiki の設定をして立ち上げる

cd $(rwiki-src)/site
vi rw-config.rb    # 取り敢えず設定をする
                   # $(rwiki-lib-top) がロードパスに含まれるように細工する。
ruby -Ke -dv rwiki.rb

で、Exceptionのメッセージ がだらだら出力されて、静かになったら良いらしい。

もしRuby-GetText-Package をインストールしているならば、$(rwiki-lib-top)/rwiki/gettext.rb をちょっと細工する

インタフェースを設置

取り敢えずCGI動くところに、inteface/rw-cgi.rb をリネームしたりして置けばよい。面倒ならば、inteface/rw-webrick.rb を起動して、http://hostname:1818 をアクセスすれば良い。

ruby interface/rw-webrick.rb

こんな感じ、でもCGIの方が良いかも。

マニュアルを設置

tar xfz man-rd-ja.tar.gz
cp man-rd-ja/*.rd $(rwiki-src-top)/rd

で、rwiki.rb を再起動すると、キャッシュ作ってるとかのメッセージがだらだら出力されて、静かになったら良いらしい。 ただし、どのページから読めるかは不明なので、小五時間くらい、クリック猿になるとトップページが分かるので、大事にブックマークする。

想像を絶する難物だなぁ。みんな使っているのかぁ

2007年2月19日

P_BLOG から Typo への移行

最近 Rails を使った Blog システムを自作しようと試みていたのだが、車輪の再発明をしてる気がしてならないので、同様なシステムが無いか調べてみた。

typo がよさげである。

編集途中のプレビューが横にリアルタイムに表示されて、記事の見栄えを確認するために思考を中断しなくても済むのがグッとである。それ以外はあまり癖のないシステムである。

こいつを使うための問題は、P_BLOGで書きためた記事をTypoに移行させる方法である。

コピペとかは勘弁して欲しいので、頭を絞ってみた。

Typo のトップページに、Desktop Clients というページへのリンクがある。こいつを眺めると、どうも最近のBlog事情は、Webインタフェースだけなく、ネーティブな投稿専用アプリがあるらしい。その中心にあるのが、XMLRPC上に定義された BloggerAPI / metaWeblog / MovableTypeAPI / Atom API とかいうプロトコールらしい。

専用アプリは高機能のものもあり、markdown/textileとかのシンプルなフォーマットを、平易に作成出来たりする、、、昔のNifty サーブとかではやった高機能クライアントみたいなものかぁ、、、歴史は巡るのか

すっかり、波に乗り遅れているなぁ〜〜。

プロトコールさえ実装されれば、特定のプログラム言語に依らずに操作できるので、Ruby でちょっとしたスクリプトを書いて、XMLRPC経由での移行をチャレンジしてみた。

  1. P_BLOGXMLRPCモジュールをインストールする。
  2. Typo 4.0.3 をインストールする。
  3. Typo 4.0.3 に含まれている actionpack ではちょっとこけるので修正する(current では修正されている)
  4. 移行プログラムtransition_from_p_blog.rbを走らせる。

これでおしまい、、、XMLRPCを話せると良いことあるなぁ!

2007年2月14日

単一テーブル継承

あるテーブルで、複数の用途で使うがカラムがほとんど同じモデルがたまにある。 整数型のカラム名 namespace で、用途分けをしたりする。 ActiveRecord には、こんな用途のために単一テーブル継承が使われるらしい。 特定モデルのテーブル定義にカラム名に `type`を含め。そいつから派生したモデルの名前が、このカラムに勝手に入るようになる。

使ってみたが、お気楽で使えたええなぁ。

belongs_to の引数 :polymorphic も見ると、方向性がそっちなのかと思いつつ。。。ええかなぁ

2007年2月9日

ActiveRecord は効率が良いのか?

ActiveRecord を使い始めて、山にぶち当たってしまった。

こいつには特定のカラムの値を更新する update_attribute とかいうメソッドがある。こいつが作るSQL文が、全部のカラムを更新するようにダラダラ長くなる。それ以外でも、関連とか使うと特定のカラムのみ変更する場面があるのだが、ここでも全部のカラムを更新するようにダラダラ長いSQL文を作ってくれる。

例えば、掲示板の発言と非公開フラグを一つのテーブルに作り、管理者が発言を制御しようとロジックを組んだとしよう。管理者が、公開・非公開を変更するたびに、非公開フラグと発言内容が更新されるSQL文が発行される訳だ。。。重い。

とにかく、こいつが作る update 文をちょーーーーダサイ。

こいつはテーブルの設計に織り込まないと行けないのか、、、あふぅ。

2007年2月6日

Rails を覚えると Wiki が作りたくなるらしい

Rails が覚えると習作として、Wiki や Blog のアプリを作りたがるらしい。が、できあがったアプリで運用しているところを探すと結構少ないことに気付く。

何でだろう?

車輪の再発明になるからやらないとか、セキュリティを気にかけないと行かないとか、サーバ用意するのが面倒とか、、、。

既存のサービスを使った方が、内容に注力できるからなんだろうなぁ〜。

2006年11月24日

Rails を始める 1日目

Ruby on Rails 入門 を購入して、ここ二日ばかり読みふける。紆余曲折をして辿り着いたWebアプリの作成の定石の固まりが Rails 何だろう。いろんな類型を思い出させてくれる。

ここ2〜3年ばかりWebアプリを書いていないので、リハビリを兼ねて Pukiwiki を rails で書き直してみよう。まぁ、単に wiki をどうにかしてみたかったりする。

RadRailsを使ってモデルをごにょごにょ作って、ファイルベースのデータをARを使って、MySQLのデータベースに突っ込んで、scaffoldを使って出来合いのUIを作ってみた。

大分Rubyの文法や流儀を忘れて、手間取ったが、動かせるものが短時間で作れるのは凄いなぁ。

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...