読者です 読者をやめる 読者になる 読者になる

okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

Rails3環境用にSQLite3のRPMを作成する

CentOS

いやー、最近のこのブログの技術ネタといったら、

  • このRPM作った
  • あのRPM作った
  • こんなRPM作った

と、ただのRPM作成ログの置き場となってますが、今回もRPMを作成したログです(汗)
すんません…orz 作成したきっかけは達人出版会さんから出版されている、”はじめる!Rails3”です。
こちらはRails3を始めるには良さそうな電子書籍で、Rails3の使い方を分かりやすく説明しています。
Linuxへの導入はUbuntu中心で書かれていますが、CentOSでも問題ないだろうと思ってました。
…しかし、SQLite3のインストール手順においてこんな記載がありました。
Linux(CentOS 5)の場合は以下のコマンドを 実行します。』
残念な事に、この手順では”gem install sqlite3”が実行出来なかった訳です。
理由はCentOS5が使用するsqlite3のバージョンに古い事であり、『じゃあRPM作るか』ってなりますよね〜。
※今回はビルド専用ユーザーを作成していますが、SQLiteはrootでrpmbuildをするとエラーが出てしまいます

    • RPMBuildに必要なパッケージをインストール
# yum update -y
# yum -y groupinstall "Development Tools"
# yum -y groupinstall "Development Libraries"
# yum -y install tcl-devel
    • ビルド用ユーザoko_changを追加
# useradd oko_chang
# passwd oko_chang
Changing password for user oko_chang.
New UNIX password:*****
Retype new UNIX password:*****
passwd: all authentication tokens updated successfully.
# su - oko_chang
$ touch .rpmmacros
$ echo "%_topdir $HOME/redhat" > .rpmmacros 
$ echo "%dist .el5" >> .rpmmacros
$ mkdir redhat
$ cd redhat/
$ mkdir BUILD RPMS SOURCES SPECS SRPMS
$ cd ..
    • SRPMをダウンロードしてインストール
$ wget "http://ftp.riken.jp/Linux/fedora/releases/13/Everything/source/SRPMS/sqlite-3.6.22-1.fc13.src.rpm"
$ rpm -i --nomd5 sqlite-3.6.22-1.fc13.src.rpm
    • RPMビルドの準備
$ cd /home/oko_chang/redhat/
$ grep ^Patch ./SPECS/sqlite.spec
Patch1: sqlite-3.6.12-libdl.patch
Patch2: sqlite-3.6.6.2-lemon-snprintf.patch
$ ll ./SOURCES/
合計 5536
-rw-r--r-- 1 oko_chang oko_chang     493  4月  3  2009 sqlite-3.6.12-libdl.patch
-rw-rw-r-- 1 oko_chang oko_chang 2999137  1月 18  2010 sqlite-3.6.22.tar.gz
-rw-r--r-- 1 oko_chang oko_chang    4135 12月  6  2008 sqlite-3.6.6.2-lemon-snprintf.patch
-rw-rw-r-- 1 oko_chang oko_chang 2642221  1月 18  2010 sqlite_docs_3_6_22.zip
$ grep BuildRequires ./SPECS/sqlite.spec
BuildRequires: ncurses-devel readline-devel glibc-devel
BuildRequires: autoconf
BuildRequires: /usr/bin/tclsh
BuildRequires: tcl-devel
    • ビルド実行
$ cd ./SPECS/
$ rpmbuild -bb --clean sqlite.spec
$ ll /home/oko_chang/redhat/RPMS/i386/
合計 4204
-rw-r--r-- 1 oko_chang oko_chang   45341  2月 20 23:54 lemon-3.6.22-1.el5.i386.rpm
-rw-r--r-- 1 oko_chang oko_chang  319335  2月 20 23:54 sqlite-3.6.22-1.el5.i386.rpm
-rw-r--r-- 1 oko_chang oko_chang 1693352  2月 20 23:54 sqlite-debuginfo-3.6.22-1.el5.i386.rpm
-rw-r--r-- 1 oko_chang oko_chang   84979  2月 20 23:54 sqlite-devel-3.6.22-1.el5.i386.rpm
-rw-r--r-- 1 oko_chang oko_chang 2106761  2月 20 23:54 sqlite-doc-3.6.22-1.el5.i386.rpm
-rw-r--r-- 1 oko_chang oko_chang   27155  2月 20 23:54 sqlite-tcl-3.6.22-1.el5.i386.rpm

以上で無事に”gem install sqlite3”が実行出来ました。
ちなみに素直にUbuntuを使えば、当然この手順は必要ありません。