rpmファイルを簡単に作成する
CentOSでは、なかなか新しいパッケージが配信されない。
ImageMagickとか、Rubyとか、SQLiteとか。。
なので、自前でrpmファイルを作ろうと思った。
方法は、checkinstallというツールを入れる。
ホームページは
http://www.asic-linux.com.mx/~izto/checkinstall/index.php
で、ソースコードをダウンロード
wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
ファイルの解凍とコンパイル
tar xvfz checkinstall-1.6.2.tar.gz
cd checkinstall-1.6.2
make
make install
これで、/usr/local/sbin/checkinstall
が生成される
次に、今回はSQLiteをダウンロード
ホームページ
から
autoconfの方をダウンロード
wget http://www.sqlite.org/sqlite-autoconf-3070603.tar.gz
ファイルの解凍
tar xvfz sqlite-autoconf-3070603.tar.gz
mv sqlite-autoconf-3070603 sqlite
cd sqlite
./configure
これでsqliteディレクトリにMakeFileが出来上がったので
checkinstallを実行
checkinstall
[hoge@localhost sqlite]#checkinstall
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
このソフトウェアはGNU GPLの下でリリースしています。
The checkinstallrc file was not found at:
/usr/local/sbin/../checkinstallrc
デフォルトの内容を使うものとします
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:
パッケージのドキュメンテーションを準備..OK
使用するパッケージ方式を選んでください。
Slackwareなら[S], RPMなら[R], Debianなら[D]を入力r
このパッケージの説明を書いてください
説明の末尾は空行かEOFにしてください。
>>
**************************************
**** RPM package creation selected ***
**************************************
このパッケージは以下の内容で構成されます:
1 - Summary: [ Package created with checkinstall 1.6.2 ]
2 - Name: [ sqlite ]
3 - Version: [ 3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3
3.7.6.3 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i386 ]
8 - Source location: [ sqlite ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ sqlite ]
変更するものの番号を入力してください。Enterで続行します: 3
バージョンを入力:
>> 3.7.6.3
このパッケージは以下の内容で構成されます:
1 - Summary: [ Package created with checkinstall 1.6.2 ]
2 - Name: [ sqlite ]
3 - Version: [ 3.7.6.3 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i386 ]
8 - Source location: [ sqlite ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ sqlite ]
変更するものの番号を入力してください。Enterで続行します:
Installing with make install...
========================= インストールの結果 ===========================
make[1]: ディレクトリ `/root/download/sqlite' に入ります
test -z "/usr/local/lib" || mkdir -p -- "/usr/local/lib"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'libsqlite3.la' '/usr/local/lib/libsqlite3.la'
/usr/bin/install -c .libs/libsqlite3.so.0.8.6 /usr/local/lib/libsqlite3.so.0.8.6
(cd /usr/local/lib && { ln -s -f libsqlite3.so.0.8.6 libsqlite3.so.0 || { rm -f libsqlite3.so.0 && ln -s libsqlite3.so.0.8.6 libsqlite3.so.0; }; })
(cd /usr/local/lib && { ln -s -f libsqlite3.so.0.8.6 libsqlite3.so || { rm -f libsqlite3.so && ln -s libsqlite3.so.0.8.6 libsqlite3.so; }; })
/usr/bin/install -c .libs/libsqlite3.lai /usr/local/lib/libsqlite3.la
/usr/bin/install -c .libs/libsqlite3.a /usr/local/lib/libsqlite3.a
chmod 644 /usr/local/lib/libsqlite3.a
ranlib /usr/local/lib/libsqlite3.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'sqlite3' '/usr/local/bin/sqlite3'
/usr/bin/install -c .libs/sqlite3 /usr/local/bin/sqlite3
test -z "/usr/local/include" || mkdir -p -- "/usr/local/include"
/usr/bin/install -c -m 644 'sqlite3.h' '/usr/local/include/sqlite3.h'
/usr/bin/install -c -m 644 'sqlite3ext.h' '/usr/local/include/sqlite3ext.h'
test -z "/usr/local/share/man/man1" || mkdir -p -- "/usr/local/share/man/man1"
/usr/bin/install -c -m 644 './sqlite3.1' '/usr/local/share/man/man1/sqlite3.1'
test -z "/usr/local/lib/pkgconfig" || mkdir -p -- "/usr/local/lib/pkgconfig"
/usr/bin/install -c -m 644 'sqlite3.pc' '/usr/local/lib/pkgconfig/sqlite3.pc'
make[1]: ディレクトリ `/root/download/sqlite' から出ます
======================== インストールに成功しました ==========================
Copying documentation directory...
./
./INSTALL
./README
tempディレクトリにファイルをコピー..OK
Stripping ELF binaries...OK
manページを圧縮..OK
ファイルリストを作成..OK
RPMパッケージを作成..OK
注意: パッケージはインストールされません
tempファイルを削除..OK
doc-pakディレクトリを削除..OK
バックアップパッケージを書き込み..OK
OK
temp dirを削除..OK
**********************************************************************
Done. The new package has been saved to
/usr/src/redhat/RPMS/i386/sqlite-3.7.6.3-1.i386.rpm
You can install it in your system anytime using:
rpm -i sqlite-3.7.6.3-1.i386.rpm
**********************************************************************
あとは、yum –nogpgcheck install /usr/src/redhat/RPMS/i386/sqlite-3.7.6.3-1.i386.rpm
で、インストールされる
※sqlite-develはどうやって作るか分からない。。。。。。

