2013-04-24 2 views
0

음, 지난 2 일 동안이 작업을 얻으려고했는데, 종속성을 설치하고 모듈을 업데이트했지만 어떤 해결책도 찾지 못했습니다.DBIx :: Class :: Schema :: Loader 설치가 실패합니다.

$> cpan DBIx::Class::Schema::Loader 

내가 실패 취득 시험과 같은 : 나는 새로운 펄 버전을 시도 제안

GENEHACK/DBIx-Class-Schema-Loader-0.07035.tar.gz 
    /usr/bin/make -- OK 
CPAN: YAML loaded ok (v0.84) 
Running make test 
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/backcompat/0.04006/*.t 
t/01use.t ............................... ok  
t/02pod.t ............................... ok  
t/10_01sqlite_common.t .................. 6/294 
# Failed test 'Correct number of warnings' 
# at t/lib/dbixcsl_common_tests.pm line 323. 
#   got: '10' 
#  expected: '9' 
# Column 'dbix_class_testcomponent' in table 'loader_test2' collides with an inherited method. 
# See "COLUMN ACCESSOR COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# Column 'dbix_class_testcomponentmap' in table 'loader_test2' collides with an inherited method. 
# See "COLUMN ACCESSOR COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# Column 'testcomponent_fqn' in table 'loader_test2' collides with an inherited method. 
# Column 'set_primary_key' in table 'loader_test2' collides with an inherited method. 
# See "COLUMN ACCESSOR COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# Column 'set_primary_key' in table 'loader_test4' collides with an inherited method. 
# See "COLUMN ACCESSOR COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# Column 'belongs_to' in table 'loader_test4' collides with an inherited method. 
# See "COLUMN ACCESSOR COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# Relationship 'belongs_to' in source 'LoaderTest4' for columns 'belongs_to' collides with an inherited method. Renaming to 'belongs_to_rel'. 
# See "RELATIONSHIP NAME COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# stat(t/var/common_dump/DBIXCSL_Test/Schema/MyResult/LoaderTest1.pm): No such file or directory at .cpan/build/DBIx-Class-Schema-Loader-0.07035-Emrz71/blib/lib/DBIx/Class/Schema/Loader/Base.pm line 1370. 
# Dumping manual schema for DBIXCSL_Test::Schema to directory t/var/common_dump ... 
# Schema dump completed. 
t/10_01sqlite_common.t .................. 294/294 # Looks like you failed 1 test of 294. 
t/10_01sqlite_common.t .................. Dubious, test returned 1 (wstat 256, 0x100) 
Failed 1/294 subtests 
     (less 2 skipped subtests: 291 okay) 
t/10_02mysql_common.t ................... skipped: You need to set the DBICTEST_MYSQL_DSN, DBICTEST_MYSQL_USER, and DBICTEST_MYSQL_PASS environment variables 
t/10_03pg_common.t ...................... skipped: You need to set the DBICTEST_PG_DSN, _USER, and _PASS environment variables 
t/10_04db2_common.t ..................... skipped: You need to set the DBICTEST_DB2_DSN, _USER, and _PASS environment variables 
t/10_05ora_common.t ..................... skipped: You need to set the DBICTEST_ORA_DSN, _USER, and _PASS environment variables 
t/10_06sybase_common.t .................. skipped: You need to set the DBICTEST_SYBASE_DSN, _USER, and _PASS environment variables 
t/10_07mssql_common.t ................... skipped: You need to set the DBICTEST_MSSQL_DSN, _USER and _PASS and /or the DBICTEST_MSSQL_ODBC_DSN, _USER and _PASS environment variables 
t/10_08sqlanywhere_common.t ............. skipped: You need to set the DBICTEST_SQLANYWHERE_DSN, _USER and _PASS and/or the DBICTEST_SQLANYWHERE_ODBC_DSN, _USER and _PASS environment variables 
t/10_09firebird_common.t ................ skipped: You need to set the DBICTEST_FIREBIRD_DSN, _USER and _PASS and/or the DBICTEST_FIREBIRD_INTERBASE_DSN and/or the DBICTEST_FIREBIRD_ODBC_DSN environment variables 
t/10_10informix_common.t ................ skipped: You need to set the DBICTEST_INFORMIX_DSN, _USER, and _PASS environment variables 
t/10_11msaccess_common.t ................ skipped: You need to set the DBICTEST_MSACCESS_ODBC_DSN, and optionally _USER and _PASS and/or the DBICTEST_MSACCESS_ADO_DSN, and optionally _USER and _PASS environment variables 
t/20invocations.t ....................... ok  
t/21misc_fatal.t ........................ ok 
t/22dump.t .............................. ok 
t/23dumpmore.t .......................... 1/? 
# Failed test 'DBICTest::Schema::_no_skip_load_external warning count' 
# at t/lib/dbixcsl_dumper_tests.pm line 176. 
#   got: '1' 
#  expected: '0' 
# stat(t/var/dump/DBICTest/Schema/_no_skip_load_external/Foo.pm): No such file or directory at .cpan/build/DBIx-Class-Schema-Loader-0.07035-Emrz71/blib/lib/DBIx/Class/Schema/Loader/Base.pm line 1370. 
t/23dumpmore.t .......................... 95/? make: *** wait: No child processes. Stop. 

UPDATE abraxxa으로

명령 줄을 설치합니다 :

icsl8684> perl -v 

This is perl 5, version 12, subversion 2 (v5.12.2) built for x86_64-linux 

또한 root 권한이 없기 때문에 local :: lib를 사용합니다. 테스트를 다시 실행하면 다시 실패합니다. 나는 내 $PATH을 변경 한

PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/backcompat/0.04006/*.t 
t/01use.t ............................... ok  
t/02pod.t ............................... ok  
t/10_01sqlite_common.t .................. 6/294 
# Failed test 'Correct number of warnings' 
# at t/lib/dbixcsl_common_tests.pm line 323. 
#   got: '10' 
#  expected: '9' 
# Column 'dbix_class_testcomponent' in table 'loader_test2' collides with an inherited method. 
# See "COLUMN ACCESSOR COLLISIONS" in perldoc DBIx::Class::Schema::Loader::Base . 
# Column 'dbix_class_testcomponentmap' in table 'loader_test2' collides with an inherited method. 

첫 번째 줄은

~/.perl/perl

대신 /usr/bin/perl을 사용하고 있습니다 : 그러나, 나는 펄 버전이 였는지를 설치 CPAN에서 변경된 것을 볼 수 없습니다 새로운 perl 버전을 사용하십시오. 실제로는 perl -v 라인을 참고하십시오.

나는 뭔가가 엉망이라고 느끼고 있습니다. 또한 cpan[5]> install Devel::DProf을 설치하려고했는데 다음 오류가 발생했습니다 : 모듈 Devel에 대해 ~/.cpan/build/Devel-DProf-20110802.00-cJFc6O/blib/arch/auto/Devel/DProf/DProf.so를로드 할 수 없습니다. :: DProf : ~/.cpan/build/Devel-DProf-20110802.00-cJFc6O/blib/arch/auto/Devel/DProf/DProf.so : 정의되지 않은 기호 : get_cvn_flags at /usr/lib/perl5/5.8.8/x86_64 -linux-thread-multi/DynaLoader.pm 230. dprof/test8_t 라인 0

알다시피, 내가 가지고있는 local :: lib 대신에/usr/lib /에서 DynaLoader를로드하려고합니다. .

+0

사용중인 DBI, DBD :: SQLite 및 DBIx :: Class의 OS, Perl 버전 및 모듈 버전을 추가하십시오. –

+0

유닉스를 사용하고 있습니다. Perl 버전 v5.8.5. DBI - 1.625. DBD :: SQLite - 1.37. DBIx :: Class - 0.08210. 감사! – Mattan

+0

유닉스 또는 리눅스? 당신이 오래된 Perl 버전을 사용하고 있기 때문에 당신은 Distro 's Perl을 사용한다고 가정합니다. prove -vl t/10_01sqlite_common.t를 사용하여 실패한 테스트 케이스를 실행하고 출력을 추가하십시오. –

답변

1

DBIx :: Class 관리자는 META 파일에 선언 된 Perl 5.8.1 버전과 하위 호환되도록 많은 노력을 기울이고 있습니다. DBD :: SQLite 또는 DBIx :: Class :: Schema :: Loader와 같은 다른 구성 요소가 특정 버전의 버그 (RedHat Enterprise Linux 4?)를 가지고있을 수 있습니다. DBIx :: Class의 문제 해결 문서 섹션도 있습니다 : Perl Performance Issues on Red Hat Systems

자신 만의 Perl을 설치하려면 perlbrew을 사용하는 것이 좋습니다. 루트 액세스가 필요 없어도 홈 디렉토리에 설치할 수 있습니다. 여러 버전의 완전히 다른 버전의 설치 (예 : 각 앱마다 하나씩)를 설치할 수도 있습니다.

+0

감사합니다. 도움이되지 않았습니다. 위의 업데이트 된 게시물을 참조하십시오. – Mattan

+0

내가 제안한 것처럼 왜 펄블류를 사용하지 않았습니까? 자신의 Perl을 설치했다면 local :: lib를 사용할 필요가 없습니다. 왜냐하면 자신의 @INC를 가지고 있기 때문입니다. perlbrew는 Perl 내부에 대한 지식이 없어도 모든 것을 매우 쉽게 만듭니다. –

+0

고맙습니다. 나는 perlbrew와 함께이 패키지를 성공적으로 설치했다. :) 그러나 나는 또 다른 문제에 직면했다. 나는 또 다른 질문을 할 것이다. 다시 한번 감사드립니다. – Mattan