Hatena::Groupangelos

Angelos in Action RSSフィード

Fork me on GitHub
 | 

2009-04-01

Scalar::List::Utilsへの依存

16:36 | Scalar::List::Utilsへの依存 - Angelos in Action を含むブックマーク はてなブックマーク - Scalar::List::Utilsへの依存 - Angelos in Action Scalar::List::Utilsへの依存 - Angelos in Action のブックマークコメント

SPECファイルには、Scalar::List::Utilsへの依存は設定されていないのに、作られたRPMにはScalar::List::Utilsへの依存が設定されている... うーむ、誰がこの依存関係設定してるんだろう... ここがクリアできれば、かなり多くのモジュールが自動でRPM化ができそう。

追記:

犯人はrpmbuildで、解決方法をエロイ人に教えてもらいました。/usr/lib/rpm/macros で __perl_requires として定義されてるスクリプトが依存関係を抽出していていて、これが抽出しているとのこと。 解決方法としては、/usr/lib/rpm/perl.reqのScalar::List::UtilsをfilterしてあげればOKでした。

createrepoでローカルレポジトリの作成

12:54 | createrepoでローカルレポジトリの作成 - Angelos in Action を含むブックマーク はてなブックマーク - createrepoでローカルレポジトリの作成 - Angelos in Action createrepoでローカルレポジトリの作成 - Angelos in Action のブックマークコメント

cpan-packagerでRPMの作成

sudo bin/cpan-packager --module HTTP::Router --builder RPM --conf conf/config.yaml

local repoの作成

sudo mkdir -p /share/CentOS/5/local/i386/RPMS 

cpan packagerで作ったrpmのコピー

cp /tmp/cpanpackager/rpm/*.rpm /share/CentOS/5/local/i386/RPMS
sudo createrepo -v /share/CentOS/5/local/i386/RPMS

local repoの設定

sudo vim /etc/yum.repos.d/centos-local.repo
[local]
name=CentOS local $releasever - $basearch
baseurl=file:///share/CentOS/5/local/i386/RPMS/
enabled=1
gpgcheck=0

localレポのパッケージが表示されているか確認。

yum list |grep perl

local repoからインストール

yum -y install perl-HTTP-Router

これでRPMの依存関係に従って、RPM群がインストールされる。

 |