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はどうやって作るか分からない。。。。。。