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

2013-11-26

Rails 4 で concens を使ってみた

Rails 4 でコーディング中、定数はどこに置くものか周りに聞いてみた。そしたら、「クラスに関係の深い定数は concens に入れてしまう」という応えをもらったので、concerns を使ってみる。

concerns ディレクトリーは Rails 4 から導入されたディレクトリーで、app/models/concerns や app/controllers/concerns に置かれる。クラスに共通するコードを置くのが目的みたい。

今回はクラス Foo で使う、文字列定数 HOGEHOGE を定義してみる。

クラス Foo

app/models/foo.rb の中身:

class Foo
  include ActiveModel::Model
  include Hogehoge

  attr_accessor :text

  def initialize(params = nil)
    self.text ||= "\n" + HOGEHOGE;
  end
end

モジュール Hogehoge

app/models/concerns/hogehoge.rb の中身:

module Hogehoge
  extend ActiveSupport::Concern

  HOGEHOGE = <<-EOS
ほげほげの内容
複数行でも OK
EOS
end

あとがき

定数をモジュールに書き出して見通しが良くなった。concerns ディレクトリーを勝手に見に行ってくれるのも楽。こんな書き方もあるのかと勉強になった。

2013-03-21

Rails の Exception Notification で例外を Gmail 通知させてみた

Ruby on Rails のアプリで例外が発生したらメールでお知らせを受け取りたい。exception_notification という gem を使うと可能になるというので、設定してみた。

exception_notification の設定

Gem install

Gemfile に次の一行を追記して、bundle install を実行する。

gem 'exception_notification', :require => 'exception_notifier'

作者の Sebastian Martinez 氏から、最新版の exception_notification なら「:require => 'exception_notifier'」の記述はいらないよ、とコメントをもらった [Thank you, Sebastian]。

gem 'exception_notification'

メールを送付するための Action Mailer の gem も自動でインストールされるので助かる。

設定

config/environments/development.rb にメール送付の設定を書く。上手く行ったら、config/environments/production.rb にコピー。

  # Exception Notification
  config.middleware.use ExceptionNotifier,
    :email_prefix => "[プロジェクト名] ",
    :sender_address => %{"notifier" <notifier@example.com>},
    :exception_recipients => %w{exceptions@example.com}

エラーが出たら、メールを送りたい。でも、とりあえずメール設定は後回しにしたいので、ターミナルに出力させてみる。次の一行を config/environments/development.rb に追記。

  config.action_mailer.delivery_method = :test
例外のコード

手元に例外を出すコードがなかったので、ちょっと強引に行く。Ruby on Rails Guides のブログ・アプリで新規作成ページに行ったら例外を出す、本当に強引なコード。

app/controllers/posts_controller.rbdef new に次の様に例外発生コードを挿入。

  def new
    raise "exception sample"
...
例外を出す

さて、ブラウザーを起動して「新規作成」ページへ。例外が発生するはず。xterm にはこんな文章が出てくれば OK。

Sent mail to exceptions@example.com (7ms)
Date: Thu, 21 Mar 2013 11:59:53 +0900
From: notifier <notifier@example.com>
To: exceptions@example.com
Message-ID: <514a77a971208_16764fb37dc647a@localhost.mail>
Subject: [Try-RoR] posts#new (RuntimeError) "exception sample"
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

A RuntimeError occurred in posts#new:

  exception sample
  app/controllers/posts_controller.rb:31:in `new'

...

Gmail 設定

Action Mailer の設定を config/environments/development.rb もしくは config/environments/production.rb に書く。先に書いた terminal に例外情報を出力するコードはコメント・アウトする。

  # Action Mailer for Gmail
  #  config.action_mailer.delivery_method = :test
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => 'smtp.gmail.com',
    :port => 587,
    :domain => 'gmail.com',
    :user_name => 'your_account@gmail.com',
    :password => 'your_password',
    :enable_starttls_auto => true
  }

これで例外を発生させて Gmail からメールが届けば成功。

わざと例外を発生させてる人は、そのコードを削除してお終い。

あとがき

Rails2 時代と比べて、SSL 関連の設定が楽になってて幸せだった。Action Mailer の SMTP を Gmail ではなく Yahoo! Mail (yahoo.com の方) を使いたかったけど、上手くいかなかった。同じ様な設定で行けるはずなんだけど...

そうそう、自分のサーバーからメールを送る時は postfix あたりを使うと良いらしい。暇が出来たら試してみたいね。

$ sudo apt-get install postfix
config.action_mailer.delivery_method = :sendmail

ref

2013-03-19

Rails 3 に paperclip で画像をアップロードした

paperclip という Gem を使うと、Ruby on Rails に手軽に画像をアップロードできる仕組みが作れる。README を読むと一発で動きそうだったけど、世の中、上手くいかないもの。ハマったので、最小限のコードだけ書いておく。

なお、paperclip はデフォールトでファイル・ストレージ、Fog Storage、S3 Storage(aws-sdk 経由) に対応しており、追加の gem のインストールで Azure Storege と Dropbox にも対応する。

利用バージョンは以下の通り:

  • Ruby 2.0.0-p0
  • Rails 3.2.11
  • paperclip 3.4.1

準備

convert への Path 指定

paperclip はバックエンドで ImageMagick を使う。config/environments/development.rb に次の行を追記する。

Paperclip.options[:command_path] = "/usr/bin/"

Path が分からない時は which convert を入力。convert を削った Path が入力すべき文字列になる。

paperclip のインストール

Gemfile に次の一行を追記。

gem "paperclip", "~> 3.0"

bundle install する。

$ bundle install

ソースコードの編集

今、簡単なブログ・システムをサンプルにしている (ref. Ruby on Rails Guides: Getting Started with Rails)。各記事に一つだけ画像を表示する様に変更を加えたい。

Model の変更

app/models/post.rb を変更

class Post < ActiveRecord::Base
  attr_accessible :content, :name, :title, :tags_attributes, :image
...
  has_attached_file :image,
                    :styles => { :medium => "300x300", :thumb => "100x100" },
                    :default_url => "/images/:style/missing.png"
...

各 Post に画像を付ける様にした。

DB migration

画像情報を保存するために DB を変更する。

$ rails generate paperclip post image
$ rake db:migrate

post に image を追加。

Controller の変更

は特になし。@post を作る作業があるけれど、それは Ruby on Rails Guide の中でやっちゃってるからね。

View の変更 — 画像の追加

画像の追加用のコードをビューに追加する。Ruby on Rails Guide の例なら、views/posts/_form.html.erb を開く。<%= form_for のコードを次の様に変更。

<%= form_for @post, :html => { :multipart => true } do |f| %>

適当な位置に次のコードを挿入。

<%= f.file_field :image %>

これで、submit ボタンが押されると、選択した画像がアップされる。

View の変更 — 画像の表示

今回は views/posts/show.html.erb をいじった。次の一行を追加。

<%= image_tag @post.image.url(:medium) %>

見ての通り画像サイズは medium と style で指定したサイズになっている。サムネイル・サイズが欲しければ引数を :thumb に、オリジナル・サイズがよければオプション引数を取らなければいい。

追記

今回はコーディングしなかったけど、ファイルをデタッチするには次のコードを書く。

@post.image = nil
@post.save

記事の破棄用コードの中にでも仕込めばいいかな?

あとがき

一度やってしまえば簡単だけど、初めてだとどうしても勘所が分からないや。そういうわけで、最低限、動くコードだけでもメモとして残しておかないとね。

2013-03-15

Ruby on Rails 3 のソースコードを入手して実行

過去に作った Ruby on Rails のプログラム (Ruby on Rails Guides をやっただけ) を他の環境で動かそうとしたら、色々忘れててハマった。

準備

  • MySQL はインストール済
  • Ruby 2.0.0 がインストール済
ソースコードの入手

Github から Ruby on Rails のソースコードを入手:

$ git clone git@github.com:ataka/try-ror.git
Gem のローカル・インストール

テスト用なので、システムの Gem を汚したくない。ローカル・ディレクトリー ./vendor/bundle にインストール

mysql2 gem のインストールに失敗したので、予め mysqlclient-dev をインストール。

$ apt-get install mysqlclient-dev

改めて bundle install

$ bundle --path vendor/bundle install

Gem ファイルが入る。

データベース起動

MySQL のデータベースを作る。

rake コマンドはローカルに入れたので、bundle exec コマンドを用いる:

$ bundle exec rake db:create
$ bundle exec rake db:migrate

ウェブサーバーで確認

Rails についてきている簡易ウェブサーバーを実行。

$ bundle exec rails server

上手く動いているかな? http://0.0.0.0:3000 にウェブ・ブラウザーからアクセス。

ちゃんと動いてた。

あとがき

rake db:migrate はよく使うので覚えていたけれど、rake db:create は見事に忘れてた。おかげで Unknown database とエラーが出て困った。db:migrate の説明を何度読み返しても、解決しないし。慣れてない人間のハマり所?

あと、Ruby on Rails の簡易ウェブ・サーバー。Rails 2 の頃は ruby script/server で起動していたのね。ウェブを検索しても、Rails 2 時代の説明が多かった。Rails 3 になると rails server でサーバーが起動する。これもハマったなぁ。

とまあ、大きく 2 つハマった。同じ誤ちを冒さないためにもメモ。

ref.

bundle exec については過去記事も参照されたし。

2013-03-08

Nginx + Passenger + Redmine 2+

先のエントリーで旧い Redmine を開発版の Redmine に置き換えようとしたのだけど、実は Apache 回りで上手くいっていなかった。何が悪かったかと言うと、新 Redmine はローカルに入れた gems で動き、旧 Redmine はシステムの gems で動いていたこと。

Apache はシステム側の Passenger で動かしていたので、旧 Redmine は動くけど新 Redmine は動かない。何故なら、新 Redmine はシステムの Passenger を使わないから。エイヤッとシステム全体の gems を統一しちゃえば問題ないんだけど、安全策が事態をややこしくした。

というわけで、clmemo@aka: Redmine 2 系へのアップグレード方法 の続きから。

Nginx for Passenger のインストール

Apache で共存させるのは大変なので、Nginx を使うことにした (see also clmemo@aka: Nginx をソースからコンパイルしてインストールしてみた)。これからの作業で Nginx のインストールを行なうので、過去記事の Nginx のインストール部分は飛ばして良し!!

/var/redmine-dev に移動して、nginx 用の module を組む。Apache はモジュールを後から追加できるけど、nginx はコンパイル時に module を組み込む。なので、module 用コマンドがそのまま nginx のコンパイル・コマンドになっている。

$ cd /var/redmine-dev
$ echo 'gem "passenger"' >> Gemfile.local
$ bundle install
$ sudo bundle exec passenger-install-nginx-module
(中略)
Nginx doesn't support loadable modules such as some other web servers do,
so in order to install Nginx with Passenger support, it must be recompiled.

Do you want this installer to download, compile and install Nginx for you?

 1. Yes: download, compile and install Nginx for me. (recommended)
    The easiest way to get started. A stock Nginx 1.2.6 with Passenger
    support, but with no other additional third party modules, will be
    installed for you to a directory of your choice.

 2. No: I want to customize my Nginx installation. (for advanced users)
    Choose this if you want to compile Nginx with more third party modules
    besides Passenger, or if you need to pass additional options to Nginx's
    'configure' script. This installer will  1) ask you for the location of
    the Nginx source code,  2) run the 'configure' script according to your
    instructions, and  3) run 'make install'.

Whichever you choose, if you already have an existing Nginx configuration file,
then it will be preserved.

Enter your choice (1 or 2) or press Ctrl-C to abort:

(1) 自動インストールか、(2) カスタム・インストールか聞かれる。ここはあえてカスタムの 2 を選ぶ。

  • Where is your Nginx source code located?
    Please specify the directory:
    ~/src/nginx-1.3.14/
  • Where do you want to install Nginx to?
    Please specify a prefix directory [/opt/nginx]:
    /etc/nginx
  • Extra Nginx configure options
    (中略)
    Extra arguments to pass to configure script:
    --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --with-mail --with-mail_ssl_module --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl

最後に ENTER を押してコンパイル & インストール開始。

設定ファイルへの追記

2 つのファイルを編集。まず、/etc/nginx/nginx.confhttp セクションに次の 2 行を追記:

  passenger_root /var/redmine-dev/vendor/bundle/ruby/1.8/gems/passenger-3.0.19;
  passenger_ruby /usr/bin/ruby1.8;

Ruby や Passenger のバージョンは環境によって違う。詳しくは、passenger-install-nginx-module のヘルプ・テキストを参照のこと。

次に Redmine を動かす site-availables/yourserver.com を編集。

server { ...
  listen 8080
  root /var/redmine-dev/public;
  passenger_enabled on;
  ...
}

これで nginx を再起動 (/etc/init.d/nginx については過去記事参照)。

上手く http://yourserver.com/ で Redmine が見えたかな?

あとがき

Redmine をアップグレードしようとしたら、二日がかりになってしまった。アップグレードは細めに行ないたいもの。ちょっと泣きそうになったよ。

最後に参考にしたサイトを一つ紹介して終わる。このページはまとまってるとは言いがたいけど、エラーに遭遇して対処して、またエラーに遭遇する様が物語の様で (特に同じ道を歩く者には) 笑いを誘う。もちろん、役にも立つよ。

2013-03-07

Redmine 2 系へのアップグレード方法

古い Redmine (< 2.0) を最新の Redmine にアップグレードするので、メモ。今回、ぼくは開発版をインストールした。2013-03-07 現在、Redmine の最新版は 2.2.3 (2013-02-12 リリース)。開発版をインストールする場合でも、問題はないはず。

参考ドキュメント

開発版は公式の git mirror から頂く。

アップグレード手順は以下のページを参照した。

必須条件

アップグレード必須条件を書いておく (PostgreSQL や SQLite3 を使ってる人は、「Redmineのインストール | Redmine.JP」を参照のこと)。

  • Ruby 1.8.7, 1.9.2, 1.9.3
  • RubyGems <= 1.8
  • Rails 3.2.12
  • MySQL 5.0 以上

Ruby 2.0 には対応していない。各アプリケーションのバージョン・チェック方法は以下の通り:

$ ruby --version
$ gem --version
$ gem list | grep rails
$ mysql --version

必要に応じてアップデートを行なわれたし。

データのバックアップ

以降、旧 Redmine は /var/redmine/ 以下にインストールしたとして話を進める。バックアップ先は ~/redmine-bakups。

$ mkdir ~/redmine-backups
files ディレクトリーのバックアップ

Redmine にアップロードしたファイルは、全て files ディレクトリー以下に保存されている。

$ rsync -a /var/redmine/files/ ~/redmine-backups/files
MySQL DB のバックアップ

mysqldump コマンドを使う。

$ mkdir -p ~/redmine-backups/db
$ /usr/bin/mysqldump -u USER -pPASSWORD REDMINE_DB | gzip > ~/redmine-backups/db/redmine_`date +%y_%m_%d`.gz

REDMINE_DB の名前は /var/redmine/config/database.yml の中を見れば確認できる。

アップグレード作業

Redmine の入手

安定版を使う人はDownloadページから最新版を入手して解凍されたし。ぼくは開発版を git から取って来る。

$ cd /var
$ git clone git://github.com/redmine/redmine.git redmine-dev

redmine-dev というディレクトリーに clone。既存の redmine ディレクトリー (今、動いているバージョン) を上書きしちゃわないように。

Redmine の設定
  1. 旧い config/dababase.yml をコピー
  2. 旧い config/configuration.yml をコピー (ver. 1.2.0 より前からアップグレードする時は config/configuration.yml.example を config/configuration.yml にコピーした上で旧 config/email.yml の内容をコピーする)
  3. files ディレクトリー以下をバックアップから復帰
  4. プラグインのコピー (これは後回しの方が安全かな?)
  5. rake generate_secret_token で config/initializers/secret_token.rb を作る
  6. テーマのコピー (これも後回しで良いかな?)

実作業は次の通り:

$ cd /var/redmine-dev/config
$ cp -p ../../redmine/config/database.yml ./
$ cp -p configuration.yml.example configuration.yml
$ cat ../../redmine/config/email.yml >> configuration.yml
$ cd ..
$ rsync -a ~/redmine-backups/files/* files
$ rake generate_secrete_token
$ ls config/initializers/secret_token.rb
config/initializers/secret_token.rb

トラブル・トラブル・トラブル

実は rake generate_secrete_toke する所でエラーになった。

 rake aborted!
no such file to load -- bundler/setup

bundler が必要らしいけれど、インストールされていない。インストールしようとしたら、gem のバージョンが古い (bundler は gem 1.3.6 以上) という。そんなわけで gem をアップデートして bundler をインストール。

$ sudo gem1.8 install rubygems-update -v 1.3.6
$ sudo update-rubygems
$ sudo gem1.8 install bundler

旧い Redmine が稼動中なので、gem をシステム・インストールするのは怖い。もしかすると、動かなくなるかも。bundler は --path オプションでローカルにファイルをインストールできる。推奨とされる ./vendor/bundle 以下にインストールすることにした:

$ cd /var/redmine-dev
$ bundle install --path vendor/bundle

しかし、ImageMagick 系でエラー。

checking for Magick-config... no
Can't install RMagick 2.13.2. Can't find Magick-config in (後略)

Magick-config がないという。ImageMagick 系のパッケージをインストール:

$ sudo apt-get install graphicsmagick-libmagick-dev-compat 

再度、bundle コマンド実行。

checking for wand/MagickWand.h... no

お次は wand/MagickWand.h がないという。libmagickwand-dev をインストール。

$ sudo apt-get install libmagickwand-dev

さあ、どうだ!!

$ bundle install --path vendor/bundle
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.0.3)
Using i18n (0.6.4)
Using multi_json (1.6.1)
Using activesupport (3.2.12)
Using builder (3.0.0)
Using activemodel (3.2.12)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.5)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.1)
Using tilt (1.3.4)
Using sprockets (2.2.2)
Using actionpack (3.2.12)
Using mime-types (1.21)
Using polyglot (0.3.3)
Using treetop (1.4.12)
Using mail (2.4.4)
Using actionmailer (3.2.12)
Using arel (3.0.2)
Using tzinfo (0.3.36)
Using activerecord (3.2.12)
Using activeresource (3.2.12)
Using metaclass (0.0.1)
Using mocha (0.10.5)
Using bourne (1.1.2)
Using bundler (1.3.1)
Using nokogiri (1.5.6)
Using ffi (1.4.0)
Using childprocess (0.3.9)
Using rubyzip (0.9.9)
Using websocket (1.0.7)
Using selenium-webdriver (2.31.0)
Using xpath (1.0.0)
Using capybara (2.0.2)
Using coderay (1.0.9)
Using fastercsv (1.5.5)
Using rack-ssl (1.3.3)
Using json (1.7.7)
Using rdoc (3.12.2)
Using thor (0.17.0)
Using railties (3.2.12)
Using jquery-rails (2.0.3)
Using mysql (2.8.1)
Using net-ldap (0.3.1)
Using ruby-openid (2.1.8)
Using rack-openid (1.3.1)
Using rails (3.2.12)
Installing rmagick (2.13.2)
Installing shoulda-context (1.0.2)
Installing shoulda-matchers (1.4.2)
Installing shoulda (3.3.2)
Installing yard (0.8.5.2)
Your bundle is complete! It was installed into ./vendor/bundle

成功!!

rake をこのまま実行すると、システムの gems を使ってしまう。bundle exec を使うと、--path で指定・インストールした gems を使ってくれる。なのでこれからの作業は bundle exec 付きで実行。

$ bundle exec rake generate_secret_token
$ ls config/initializers/secret_token.rb
config/initializers/secret_token.rb

secret_token.rb が出来ていることを確認して一安心。

MySQL の設定

MySQL の初期設定を行なう。

ここからは、ローカルの gems を使うので bundle exec を付ける。システム・インストールした gems を使う人は、適宜 bundle exec を消して作業されたい。

$ bundle exec rake db:migrate RAILS_ENV=production
クリーンアップ

キャッシュとセッション・ファイルをクリアする。

$ bundle exec rake tmp:cache:clear
$ bundle exec rake tmp:sessions:clear
パーミッションの変更

Apache などのウェブ・サーバーがディレクトリーにアクセスできるようにパーミッションを変更。

$ sudo chown -R redmine:redmine files log tmp
$ sudo chmod -R 755 files log tmp
確認

以上で Redmine 側の設定はおしまい。心配症な方は WEBrick サーバーを起動してチェック。

$ ruby script/rails server webrick -e production

ぼくはやらなかったけどね。

おしまい

最後にアプリケーション・サーバー (Apache とか) を再起動して実行。

DB を壊しちゃった人は、バックアップから復帰して再挑戦?

$ mysql -u USER -pPASSWORD REDMINE_DB < ~/redmine-backups/db/redmine_YYYY_MM_DD.gz

古い Redmine からアップグレードしようとすると、rake db:migrate RAILS_ENV=production でエラーが出るかもしれない。その場合は Redmine 2.2.2 をダウンロードして上の記事を参考に rake db:migrate ... を実行。データベースを新しくしてから、もう一度最新の Redmine で rake db:migrate ... をかける。

2013-02-10

Ruby on Rails の準備メモ その2

の続き。mysql の作成まで。

blog プロジェクト

Ruby on Rails を始める。チュートリアルとしては、Ruby on Rails Guides: Getting Started with Rails がオススメ。チュートリアルの通りに進んでみる。

$ rails new blog

blog ディレクトリーが出来て、その中に Ruby on Rails のソースコード一式が入っている。以下、blog ディレクトリーを (blog プロジェクトの) トップ・ディレクトリーとして作業を進める。

MySQL を使う

デフォールトのデータベースは SQLite3 になっている。MySQL を使いたいので、変更したい。まずは、config/database.yml を覗いて、データベースが SQLite3 なことを確認。

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

トップ・ディレクトリーで以下のコマンドを実行。

$ rails new blog --database=mysql

rails new blog コマンドを二度実行してしまうことになるけど、OK らしい。

config/database.yml の中身を確認。

development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

MySQL の設定

ぼくは MySQL を Synaptic パッケージ・マネージャーからインストールした。この時 root のパスワードを入力するよううながされたので、自分のログイン・パスワードを入力した。ただ、これがいけなかった。

上の設定ファイルを見ると分かる様に、username: root の password は空になっている。これは、mysql の root ユーザー (Linux の root ではない) のパスワードが空であることを指している。適当なユーザーを作ってパスワードをファイルに書くのが良いのか、root ユーザーのパスワードを空にするのか、何が良いのか分からない。

とりあえず、後者で対処した。

$ sudo mysql -p
Enter password: パスワード入力
mysql> set password for root@localhost=password('');
mysql> exit

データベースの作成

MySQL では development, test, production という三つのデータベースをセットで作成する。昔は mysql コマンドでデータベースを作っていたらしいが、今はコマンド一つで作成可能。

$ rake db:create

Install gem

データベースを作るタイミングだったかな? 次のエラーが出てしまう。

Could not find a JavaScript runtime.

See https://github.com/sstephenson/execjs for a list of available runtimes.

次のコマンドを試したが、エラーは直らない。

$ sudo gem install execjs
$ sudo gem install therubyracer

まず ./Gemfile に次の行を追加。

gem 'execjs'
gem 'therubyracer'

そして、次のコマンドを実行するとエラーが出なくなった。

$ bundle install

あとがき

Ruby on Rails の入り口にようやく立った。初めてだと、環境設定も一苦労。昔、Rails の勉強をしようと買った本を読み返したんだけど、Rails 1.0 向けの本だった。今の Rails はバージョン 3。色々と変わってて、目が回る。勉強。勉強。

2013-02-09

Ruby on Rails の準備メモ

Ubuntu Linux 10.04 をまだ使い続けている。

最近、Ruby on Rails に興味を持って遊んでみようと思ったところ、Ubuntu 10.04 の Ruby は古いという。というわけで、Rails を始めるに当たって、やったことのメモ。インストールしたのは、libYAML と Ruby と RubyGems。

libYaml のインストール

RubyGems をインストールしようとしたら、Ruby が libyaml に対応していない... と警告が出た。簡易インストール。

$ sudo apt-get install libyaml-dev

Ruby-1.9 のインストール

ソースコードを入手して、コンパイル。

$ ./configure
$ make
$ sudo make install

RubyGems-1.8 のインストール

ソースコードを入手して、setup.rb を実行。

$ sudo ruby setup.rb

Ruby on Rails のインストール

インストール前に gem (Ruby のパッケージ・マネージャー) で最新版にアップデート。

$ sudo gem update --system
Latest version currently installed. Aborting.

その後、Ruby on Rails をインストール。

$ sudo gem install rails

とりあえず、今日はここまで!!