参考
- Where does rpm look for dependencies? - Stack Overflow
- PerlスクリプトをRPMの中に入れようとすると,requireまで依存性チェックした - Lejayの日記
方法
.specファイルに以下を追記
tenshi.redhat-spec
#--------------------------------------------------------------------------------
# Basic package information
#--------------------------------------------------------------------------------
Summary: tenshi log monitoring program
Name: %{name}
Version: %{version}
Release: %{release}
Group: System Environment/Daemons
License: ISC-style
Url: http://www.inversepath.com/tenshi.html
Source0: %{name}-%{version}.tar.gz
Requires: perl
Buildroot: %{_tmppath}/%{name}-buildroot
+ AutoReqProv: no
#--------------------------------------------------------------------------------
# Description of the package
#--------------------------------------------------------------------------------
%description
確認
変更前
$ rpm -qpR /usr/src/redhat/RPMS/i386/tenshi-0.13-1.i386.rpm
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/usr/bin/perl
config(tenshi) = 0.13-1
perl
perl(File::Temp)
perl(Getopt::Long)
perl(IO::BufferedSelect)
perl(IO::Socket::INET)
perl(Net::SMTP)
perl(POSIX)
perl(Sys::Hostname)
perl(Term::ANSIColor)
perl(Time::Local)
perl(filetest)
perl(strict)
perl(warnings)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
AutoReqProvオプションをつけてビルドし直し
sudo rpmbuild -bb tenshi.redhat-spec --quiet
依存関係が減った
$ rpm -qpR /usr/src/redhat/RPMS/i386/tenshi-0.13-1.i386.rpm
perl
/bin/sh
/bin/sh
/bin/sh
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
tenshiのrpmパッケージを作ってみた
wget https://dev.inversepath.com/download/tenshi/tenshi-0.15.tar.gz
tar xzf tenshi-0.15.tar.gz
sudo mv tenshi-0.15.tar.gz /usr/src/redhat/SOURCES/
cd tenshi-0.15
vim tenshi.redhat-spec
tenshi.redhat-spec
Buildroot: %{_tmppath}/%{name}-buildroot
+ AutoReqProv: no
#--------------------------------------------------------------------------------
# Description of the package
#--------------------------------------------------------------------------------
%description
$ rpm -qpR /usr/src/redhat/RPMS/i386/tenshi-0.15-1.i386.rpm
perl
/bin/sh
/bin/sh
/bin/sh
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
消せなくなった場合
$ sudo rpm -e tenshi-0.15-1
エラー: %preun(tenshi-0.15-1.i386) スクリプトの実行に失敗しました。終了ステータス 1
$ sudo rpm -ev --nopreun tenshi
エラー: %postun(tenshi-0.15-1.i386) スクリプトの実行に失敗しました。終了ステータス 6
$ sudo rpm -ev --nopreun --nopostun tenshi