Perl error, once and for all
Scott Haneda
talklists at newgeo.com
Thu Feb 26 04:28:46 PST 2009
On Feb 26, 2009, at 12:26 AM, Ryan Schmidt wrote:
> On Feb 26, 2009, at 02:20, Scott Haneda wrote:
>>> MacPorts operates under the assumption that exactly one port will
>>> provide a file at a given path. The combination of perl5.8 and
>>> whatever module it is that you were installing that wanted to
>>> install Test/Builder/Module.pm is in violation of that assumption.
>>> Sometimes this occurs because perl5.8 didn't used to include a
>>> particular module (hence a separate port was created) but now due
>>> to a version update perl5.8 does already include that module
>>> (making the separate port unnecessary). Sometimes the separate
>>> port may provide a newer version.
>>
>> Ok, so if I am getting this, perl5.8 has a module already installed
>> and the p5 I want to put is in also trying to put it in. This is
>> the core conflict?
>
> I believe that is correct, yes.
>
>> Which one do you chose is the issue?
>
> There are a few p5 ports that print messages advising users to force
> the activation of the p5 port. This would cause the p5 port's module
> to overwrite the perl5.8 port's module. The assumption is that the
> p5 port provides a newer version.
Probably a mostly safe assumption. But there will be those edge
cases. Newer is not always better and I would be willing to bet,
there are some newer modules that break backwards functionality. I
suppose that is the reason why this is not a simple issue to solve.
>> At the very least, let me chose, but the -f can force things to
>> happen even deeper down the chain, and it would be a bear to back
>> out of those.
>>
>>> I do not think we need to change the MacPorts error message from
>>> the one that is currently being printed. It is accurate.
>>
>> I agree, though we need to figure out how to make the message go
>> away.
>
> There is a ticket for this problem, I believe it has been mentioned
> earlier. I believe the possible fixes are 1) delete the p5 port for
> which a module is already included in the perl5.8 port;
And the repercussions of this being a module may or may not be newer,
either way, there is the chance of breaking something.
> 2) delete the module from the perl5.8 port so that the p5 port can
> provide it;
I think I interpret this as same issues as above.
> 3) integrate the p5 port's module into the perl5.8 port in the event
> that it is newer;
Also same issues as above.
> 4) make the p5 ports install modules into a separate location from
> where the perl5.8 port installs modules (the question then is how to
> make perl-using software see both sets of modules; I am not a perl
> expert so I do not know the answer).
I think you have to modify the module to "use lib" and supply a path.
If that is the case, this would be the best option, as getting rid of
the -f warning would then be on the port maintainer to solve.
Does anyone know how CPAN solves this?
--
Scott
* If you contact me off list replace talklists@ with scott@ *
More information about the macports-users
mailing list