#28-01 [PC,hack,perl]CPANのDateTimeとDateTime::TimeZoneが循環参照している件
rpmを作る時にハマったのでメモ。この件をぐぐってみたら、
ほとんど同じ問題が2chでヒット。
落ちた時のために引用しとく。
1年以上前かい…。
- 503 :名無しさん@お腹いっぱい。:2007/04/07(土) 15:43:51 ID:I00y/VNb0
- Plaggerインストールの前段階で躓いています.
cpan2rpmを用いてPlaggerを入れようとしています.しかし,いくつか必要なモジュールが入っていないので,
「cpan2rpm -i Plagger」の結果を基に,これもcpan2rpm経由でインストールしています.
いくつかのモジュールはインストールできたのですが,perl-DateTime周りのインストールがうまくいきません.
具体的には,以下のようなエラーがでます.エラーが出ているのは,rpm化されたモジュールをrpmでインストールする際のようです.
# cpan2rpm -i DateTime
(中略)
エラー: Failed dependencies:
perl(DateTime::TimeZone) is needed by perl-DateTime-0.37-1.i386
perl(DateTime::TimeZone) >= 0.38 is needed by perl-DateTime-0.37-1.i386
perl(DateTimePPExtra) is needed by perl-DateTime-0.37-1.i386
# cpan2rpm -i DateTime::TimeZone
(中略)
No version found, please use --version option. Stopped at /usr/bin/cpan2rpm line 580, <DATA> line 537.
# cpan2rpm -i DateTime::TimeZone --version 0.64
(中略)
エラー: Failed dependencies:
perl(DateTime) is needed by perl-DateTime-TimeZone-0.64-1.noarch
perl(DateTime::Duration) is needed by perl-DateTime-TimeZone-0.64-1.noarch
perl(DateTime::TimeZoneCatalog) is needed by perl-DateTime-TimeZone-0.64-1.noarch
perl(Win32::TieRegistry) is needed by perl-DateTime-TimeZone-0.64-1.noarch
- 504 :続き:2007/04/07(土) 15:44:38 ID:I00y/VNb0
- 何故こういう事が起こるのかはともかく,この状況下で,DateTimeをcpan2rpmで導入するために必要なことをご教示いただけたらと思います.
環境
OS: CentOS 4.4
CPU model name: Intel(R) Pentium(R) III Mobile CPU 1200MHz
perl v5.8,8 cpan script version 1.03 CPAN.pm version 1.7602 cpan2rpm 2.028
気になる点
・DateTime と DateTime::TimeZone とが,相互に依存している点.
・DateTime::TimeZone が その中に含まれている(はず)の DateTime::TimeZoneCatalog に依存している点
・Linuxなのに,Win32::TieRegistry に依存している点
解決策として同僚から教わった方法は
$ diff -u old/DateTime-TimeZone.spec /usr/src/redhat/SPECS/DateTime-TimeZone.spec --- old/DateTime-TimeZone.spec +++ /usr/src/redhat/SPECS/DateTime-TimeZone.spec @@ -24,6 +24,7 @@ buildarch: noarch prefix: %(echo %{_prefix}) source: http://search.cpan.org//CPAN/authors/id/D/DR/DROLSKY/DateTime-TimeZone-0.7903.tar.gz +AutoReq: false %description None.