を使用してPerlモジュールを構築していますModule::Build。ファイルは次のBuild.PLとおりです。
use strict ;
use warnings ;
use Module::Build;
my $build = Module::Build->new
(
    module_name => 'Company::LDAP::SyncAttr',
    license     => 'perl',
    installdirs  => 'vendor',
    install_path => {
                      'bin'    => '/usr/bin',
                      'script' => '/usr/bin'
                    },
) ;
$build->create_build_script ;
モジュール自体は次のとおりです。
# SyncAttr.pm
package Company::LDAP::SyncAttr;
use Authen::Krb5;
1;
t/test.t次のようなテストファイルがあります。
# test.t
use Company::LDAP::SyncAttr;
実行する./Build testと、次のエラーが表示されます。
t/test.t .. Can't load '/usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so' for module Authen::Krb5: /usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Authen/Krb5/Krb5.so: 
undefined symbol: krb5_free_krbhst at /usr/lib/x86_64-linux-gnu/perl/5.20/DynaLoader.pm line 187.
 at /tmp/gg/blib/lib/Company/LDAP/SyncAttr.pm line 3.
Compilation failed in require at /tmp/gg/blib/lib/Company/LDAP/SyncAttr.pm line 3.
test.t ファイルを直接実行すると、そのようなエラーは発生しません。
perl -Ilib/ t/test.t
./Build testエラーが出ないようにするにはどうすればよいですか?
更新: 問題は Module::Build にあります。モジュールには、環境変数を強制do_tests的に 1 にするルーチンがあります。その行を0 に設定すると、すべてのテストに合格します。このモジュールには not set というオプションがありません。そのため、そのようなオプションを追加するように依頼するバグ レポートを提出しました。それまでは、実行をスキップする必要があります。Module::Build::BasePERL_DL_NONLAZYPERL_DL_NONLAZYModule::Build::BasePERL_DL_NONLAZY./Build test