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をダウンロード

ホームページ

http://www.sqlite.org/

から

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

 

アンケート