月曜日, 9月 06, 2010

RubyのtarボールからRPMパッケージをつくる

2008/02/07perlfreak.vox.comより転載)

まず、checkinstallというパッケージをインストールしておく。

$ tar zxvf ruby-1.8.6-p111.tar.gz
$ cd ruby-1.8.6-p111
$ ./configure --prefix=/usr
$ make
$ su
Password:
# checkinstall --fstrans=no -R "make install"

入力を求められたり、内容を変更する場合があるので、以下出力を参考まで。

--- (ここから) ---
checkinstall 1.6.0, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.


The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y

Preparing package documentation...OK

Please write a description for the package.
End your description with an empty line or EOF.
>>

**************************************
**** RPM package creation selected ***
**************************************

This package will be built according to these values:

1 - Summary: [ Package created with checkinstall 1.6.0 ]
2 - Name: [ ruby-1.8.6 ]
3 - Version: [ p111 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ ruby-1.8.6-p111 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ ruby-1.8.6 ]

Enter a number to change any of them or press ENTER to continue: 2
Enter new name:
>> ruby

This package will be built according to these values:

1 - Summary: [ Package created with checkinstall 1.6.0 ]
2 - Name: [ ruby ]
3 - Version: [ p111 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ ruby-1.8.6-p111 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ ruby-1.8.6 ]

Enter a number to change any of them or press ENTER to continue: 3
Enter new version:
>> 1.8.6

This package will be built according to these values:

1 - Summary: [ Package created with checkinstall 1.6.0 ]
2 - Name: [ ruby ]
3 - Version: [ 1.8.6 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ ruby-1.8.6-p111 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ ruby-1.8.6 ]

Enter a number to change any of them or press ENTER to continue: 4
Enter new release number:
>> p111.el4

This package will be built according to these values:

1 - Summary: [ Package created with checkinstall 1.6.0 ]
2 - Name: [ ruby ]
3 - Version: [ 1.8.6 ]
4 - Release: [ p111.el4 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ ruby-1.8.6-p111 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ ruby-1.8.6 ]

Enter a number to change any of them or press ENTER to continue: 10 <- 10と11が逆になっている Enter the provided features: >> ruby

This package will be built according to these values:

1 - Summary: [ Package created with checkinstall 1.6.0 ]
2 - Name: [ ruby ]
3 - Version: [ 1.8.6 ]
4 - Release: [ p111.el4 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ ruby-1.8.6-p111 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ ruby ]

Enter a number to change any of them or press ENTER to continue:

Installing with make install...

========================= Installation results ===========================
./miniruby ./instruby.rb --dest-dir="" --extout=".ext" --make="make" --mflags="" --make-flags="" --installed-list .installed.list --mantype="doc"
installing binary commands
installing command scripts
installing library scripts
installing headers
installing manpages
installing extension objects
installing extension scripts

======================== Installation successful ==========================

Copying documentation directory...
./
./GPL
./README
./README.EXT.ja
./README.ja
./COPYING
./README.EXT
./doc/
./doc/shell.rd.ja
./doc/forwardable.rd.ja
./doc/irb/
./doc/irb/irb.rd.ja
./doc/irb/irb-tools.rd.ja
./doc/irb/irb.rd
./doc/ChangeLog-1.8.0
./doc/forwardable.rd
./doc/NEWS-1.8.0
./doc/shell.rd
./COPYING.ja
./NEWS
./ChangeLog

Some of the files created by the installation are inside the build
directory: /var/home/bea/work/tgz/ruby-1.8.6-p111

You probably don't want them to be included in the package,
especially if they are inside your home directory.
Do you want me to list them? [n]: n
Should I exclude them from the package? (Saying yes is a good idea) [y]: y

Copying files to the temporary directory...OK

Striping ELF binaries and libraries...OK

Compressing man pages...OK

Building file list...OK

Building RPM package...OK

NOTE: The package will not be installed

Erasing temporary files...OK

Deleting doc-pak directory...OK

Writing backup package...OK

Deleting temp dir...OK


**********************************************************************

Done. The new package has been saved to

/usr/src/redhat/RPMS/x86_64/ruby-1.8.6-p111.el4.x86_64.rpm
You can install it in your system anytime using:

rpm -i ruby-1.8.6-p111.el4.x86_64.rpm

**********************************************************************
--- (ここまで) ---

これで

/usr/src/redhat/RPMS/x86_64

等にRPMファイルが生成される。

0 件のコメント: