Install DTrace for Linux その1

概要

102回のKernel読書会で見て面白そうと思ったのでLinux環境にて準備。
ちなみに失敗しています。。とりあえずメモ。

インストール

環境はCentOS系。
ダウンロードしたアーカイブを解凍し、READMEを確認すると下記の記述。

Installation
============

Very simple:

$ make all
$ make install
$ make load (need to be root or have sudo access)

一瞬で終わりそうだが、このファイルの末尾に下記の記述有り。

For AS4/Centos
==============
yum install elfutils-libelf-devel

これをインストールしておかないとmakeのしょっぱなでコケる。
さて、インストール後に $ make clean した後で Very simple な手順を実行するのであるが、

(中略)
symlink ../../driver/intr_x86-64.S build-2.6.18.8-linode19/driver/intr_x86-64.S
Executing: /hoge/dtrace-20091010/tools/make-me
make -C /usr/src/linux/ M=/hoge/dtrace-20091010/build-2.6.18.8-linode19/driver
make: *** /usr/src/linux/: No such file or directory. Stop.
make[1]: *** [all0] Error 2
tools/bug.sh
======================
== Sorry - but dtrace failed to compile on your system.
== Please forward the following file to:
==
== file: /tmp/dtrace-bug.21540
== mail: dtrace@crisp.demon.co.uk
==
== and the information provided will be used to help
== enhance the tool and fix the underlying issue.
==
== Latest news and blog updates on dtrace available here. Please
== check for latest problem reports.
==
== http://www.crisp.demon.co.uk/blog/
==
== Latest downloads available from here:
==
== ftp://crisp.dynalias.com/pub/release/website/dtrace
== ======================
(generating a make run - this may take a few moments...)
make: *** [all] Error 1

と言われる。
CentOSの場合/usr/src/linux/ は /usr/src/readhat/ になっているためシンボリック貼ってみたりするが、

Executing: /hoge/dtrace-20091010/tools/make-me
make -C /usr/src/linux/ M=/hoge/dtrace-20091010/build-2.6.18.8-linode19/driver
make[2]: *** No targets specified and no makefile found. Stop.
make[1]: *** [all0] Error 2

# ここまで書いて ./configure も通らなければ make test も通らないことに気づく。oops。

どーにもハマりそうなので、Linux向けはまたの機会にする...
ちなみにMacBook上では、威力のほどは確認できました。こういうツールがデフォルトであるかどうかで、後々違ってくるよなぁ。

e-mobileの通信を無線LAN経由でシェアする

状況

帰省時期になって実家に帰るものの、実家には無線LANはおろかインターネット回線が引かれていない。
手持ちのモバイル機器(iPhoneなど)は普段はWiFi経由で使用しており、ここでパケット代を増やしたくない。
e-mobileが使えるノートPCはあるので、こいつを経由して通信を行いたい。

対策

1. adhocな無線環境を作って、iPhoneやらMacやらから接続する
2. e-mobileの接続を共有する

具体的には下記の手順が詳しい。(わざわざブログ書いておいて手順丸投げかと言われるとアレだが...)

イー・モバイルの通信環境をみんなで共有する
http://bizmakoto.jp/bizid/articles/0805/28/news069.html

記事の通り、出先で困った時でも使える。

今回はPCカードタイプのe-mobileを使っていたため、Windowsノートが無線ルータっぽく振る舞ってくれた。

Redmine 0.8.5 on Linode(CentOS5.3)

環境構築から導入完了まで一気に.

とりあえず動かすというパラメータなので、パスその他は適宜変更すること.
(redmine.jp でPassenger推奨なのでPassenger導入は実施したが、DBは取り急ぎsqlite3とした.)

開発ツール

# yum groupinstall "Development Tools"
=> 後々必要になりそうなものが多い(svnなど)のでとりあえず入れる. 必要なのだけ入れるのが定石だが.

Ruby

# cd /usr/local/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
# tar zxf ruby-1.8.7-p174.tar.gz
# cd ruby-1.8.7-p174
# ./configure --prefix=/usr/local
# make && make install

# which ruby
/usr/local/bin/ruby
# ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

RubyGems

# wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
# tar zxf rubygems-1.3.5.tgz
# cd rubygems-1.3.5
# ruby setup.rb

# which gem
/usr/local/bin/gem
# gem -v
1.3.5

Ruby on Rails

# cd /usr/local/src/
# wget http://www.zlib.net/zlib-1.2.3.tar.bz2
=>zlib がないとinstall rails でエラーになる.

$ scp ./zlib-1.2.3.tar.bz2 username@74.xxx.xxx.xxx:
=> ホスト名解決できないとか言われた場合は、ローカルで落としてscpでもすると良い.

# tar xvf zlib-1.2.3.tar.bz2
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/ -s
# make && make install

# cd /usr/local/src/ruby-1.8.7-p174/ext/zlib/
# ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
# make && make install

# cd
# gem install rails -v=2.2.2
=> 3分くらい?

# rails -v
Rails 2.2.2

# mkdir -p rails
=> rails用のディレクトリを作成しておく. (いつでも変更可)

sqlite3

# yum -y install sqlite sqlite-devel
=> いれないと、さくらの時と同じエラーになる.

# gem install sqlite3-ruby

Redmine

# rpm -qa |grep openssl
openssl-0.9.8e-7.el5
# yum -y install openssl-devel-0.9.8e-7.el5
....
Complete!
=> zlib同様、opensslが無いと後でエラーになる.

# cd /usr/local/src/ruby-1.8.7-p174/ext/openssl/
# ruby extconf.rb
# make && make install

# cd $HOME/rails
=> /path/to/rails/
# mkdir redmine
# cd redmine

via : http://rubyforge.org/scm/?group_id=1850
# svn checkout svn://rubyforge.org/var/svn/redmine/branches/0.8-stable .
# cd tmp
# wget http://rubyforge.org/frs/download.php/63583/redmine-0.8.5.tar.gz
# tar zxf redmine-0.8.5.tar.gz
# mv redmine-0.8.5/vendor/rails ../vendor/
=> tar.gz の vendor/rails を, svn から checkout したプロジェクトに配置する.
=> 今回は同一バージョンのため、tar.gz 版を使っても良さそう.

# rm -rf redmine-0.8.5*
# cd $HOME/rails/redmine/
=> /path/to/rails/redmine/

# chmod -R o+w tmp log
=> Apache実行ユーザから書き込むため.

# cd config
# cp database.yml.example database.yml
# vi database.yml
=> DB設定をsqlite3に変更する.

....
+# production:
+#   adapter: mysql
+#   database: redmine
+#   host: localhost
+#   username: root
+#   password:
+#   encoding: utf8

+production:
+  adapter: sqlite3
+  dbfile: db/redmine.db
+  timeout: 5000

これ以降もコメントしておく.(MySQLのセットアップをしていないと, デフォルト値ではエラー.)
....

# rake db:migrate RAILS_ENV="production"
# rake redmine:load_default_data RAILS_ENV="production"
# Select language: bg, ca, ...
> ja

Passenger

via : Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用
http://redmine.jp/tech_note/apache-passenger/

yum から入れても動くと思うし、pathが不満(/etc/httpd)なら指定すれば良いのだが、
Apache はソースから入れたい.

# cd /usr/local/src
# wget http://ftp.riken.jp/net/apache/httpd/httpd-2.2.13.tar.gz
# tar xvf httpd-2.2.13.tar.gz
# cd httpd-2.2.13
# ./configure
# make && make install
# /usr/local/apache2/bin/apachectl start
# /usr/local/apache2/bin/apachectl stop

# gem install passenger

# env APXS2=/usr/local/apache2/bin/apxs PATH=/usr/local/apache2/bin:$PATH passenger-install-apache2-module
=> 1行じゃないとコケた.

# passenger-install-apache2-module
....
--------------------------------------------
The Apache 2 module was successfully installed.

=> この後設定例が出る.
Enter

# vim /usr/local/apache2/conf/httpd.conf
LoadModule の項付近に下記を追加.

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.5
   PassengerRuby /usr/local/bin/ruby

末尾に下記を追加. "allow from ..." を忘れないこと. ここは設定例と異なる.
/path/to/rails/.. は環境に合わせる.

<VirtualHost *:80>
    ServerName www.yourhost.com
    DocumentRoot /path/to/rails/redmine/public
    <Directory />
        allow from all
    </Directory>
</VirtualHost>

その他

横着したので、"(13)Permission denied" と error_log に出る事象に悩まされた.
上のディレクトリのパーミッションが、その他ユーザに+xされてないとNG.

# えぇ、とりあえず動かそうと思って/root/rails/redmine とかでやってました..

/home/username/rails/redmine/.. などであれば、下記対応で動作する.

# chmod o+x /home/username

以降はブラウザ操作となる.

via : Redmine 0.8.5 on さくらサーバ構築まとめ
http://d.hatena.ne.jp/stacking/20090915/1253039401
via : linodeubuntu 9.04 64ビット)に redmine を設置する
http://d.hatena.ne.jp/sevenpg/20090920/1253454278

DNS and Apache VirtualHost settings on Linode

DNS関連

"add a new domain zone"

ドメイン名を入力. Master で "Continue"

ドメイン名, メールアドレス, IPなどを入力し "Save"

さらっと設定が完了
ちなみに設定ファイルは15分置きのバッチで反映される

LinodeDNS Manager で Aレコードを設定する
(面倒なら *(アスタリスク) 指定でも良い)

# なお、CNAMEよりAレコードに記述したほうがDNSへの問い合わせが減るため、Aレコードでの運用が良いと思う.

レジストラ側で、ネームサーバをLinodeに変更する

急ぎで使いたければ自ホストの/etc/hosts を書き換える
(whois, nslookupで参照できる情報の変更は数分で済むようだが、ドメインが別ホストを向いていた場合には時間がかかることもある. 実際半日くらいかかるところもあった模様.)

LinodeのノードIPがaa.bbb.ccc.dddの場合.
$ vim /etc/hosts
+aa.bbb.ccc.ddd www.hoge.com
+aa.bbb.ccc.ddd test.hoge.com

ApacheのVirtualHost設定

無指定(www)はApacheのデフォルト、それ以外は任意のドキュメントルート
(ex. www.hoge.com, test.hoge.com を分ける場合)

# vim /usr/local/apache2/conf/httpd.conf
// 以下を追加.

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.hoge.com
    DocumentRoot /usr/local/apache2/htdocs/
    <Directory />
        allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName test.hoge.com
    DocumentRoot /path/to/rails/redmine/public
    <Directory />
        allow from all
    </Directory>
</VirtualHost>

# /usr/local/apache2/bin/apachectl restart
=> 設定を反映する.

Apacheをいじる場合は下記を一読のこと.

via : バーチャルホストの例
http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html

Linode契約からOS起動後の作業まとめ

Linode契約

下記のページで、"Fremont, CA" に空きがあることを確認.

他のVPSではあまり無いようだが、Linodeでは使用するデータセンタを選択できる.
日本からの場合、西海岸であればそこそこ快適なレスポンスを得られるため、
"Fremont, CA" に空きがあることを確認する.
逆に、ここが空いていないと契約は待った方が良い気がする.

Datacenter Availability
http://www.linode.com/avail.cfm

http://www.linode.com/ にアクセス
Sign Up Now! をクリック

次ページではアカウント名, パスワード, 住所などの情報, 課金のカード情報 を入力.

My referral code is: 1cfc1bb96422786fde2ff55904c2b2f6e121d962
:-)

入力が完了すると見積もりが表示される。当月分は日割り計算になる模様.
規約了解のところにチェックして続ける.

登録が完了する.
Click Here to Login! をクリック

OS起動

先ほど入力したID/Passでログイン.

"Hurricane Electric Fremont, CA, USA" を選択.

Dashboardが表示される.
右上の"my profile" をクリック.

適切なタイムゾーンを選ぶ.

Dashboardに戻って、"Deploy a Linux Distribution" をクリック

現在選べるディストリビューションは下記の通り.
とりあえずCentOSを選択.(RHEL互換, 普段使ってる, etc)
なお、LinodeではUbuntuが圧倒的に使用されている模様.
なおなお、64bitでないほうが、メモリ消費は少なくてすむ.

"No Pending Jobs." と表示されれば、イメージが配置される.

"Boot" をクリックすると、OSが起動する.

OS初期設定

以下はMac OS X でiTermでの作業.
# アップデートより何より、遠隔作業するならSSHの設定を真っ先にやるべきと思う.

# ssh-keygen -t rsa -v
Enter
Enter

# more ~/.ssh/id_rsa.pub
内容をコピーしておく

# ssh root@74.xxx.xxx.xxx

ログイン後、VPS側での作業.

# last -a
=>ログイン元をチェック

# vim /etc/hosts.allow
sshd: 127.0.0.1
sshd: .hoge.fuga.ne.jp
=> SSHアクセス元を自ホストに限定(とりあえず)

# vim /etc/hosts.deny
sshd: ALL

# useradd username
# passwd userpass
# su username
=> 一般ユーザを作成.

# mkdir -p ~/.ssh
# chmod 700 ~/.ssh
# vim ~/.ssh/authorized_keys
=>コピーした内容を貼付ける.

touch で作成, echo で入れ込みならLinodeのAjax Console(ブラウザ)からでもいけるのかも.
Ajax ConsoleでEsc(Viのコマンドモード)に入る方法がわからなかったので
ターミナルからやってしまった.

# chmod 600 ~/.ssh/authorized_keys
# exit

# vim /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
=> 最低限の設定.

# /etc/rc.d/init.d/sshd reload

iTerm上、command + T で別タブを開く

# ssh -i ~/.ssh/id_rsa username@74.xx.xxx.xxx
以降は下記でログインできるようになる.
なんも聞かれないんで不安っちゃ不安...

#ssh username@74.xx.xxx.xxx

以降の基本的な設定は他サイトにて。

via : CentOS自宅サーバ構築
http://centossrv.com/

LinodeでCentOS初期設定

初期設定

vimの設定

# alias vi="vim"

必要ならば下記を実行.
via : vim の文字コード自動認識用設定
http://www.kawaz.jp/pukiwiki/index.php?vim#cb691f26

yumの設定とwgetの導入

# yum -y install yum-fastestmirror
# yum -y install sudo
=> sudoくらい入れておいても..
# visudo
-# %wheel        ALL=(ALL)       NOPASSWD: ALL
+%wheel        ALL=(ALL)       NOPASSWD: ALL
=> パスワードを入れたければ NOPASSWD では無い方をコメントアウト.

# yum -y install wget
=> wgetくらい入れてくれてても..
# yum -y install rpm-build
=> これが無いとrpmインストールできないパッケージ有
# yum -y install yum-priorities
# vim /etc/yum.repos.d/CentOS-Base.repo
[base], [updates], [addons], [extras]
+priority=1

[centosplus]
+priority=5

# cd /usr/local/src
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm => だめならこっち
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm
# rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm
# vim /etc/yum.repos.d/rpmforge.repo
[rpmforge]
enabled = 0

使う時は下記の要領. "--enablerepo=rpmforge" を付ける.
yum --enablerepo=rpmforge -y install perl-Module-Build

iptablesの設定

まずはiptablesということで下記を参照。したところエラーとなった。
http://centossrv.com/iptables.shtml

# ./iptables.sh
Flushing firewall rules:                                             [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter               [  OK  ]
Unloading iptables modules:                                          [  OK  ]
Saving firewall rules to /etc/sysconfig/iptables:                    [  OK  ]
Flushing firewall rules:                                             [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter               [  OK  ]
Unloading iptables modules:                                          [  OK  ]
Applying iptables firewall rules:                                    [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_ns         [FAILED]

モジュールが無い模様. iptables に netbios なんて名前の付くモジュールがあることを初めて知る.
必要なさそうなので使用先を確認.
# fgrep -i 'ip_conntrack_netbios_ns' /etc/sysconfig/iptables*
/etc/sysconfig/iptables-config:IPTABLES_MODULES="ip_conntrack_netbios_ns"

ビンゴ.
とりあえず外しておく.

#IPTABLES_MODULES="ip_conntrack_netbios_ns"
IPTABLES_MODULES=""

再実行したところok.

# ./iptables.sh 
Flushing firewall rules:                                             [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter               [  OK  ]
Unloading iptables modules:                                          [  OK  ]
Saving firewall rules to /etc/sysconfig/iptables:                    [  OK  ]
Flushing firewall rules:                                             [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter               [  OK  ]
Unloading iptables modules:                                          [  OK  ]
Applying iptables firewall rules:                                    [  OK  ]

Redmine 0.8.5 on さくらサーバ構築まとめ

さくらのスタンダードプランへのインストール手順まとめ.
# 同件は色々とまとめられているが、一筋縄ではいかなかったので.

  • 前提
    • シェル、エディターの変更手順も含める.
    • ドメイン : hoge.sakura.ne.jp
    • ソース類は $HOME/local/src にまとめる.
    • コマンド類は, なるべく $HOME/local/bin にまとめる.
    • Railsgateway.cgiを使って高速化する.

シェルの入力補間

%cd
# set autolist を追加.
%vi .cshrc
....
set autolist

if ($?prompt) then
....
# Esc -> ZZ などでvi閉じる.

%source $HOME/.cshrc
%rehash
%./(Tabを押す)
MailBox/    db/    sblo_files/    www/

Vim

%mkdir -p $HOME/local/src
%cd $HOME/local/src
%wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
%wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz
%wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
%tar jxf vim-7.2.tar.bz2
%tar zxf vim-7.2-extra.tar.gz
%tar zxf vim-7.2-lang.tar.gz
%cd vim72
%mkdir patches
%cd patches
%curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.[001-259]'
%cd ..
%cat patches/7.2.* | patch -p0
%./configure --enable-multibyte --enable-xim --enable-fontset \
--with-features=big --prefix=$HOME/local
%make && make install

# vim のエイリアス設定, パスの追加.
%cd
%vi .cshrc
....
alias ll ls -lA
alias vi vim

# set path に $HOME/local/bin を追加. 必ず /usr/local/bin より前に書くこと.
#set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)
set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin $HOME/local/bin /usr/local/bin $HOME/bin)
....
# Esc -> ZZ などでvi閉じる.

# 保存→即反映する.
%source $HOME/.cshrc
%rehash

# via : vim の文字コード自動認識用設定
# http://www.kawaz.jp/pukiwiki/index.php?vim#cb691f26

via : さくらインターネットの共用サーバに vim をインストールする
http://www.hazama.nu/t2o2/archives/002696.shtml

Subversion

各種最新ソースを取得するにもSVNコマンドが入っていないためインストール.
subversion, apr, apr-util はそれぞれ最新版をチェックして適宜変更.

%cd $HOME/local/src
%wget http://subversion.tigris.org/downloads/subversion-1.6.5.tar.bz2
%wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-0.9.18.tar.bz2
%wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-0.9.17.tar.bz2
%tar jxf subversion-1.6.5.tar.bz2
%cd subversion-1.6.5
%tar jxf ../apr-0.9.18.tar.bz2
%mv apr-0.9.18 apr
%tar jxf ../apr-util-0.9.17.tar.bz2
%mv apr-util-0.9.17 apr-util
%./configure --prefix=$HOME/local/
%make && make install

# インストールチェック.
%svn --help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.6.5.
...

via :
さくらインターネットSubversion
http://saikyoline.jp/weblog/2005/10/15/001101.html
さくらインターネットSubversionの補足。
http://saikyoline.jp/weblog/2007/04/15/013257.html

Ruby

%cd $HOME/local/src
%wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
%tar zxf ruby-1.8.7-p174.tar.gz
%cd ruby-1.8.7-p174
%./configure --prefix=$HOME/local
%make && make install

# iconv のインストール. Redmineで使う(はず)
%cd $HOME/local/src/ruby-1.8.7-p174/ext/iconv
%ruby extconf.rb --prefix=$HOME/local --with-iconv-dir=/usr/local
%make && make install

RubyGems

%cd $HOME/local/src
%wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
%tar zxf rubygems-1.3.5.tgz
%cd rubygems-1.3.5
%setenv RB_USER_INSTALL true
%setenv GEM_HOME $HOME/local/gems/1.8
%ruby setup.rb --prefix=/ --destdir=$HOME/local/gems/1.8
# $HOME/local/gems/1.8/bin/gem18 に入る.

# setenv に RUBYLIB, GEM_HOME の値を追加.
%cd
%vi .cshrc
...
setenv  PKG_DBDIR       ~/db/pkg

setenv  RB_USER_INSTALL true
setenv  RUBYLIB         $HOME/local/lib/ruby/site_ruby/1.8:$HOME/local/gems/1.8/lib
setenv  GEM_HOME        $HOME/local/gems/1.8

# set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin)
set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin $GEM_HOME/bin $RUBYLIB/bin)
----
# Esc -> ZZ などでvi閉じる.

# 保存→即反映する.
%source $HOME/.cshrc 
%rehash
%gem18 --version
1.3.5

Ruby on Rails

%cd
# redmine 0.8.5 では, Rails 2.1.2 を指定.
%gem18 install rails -v=2.1.2
Successfully installed activesupport-2.1.2
Successfully installed activerecord-2.1.2
Successfully installed actionpack-2.1.2
Successfully installed actionmailer-2.1.2
Successfully installed activeresource-2.1.2
Successfully installed rails-2.1.2
6 gems installed
Installing ri documentation for activesupport-2.1.2...
Installing ri documentation for activerecord-2.1.2...
Installing ri documentation for actionpack-2.1.2...
Installing ri documentation for actionmailer-2.1.2...
Installing ri documentation for activeresource-2.1.2...
Installing ri documentation for rails-2.1.2...
Installing RDoc documentation for activesupport-2.1.2...
Installing RDoc documentation for activerecord-2.1.2...
Installing RDoc documentation for actionpack-2.1.2...
Installing RDoc documentation for actionmailer-2.1.2...
Installing RDoc documentation for activeresource-2.1.2...
Installing RDoc documentation for rails-2.1.2...

/*
# 先にバージョン指定なしでインストールした場合は下記.
gem18 install rails
Successfully installed rake-0.8.7
Successfully installed activesupport-2.3.4
Successfully installed activerecord-2.3.4
Successfully installed rack-1.0.0
Successfully installed actionpack-2.3.4
Successfully installed actionmailer-2.3.4
Successfully installed activeresource-2.3.4
Successfully installed rails-2.3.4
8 gems installed
Installing ri documentation for rake-0.8.7...
Installing ri documentation for activesupport-2.3.4...
Installing ri documentation for activerecord-2.3.4...
Installing ri documentation for rack-1.0.0...
Installing ri documentation for actionpack-2.3.4...
Installing ri documentation for actionmailer-2.3.4...
Installing ri documentation for activeresource-2.3.4...
Installing ri documentation for rails-2.3.4...
Installing RDoc documentation for rake-0.8.7...
Installing RDoc documentation for activesupport-2.3.4...
Installing RDoc documentation for activerecord-2.3.4...
Installing RDoc documentation for rack-1.0.0...
Installing RDoc documentation for actionpack-2.3.4...
Installing RDoc documentation for actionmailer-2.3.4...
Installing RDoc documentation for activeresource-2.3.4...
Installing RDoc documentation for rails-2.3.4...
*/

# インストールチェック.
%rehash
%rails -v
2.1.2

/*
# 2重で入れた場合は, Redmineに合わせておく.
%gem18 uninstall rails

Select gem to uninstall:
 1. rails-2.1.2
 2. rails-2.3.4
 3. All versions
> 2
Successfully uninstalled rails-2.3.4

%rails -v
Rails 2.1.2
*/

# どうでもいいけど、ここまでやった後で昨日(9/13)に0.8.5がリリースされたことを知る.
mkdir rails

sqlite3-ruby

# ソースから導入.
# gemはエラーになる.(libが足りない?)
/*
%gem18 install sqlite3-ruby
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
        ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb
checking for fdatasync() in -lrt... no
checking for sqlite3.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
*/

%cd $HOME/local/src
%wget http://rubyforge.org/frs/download.php/42056/sqlite3-ruby-1.2.4.tar.gz
%tar zxf sqlite3-ruby-1.2.4.tar.gz
%cd sqlite3-ruby-1.2.4
%ruby setup.rb config --prefix=$HOME/local
%ruby setup.rb setup
%ruby setup.rb install

Redmine

# ~/www 以外の場所に配置する.
%cd $HOME/rails
%mkdir redmine
%cd redmine

# via : http://rubyforge.org/scm/?group_id=1850
%svn checkout svn://rubyforge.org/var/svn/redmine/branches/0.8-stable .
%cd tmp

# tar.gz の vendor/rails を, svn から checkout したプロジェクトに配置する.
# 今回は同一バージョンのため、tar.gz 版を使っても良さそう.
%wget http://rubyforge.org/frs/download.php/63583/redmine-0.8.5.tar.gz
%tar zxf redmine-0.8.5.tar.gz
%mv redmine-0.8.5/vendor/rails ../vendor/
# sweep.
%rm -rf redmine-0.8.5*

%cd $HOME/rails/redmine/

# Apache実行ユーザから書き込むため.
%chmod -R o+w tmp log

# DBをsqlite3に変更.
%cd config
%cp database.yml.example database.yml
%vi database.yml
....
# production:
#   adapter: mysql
#   database: redmine
#   host: localhost
#   username: root
#   password:
#   encoding: utf8

production:
  adapter: sqlite3
  dbfile: db/redmine.db
  timeout: 5000

# これ以降もコメントしておく.(MySQLのセットアップをしていないと, デフォルト値ではエラー.)
....

# 下記の rake でつまづく場合は, 下記のパスをチェック.
# setenv  RUBYLIB         $HOME/local/lib/ruby/site_ruby/1.8:$HOME/local/gems/1.8/lib
# set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin $HOME/local/bin /usr/local/bin $HOME/bin $GEM_HOME/bin $RUBYLIB/bin)

# DBセットアップ
%rake db:migrate RAILS_ENV="production"
%rake redmine:load_default_data RAILS_ENV="production"

Select language: bg, ca, ...
> ja

# 環境設定. $HOME の部分は各自の値に置き換えて入力する.
%vi config/enviroment.rb
# Be sure to restart your web server when you modify this file.
# configuration for SAKURA
# ~/.cshrcに設定した環境変数「RUBYLIB」と「GEM_HOME」
$LOAD_PATH.push("/home/hoge/local/lib/ruby/site_ruby/1.8")
$LOAD_PATH.push("/home/hoge/local/gems/1.8/lib")
ENV['GEM_HOME']||='/home/hoge/local/gems/1.8'
ENV['PATH']+=':/home/hoge/local/bin'
....

%cd $HOME/rails/redmine

# CGI動作のためOptions部をコメント.
%vi public/.htaccess
....
#Options +FollowSymLinks +ExecCGI

# forge(工房)とかにするならRewriteBaseを使う.
RewriteBase /myforge
----

# dispatch.cgi のコピー.
%cp -p public/dispatch.cgi.example public/dispatch.cgi
%vi public/dispatch.cgi
# which ruby のパス.
#!/home/hoge/local/bin/ruby
....

# 実行権付与.
%chmod u+x public/dispatch.cgi

# 外部アクセス用にシンボリックリンクを張る.
# RewriteBase 使用時は、www/myforge などとする.
%ln -s $HOME/rails/redmine/public $HOME/www/redmine

# ブラウザから下記にアクセス.
# http://hoge.sakura.ne.jp/redmine/

fcgi

%cd $HOME/local/src
%wget http://fastcgi.com/dist/fcgi-2.4.0.tar.gz
%tar zxf fcgi-2.4.0.tar.gz
%cd fcgi-2.4.0
%./configure --prefix=$HOME/local
%make && make install

# fcgi -- --with-.. なので注意.
%gem18 install fcgi -- --with-fcgi-include=$HOME/local/include/ --with-fcgi-lib=$HOME/local/lib/
Building native extensions.  This could take a while...
Successfully installed fcgi-0.8.7
1 gem installed
Installing ri documentation for fcgi-0.8.7...
Installing RDoc documentation for fcgi-0.8.7...

%cd $HOME/rails/redmine/
# 作らないとログ書き込みできないエラーになる.
%mkdir log/drb_gateway
%chmod 777 log/drb_gateway

%cp -p vendor/rails/railties/dispatches/gateway.cgi public/.
%cp -p vendor/rails/railties/lib/commands/ncgi/listener script/.
%cp -p vendor/rails/railties/lib/commands/ncgi/tracker script/.
%chmod 755 public/gateway.cgi

# 以下diff形式。'-' を削除, '+' を追加
%vi public/gateway.cgi
-#!/usr/local/bin/ruby
+#!/usr/bin/env ruby

-    sleep 0.5
+    sleep 1

%vi public/.htaccess
-       RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+       RewriteRule ^(.*)$ gateway.cgi [QSA,L]

%vi script/listener
-#!/usr/local/bin/ruby
+#!/usr/bin/env ruby

 require 'stringio'
 require 'fileutils'
+require 'rubygems'
+gem 'fcgi'
+
 require 'fcgi_handler'

 def message(s)
....

     self.env_table = env_table
     self.stdinput = input || StringIO.new
     self.stdoutput = output || StringIO.new
+    $stdin = self.stdinput
+    $stdout = self.stdoutput
     super()
   end
....

%vi script/tracker
-#!/usr/local/bin/ruby
+#!/usr/bin/env ruby

# .htaccess で RewriteBase使用時.
%vi config/environments/production.rb
+
+# gateway.cgi configuration
+ActionController::AbstractRequest.relative_url_root = "/myforge"

via : さくらサーバーでRailsを高速に動作させる方法
http://d.hatena.ne.jp/cimadai/20080923/RubyonRails_on_sakura
via : さくらサーバへRedmineをインストールしたときのメモ
http://mcnc.jp/wiki/wikird/index.php?cmd=read&page=Linux%2F%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB%2Fweb%2FRedmine%2F%A4%B5%A4%AF%A4%E9%A5%B5%A1%BC%A5%D0%A4%D8%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

さすがに、もうちょっと短くしたい...