2016年8月9日火曜日

PerlモジュールをRPM管理するときに、cpan2rpmではなくcpanspec + mock でビルドする!


まだ、RPMでCPANモジュール管理しているの!?って、言われそうですが。。。
まあ、いろんな事情とかありまして・・・。

cpanmとか、cpanmとか素晴らしいプロダクトあるんですが。





RedHat系のディストリビューションでしか使えない・・・。RPMで「Perlモジュール管理」をします!


もくじ


前提条件

  • CentOS 7
  • EPEL のリポジトリ導入済み
  • cpanspec
  • mock(EPEL)


cpan2rpm vs cpanspec

PerlモジュールをRPM化するのに便利だった「cpan2rpm
FedoraProjectで管理されている「cpanspec

どっちを使うのがいいの!?って、思ったんですよ。
で、調べてみたら。

プロダクト名cpanspeccpan2rpm
最終リリース日2013-04-152013-06-05
yumepelリポジトリから見当たらず

cpan2rpmの方が、少し新しかったんですが。
yumで入れられる方を採用しました!


参考

  • cpan2rpm

cpan2rpm

  • cpanspec

cpanspec


cpanspec インストール

sudo yum install cpanspec --enablerepo=epel


mock インストール

sudo yum install mock --enablerepo=epel


cpanspec + mock でビルド

mockを使ったビルドをします!(一般ユーザーで)

cpanspec --packager snicker_jp xxxx.xx.tar.gz
mock --buildsrpm --spec xxxx.spec --sources xxxx.xx.tar.gz
(ここでrootパスワードを求められる)
mv /var/lib/mock/(ビルド環境により異なる)/result/xxxx.xx.src.rpm /home/snickerjp/.
cd /home/snickerjp/
mock --rebuild xxxx.xx.src.rpm

と、こんな感じで使えばrpmが/var/lib/mock/(ビルド環境により異なる)/result/の下に出来ていると思います!


まとめ

サラッと、cpanspecとmockを使ったビルド紹介してみました!
もうこれで、次から迷わない!きっとw


画像

Free Image on Pixabay - Code, Programming, Computer, Data

Zenback