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