2015年4月20日月曜日

[mock] net-snmp-lvs-moduleをCentOS6でmockビルドしてみた!


ども!なのまるです!
のっぴきならない理由により「net-snmp-lvs-module」をRPMで使ってみたかったので、CentOS6でビルドしました!
忘れそうなので、手順を残しておきたいと思います。

もくじ



前提条件

  • CentOS6
  • mock インストール・設定済み
  • net-snmp-lvs-module のソースRPM使う

[net-snmp-lvs-module] のSRPMを再作成する

ここから、「net-snmp-lvs-module-0.0.4-3.el5.x86_64.rpm」を持ってきて、リビルドしようとして
mock --rebuild /tmp/net-snmp-lvs-module-0.0.4-3.el6.src.rpm

毎回、以下のところでエラーになるので、回避策が「find-debuginfo.sh」をしないということに決めました・・・(´・ω・`)
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /builddir/build/BUILD/net-snmp-lvs-module-0.0.4
extracting debug info from /builddir/build/BUILDROOT/net-snmp-lvs-module-0.0.4-3.el6.x86_64/usr/lib64/libnetsnmplvs.so
*** ERROR: No build ID note found in /builddir/build/BUILDROOT/net-snmp-lvs-module-0.0.4-3.el6.x86_64/usr/lib64/libnetsnmplvs.so

参考:
そのためには、specファイルの編集が必要で
--- net-snmp-lvs-module.spec    2011-01-23 07:44:09.000000000 +0900
+++ net-snmp-lvs-module.spec.mod        2015-04-20 19:45:05.160565532 +0900
@@ -1,4 +1,5 @@
 %define ipvsadm_version 1.24
+%define debug_package %{nil}

 Name:           net-snmp-lvs-module
 Version:        0.0.4

mockでSRPMを作る

cd ~/rpmbuild/SPECS
mock --buildsrpm --spec net-snmp-lvs-module.spec --source ../SOURCES/
mv /var/lib/mock/epel-6-x86_64/result/net-snmp-lvs-module-0.0.4-3.el6.src.rpm /tmp/

mockでビルドする

mock --rebuild /tmp/net-snmp-lvs-module-0.0.4-3.el6.src.rpm
出来ました!
result/
├── build.log
├── net-snmp-lvs-module-0.0.4-3.el6.src.rpm
├── net-snmp-lvs-module-0.0.4-3.el6.x86_64.rpm
├── root.log
└── state.log


まとめ

  • なかなかに古いsrc.rpmをビルドしようとしてハマりました!
  • やっぱり、mockって便利だな~(^o^)
  • SRPMだけ作るのも、mockでできちゃうんですね!


参考サイト

画像:

Zenback