SQLite3インストール
とりあえず、データベースを使わないRailsアプリケーションだから、とそのまま
$ ruby ./script/server
ってやって
telnetでつなげてみた。
$ telnet localhost 3000 GET / HTTP/1.1
すると、Railsのログに…
Status: 500 Internal Server Error no such file to load -- sqlite3 /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:156:in `require' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:521:in `new_constants_in' ・ ・
んなっ?
どちらにしても、/config/database.ymlをいじっていないから(?)、SQLite3は必要なんだ。。なんて初歩的(汗)
$ sudo gem install sqlite3-ruby ※インストールされていなければ、以下も必要。 $ sudo yum -y install sqlite-devel $ sudo yum -y install sqlite
RubyGemsのアップデート
最初からRubyGems1.3.5を入れたかったんだけど、数字変えてwgetできなかったので、1.3.4を入れてアップデートすることに。
※まずはupdate_rubygemsを最新版インストール $ sudo gem install rubygems-update ※そしてRubyGemsを最新版に更新する $ sudo update_rubygems
Railsをインストール
さすがgem。。ここまでの苦労が嘘みたいに簡単だ。。
$ sudo gem install rails -v 2.3.4
RubyGemsをインストール
上記の通り、ちゃんとrubymがインストールされていればうまくいくはずだったんだー
$ wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz $ tar xzvf rubygems-1.3.4.tgz $ cd rubygems-1.3.4 $ sudo /usr/sbin/checkinstall -R "ruby setup.rb" ※最初は。 ちゃんとrubyがインストールできていなかったせいで ruby setup.rb : command not found ってなんすか… $ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/rubygems-1.3.4-1.i386.rpm
Rubyを1.8.5から1.8.7へ。
いろいろ調べてみたところCentOS 5.xには、最初1.8.5が入っているらしいので、バージョンアップしないといけない。
参考:http://gry.sakura.ne.jp/2009/07/25/
参考:http://blog.livedoor.jp/tez5ro/archives/1019474.html
これはインストールにいろいろ失敗した経緯などを記した作業ログです。実際にインストールを行なっていく場合ここではなくて上記サイトを参考にした方がよいと思います…。(5)の準備インストールを先にやるべきだったと思う
- 1. 旧バージョンのRubyを削除
$ sudo yum remove ruby [実行結果] Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : ruby [1/1] Removed: ruby.i386 0:1.8.5-5.el5_3.7 Complete!
- 2. ruby1.8.7のダウンロード(patchlevel 160)
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p160.tar.gz
- 3. 解凍
$ tar xzvf ruby-1.8.7-p160.tar.gz
- 4. Make
$ cd ruby-1.8.7-p160 $ ./configure --prefix=/usr [実行結果] checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for gcc... gcc ・ ・ ・ creating config.h configure: creating ./config.status config.status: creating Makefile $ make
- 5. 準備が足りなかった…
まずrpmforgeを使えるように。
http://dag.wieers.com/packages/rpmforge-release/このURLだと、接続を拒否されましたと言われたので下記URLでwgetした。$ wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt $ wget http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm $ sudo rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm $ sudo rpm --import RPM-GPG-KEY.dag.txt ※実行結果に 警告で「rpmforge.repo」が存在しているため 「rpmforge.repo.rpmnew」というファイルを作成した、と出たが 実際参照しているのは「rpmforge.repo」のようなので そっちを手動で書き換えた。
そして,checkinstallをインストールした。
$ sudo yum -y install checkinstall ※初め、gitからダウンロードしてインストールしようとしたが うまくいかなかったのは、そこが原因か??
その他、開発ツール類のインストール
$ sudo yum install -y gcc* compat-gcc* compat-lib* $ sudo yum groupinstall -y 'Development Libraries' $ sudo yum install rpm-build
- 6. checkinstallでRPMを作る
$ sudo /usr/sbin/checkinstall -R --fstrans=no [実行結果] ※途中で You probably don't want them to be included in the package. など出て、パッケージを除外するかどうか聞かれたが とりあえずすべて未回答。。それで良かったのかどうか…わからないんですケド ・ ・ ・ ********************************************************************** Done. The new package has been saved to /usr/src/redhat/RPMS/i386/ruby-1.8.7-p160-1.i386.rpm You can install it in your system anytime using: rpm -i ruby-1.8.7-p160-1.i386.rpm **********************************************************************
- 7. できあがったRPMでrubyをインストールする
$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p160-1.i386.rpm ※はじめ エラー: 依存性の欠如: /usr/bin/ruby は ruby-1.8.7-p160-1.i386 に必要とされています が出た。 実はいろいろごちゃごちゃやったせいで、すでに/usr/bin/rubyが存在していた 場合に起こるようで… $ yum list installed でrubyがインストールされていないことを確認して /usr/bin/rubyを思いきって削除してしまうことに。 ※次 準備中... ########################################### [100%] ファイル /usr/lib/ruby/1.8/thread.rb (パッケージ ruby-1.8.7-p160-1.i386 から) は、 パッケージ ruby-libs-1.8.5-5.el5_3.7.i386 からのファイルと競合しています。 上記同様、今度はruby-libsがインストールされている場合に起こるっぽい。 $ sudo yum remove ruby-libs で思いきって削除…
とりあえず削除できたのかな。
$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p160-1.i386.rpm [実行結果] 準備中... ########################################### [100%] 1:ruby-1.8.7 ########################################### [100%]
うう。。これでOKだったんだろうか…
CentOSのバージョンを確認
$ cat /etc/redhat-release [実行結果] CentOS release 5.3 (Final)