レガシーrpm-4.8
およびそれ以前 (CentOS 6.x) には、自動検出された依存関係のフィルタリングがありません。ただし、回避策があります。
問題のライブラリを rpmbuild の前に gzip し、インストール後に gunzip します。rpmbuild の依存関係の検出では、ファイルが無視されます。
状況例:
あなたawesome-project-1.2.3-4.i686.rpm
が含む
libfoo.so
に依存するlibxx.so
libbar.so
に依存するlibyy.so
libbah.so
libextra-3rdparty-stuff.so
これは、 RPM 経由で出荷されないことに依存します
RPM の依存関係に と を含める必要がありますがlibxx.so
、.libyy.so
libextra-3rdparty-stuff.so
ここで、rpm 仕様ファイルをトリックします。たとえば、次のようにしますawesome-project.spec
。
%prep
gzip "$RPM_BUILD_ROOT/usr/lib/libbah.so"
exit
%post
gunzip -f "$RPM_INSTALL_PREFIX/usr/lib/libbah.so.gz
exit
%preun
gzip "$RPM_INSTALL_PREFIX/usr/lib/libbah.so" # so that `rpm -e` doesn't complain about missing file
exit
ほらね。libextra-3rdparty-stuff.so
RPM のインストール時に欠落しているという苦情はもうありません。