Subject: | Required newer versions of dependent packages are not pulled in if old versions exist |
This is a critical issue IMO. I ran into it while installing the latest
DBIx::Class and having SQL::Abstract 1.51 installed. DBIx::Class
requires SQL::Abstract 1.56, and with an older version, it will fail
many tests:
C:\> cpan DBIx::Class
Database was generated on Tue, 16 Jun 2009 23:35:23 GMT
Running install for module 'DBIx::Class'
Running make for R/RI/RIBASUSHI/DBIx-Class-0.08107.tar.gz
Checksum for
C:\strawberry\cpan\sources\authors\id\R\RI\RIBASUSHI\DBIx-Class-0.08107.tar.gz
ok
CPAN.pm: Going to build R/RI/RIBASUSHI/DBIx-Class-0.08107.tar.gz
*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
*** Since we're running under CPAN, I'll just let it take care
of the dependency's installation later.
[Core Features]
[...]
- SQL::Abstract ...too old. (1.51 < 1.56)
[...]
*** Module::AutoInstall configuration finished.
Checking if your kit is complete...
Looks good
Warning: prerequisite SQL::Abstract 1.56 not found. We have 1.51.
Writing Makefile for DBIx::Class
(c:\strawberry\perl\bin\perl.exe Makefile.PL exited with 0)
CPAN::Reporter: Makefile.PL result is 'pass', No errors.
At this point, the installation proceeds without upgrading SQL::Abstract.
After removing CPAN::SQLite, CPAN will pull in SQL::Abstract 1.56:
C:\> cpan DBIx::Class
CPAN::SQLite not installed, trying to work without
Going to read C:\strawberry\cpan\sources\authors\01mailrc.txt.gz
............................................................................DONE
Going to read C:\strawberry\cpan\sources\modules\02packages.details.txt.gz
Database was generated on Tue, 16 Jun 2009 22:26:58 GMT
...............
New CPAN.pm version (v1.94) available.
[Currently running version is v1.9301]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving
the current session.
.............................................................DONE
Going to read C:\strawberry\cpan\sources\modules\03modlist.data.gz
............................................................................DONE
Running install for module 'DBIx::Class'
Running make for R/RI/RIBASUSHI/DBIx-Class-0.08107.tar.gz
Checksum for
C:\strawberry\cpan\sources\authors\id\R\RI\RIBASUSHI\DBIx-Class-0.08107.tar.gz
ok
CPAN.pm: Going to build R/RI/RIBASUSHI/DBIx-Class-0.08107.tar.gz
*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
*** Since we're running under CPAN, I'll just let it take care
of the dependency's installation later.
[Core Features]
[...]
- SQL::Abstract ...too old. (1.51 < 1.56)
[...]
*** Module::AutoInstall configuration finished.
Checking if your kit is complete...
Looks good
Warning: prerequisite SQL::Abstract 1.56 not found. We have 1.51.
Writing Makefile for DBIx::Class
(c:\strawberry\perl\bin\perl.exe Makefile.PL exited with 0)
CPAN::Reporter: Makefile.PL result is 'pass', No errors.
Show quoted text
---- Unsatisfied dependencies detected during ----
---- RIBASUSHI/DBIx-Class-0.08107.tar.gz ----
SQL::Abstract [requires]
Running make test
Delayed until after prerequisites
Running make install
Delayed until after prerequisites
Running install for module 'SQL::Abstract'
Running make for R/RI/RIBASUSHI/SQL-Abstract-1.56.tar.gz
The issue is especially hurtful with Strawberry perl, which makes
CPAN::SQLite the default.