質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.01%

Perlのモジュール(Moose)をインストールする際のエラー対象の方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 640

taro373

score 81

perlのモジュール、MooseをCentOS7にインストールしようと
$ sudo cpan Moose
と実行しました。

最後のメッセージは下記のものでした。

Result: FAIL
Failed 459/478 test programs. 12/14 subtests failed.
make: *** [test_dynamic] エラー 2
  ETHER/Moose-2.2011.tar.gz
21 dependencies missing (Package::DeprecationManager,CPAN::Meta::Check,Package::Stash::XS,Test::CleanNamespaces,Test::Fatal,Sub::Exporter,Module::Runtime,Params::Util,Devel::OverloadInfo,MRO::Compat,Class::Load::XS,Devel::StackTrace,Eval::Closure,Class::Load,Package::Stash,Dist::CheckConflicts,Sub::Name,Sub::Identify,Data::OptList,Devel::GlobalDestruction,Module::Runtime::Conflicts); additionally test harness failed

エラーメッセージを見ても、原因がつかめません。cpan実行時のエラーの見方を教えていただけないでしょうか。

また、メッセージを遡って"Fatal"の文字を探すと、下記のメッセージがありました。

make: *** [test_dynamic] エラー 2
  ILMARI/Devel-OverloadInfo-0.005.tar.gz
4 dependencies missing (Package::Stash,Test::Fatal,MRO::Compat,Sub::Identify); additionally test harness failed
  /usr/bin/make test -- NOT OK

他にも"Fatal"が出ていたところに、"Implementation"ともありました。

    Module::Implementation [requires]
    Package::Stash::XS [requires]
    Test::Fatal [build_requires]

「CPANモジュールはYAMLに依存しているので、YAMLがないと動かない。」と書かれているブログがありました。

 yum install libyaml-devel


を実行してみると、
インストール中: libyaml-devel
となりましたので(Nで中断しました)これが原因でしょうか。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

そのモジュールは山ほどの他のモジュールに依存しています。
21 dependencies missing ... というのは依存しているパッケージが21個足りないという意味です。
それらがちゃんとインストールされていないと、インストールが成功しません。

で、軽くmoose perl centos7でぐぐってみると、こういうのが見つかるわけです。

https://centos.pkgs.org/7/epel-x86_64/perl-Moose-2.1005-1.el7.x86_64.rpm.html

パッケージによってはこういうふうにライブラリの依存性とかをいい感じにディストリビューションに合わせて調整されているリソースが用意されていることがあります。その場合は、cpanよりさきにまずはそっちを試したほうがいいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/20 09:21

    回答いただきありがとうございます。

    ご教示いただいたページは参照しました。
    Install Howtoを読みこれで解決とも思ったのですが、
    今回はMooseが直接の目的ではなく、使用したいツールの要件としてMooseがあります。
    ツールの説明に下記のようにあったので、cpanでインストールをしようとしました。
    (実際に、テスト環境のCentOS7ではcpanでインストールができました)
    今後のため、perlのモジュールを理解のため
    エラーメッセージから何が不足しているのかは読み取れないものでしょうか。

    assumes the Python 2.7.x and Perl interpreters are on your system path.
    note: Perl interpreter requires Moose, Bundle::BioPerl and IPC::Run modules. You can install those modules using CPAN:

    perl -MCPAN -e"install Moose"

    キャンセル

  • 2019/02/20 12:28

    >何が不足しているか
    21 dependencies の後ろにずらずら書いてあるのがまさにそれだと思うんですが。

    キャンセル

  • 2019/02/20 12:31

    python2.7.xが必須だというならpythonは別途インストールしてください。それはMooseをどうやってインストールするかとは別の問題です。

    キャンセル

  • 2019/02/21 09:33

    ありがとうございました

    CentOSでは
    $ sudo yum install perl-Moose
    でインストールができました
    cpanにこだわる必要はないですね

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.01%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる