On Sat, Apr 13, 2013 at 10:02 PM, Daniel Johnson
<daniel.johnso...@gmail.com> wrote:
>
> On Apr 13, 2013, at 9:32 PM, "Daniel Macks" <dma...@netspace.org> wrote:
>
>> On Sat, 13 Apr 2013 15:24:53 -0700, Alexander Hansen
>> <alexanderk.han...@gmail.com> wrote:
>> On 4/13/13 3:08 PM, Bill Waggoner wrote:
>>>> I have been trying to install/upgrade some perl modules using CPAN.
>>>> But it appears that fink and CPAN are working at cross purposes and,
>>>> perhaps, I am trying to do something that can't/shouldn't be done ...
>>>>
>>>> The trouble I am running up against is a dependency problem between
>>>> ExtUtils::MakeMaker and Pod::Man (podlator).  The version in Fink are,
>>>> respectively, 6.62 and 2.4.2; several CPAN modules need MakeMaker at
>>>> 6.64 which requires Pod::Man (podlator module actually) at 2.5.1.
>>>>
>>>> When I try to install either in CPAN I get the circular dependency
>>>> problem.  I tried a manual install which completed but didn't seem to
>>>> install in the right place. Or, at least, into a place the CPAN sees.
>>>>
>>>> Am I crazy to try to use CPAN while using fink?
>>>>
>>>> Any advice would be appreciated.
>>>
>>> Yeah, mixing packaging systems is never guaranteed to be reliable.  I
>>> assume this is for the system's Perl?
>>>
>>> Fink doesn't really care so much about what you have installed via
>>> CPAN, since it just relies on the listed dependencies.  You might try
>>> unsetting PERL5LIB before you do a CPAN install so that
>>> Fink-installed modules aren't visible.  Or, similarly, if your manual
>>> install location isn't in the default lookup path, add that to
>>> PERL5LIB.
>>
>> Alex is right, fink does not look at what's on your actual system at
>> all, rather it reads its own database of what it has installed itself.
>> CPAN does look at the live system, but obviously is sentitive to having
>> fink's PERL5LIB settings if you want it to use fink-supplied
>> dependencies. And depending how you are running perl itself, fink might
>> not have the right perlversion and arch settings (things could be
>> present on disk but not usable). If you have things in fink that are
>> out-of-date, the easiest way to get newer versions is to update the
>> packages themselves (avoids making anything more complicated than it
>> already is:) I'm the maintainer of podlators and just pushed the
>> update; I also left a note for the maintainer of ExtUtils::MakeMaker
>> about it. A few of the perlmod maintainers are active, and a few of us
>> also are ghost-writers for others' packages (where we know the
>> maintainers themselves are AWOL or explicitly told us it's okay to
>> handle them).
>>
>> dan
>>
>
> I just updated extutils-makemaker-pm to 6.64.
>
> Daniel
>
>

I _think_ I understand where Fink is coming from and I wouldn't break
it for the world; I depend upon it.  And I'm less sure I understand
where CPAN is too although I have gotten some conflicting answers from
it today, that's for sure.

But the quandary is that CPAN contains MUCH more than what Fink will
ever supply and so I need to use both, in a non-destructive and
hopefully seamless way.  My earlier testing today told me that this
wasn't as simple as using both at the same time.  Not unexpected now
that I see what's what in hindsight.

So, what I did was trash (moved aside actually) my .cpan directory and
started over.  During the fresh startup of cpan I selected a verbose
config process and selected the "local::lib" option among other
things.  I think this is the key option for what I want to do.

This created a perl5 directory in my $HOME with lib, lib/perl5, bin,
and man under it.  It also added some lines to my .zshrc and reminded
me to restart the shell.

I moved the added export commands to .zprofile so that they were set
after /sw/bin/init.sh is run.  The commands were:

export PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/Users/dad/perl5";
export PERL_MB_OPT="--install_base /Users/dad/perl5";
export PERL_MM_OPT="INSTALL_BASE=/Users/dad/perl5";
export PERL5LIB="/Users/dad/perl5/lib/perl5:$PERL5LIB";
export MANPATH="/Users/dad/perl5/man:$MANPATH";
export PATH="/Users/dad/perl5/bin:$PATH";

NOTE!  The MANPATH was NOT set by cpan config, tsk! tsk!, but I added it.

So far all is well.  I've used CPAN to upgrade or install several
modules and they installed properly under ~/perl5, now let me see when
I update the Fink modules that you all just updated ... stand by ...

Looking good.

It looks like Fink installs in the /sw tree and cpan installs in
~/perl5 and both coexist OK so far.  cpan "sees" the Pod::Man in the
/sw tree OK.  But, I believe, it would install a newer version in
~/perl5.

Extutils::MakeMaker is now version 6.64 in ~perl5 where I upgraded it
prior to the Fink upgrade and 6.64 in all three Fink perl5 libs.  It
is 6.56 in the /sw/lib/perl5-core/5.12.3 library but I think that's
OK.

I suppose there could be a conflict where cpan installed a newer
version that could break fink but I think that would be unlikely.  As
the install would be outside of the /sw tree it would be an easy
remedy.

So I think I have a good solution.  And cpan doesn't run as root at
all now which makes me think it can't step on anything Finkish or if
it tries then I'll hear about it.  The downside is that the installs
are local to my userid but that's OK for me as I am the only likely
user.  And, of course, I can carry my ~/perl5 library along with me to
the next OSX release.  Otherwise Apple might very well step all over
it if it was in /System/Library or /Library which is how it was with
the "stock" cpan config.

This has been fun.

Color me happy for now.

Bill W

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Fink-users mailing list
Fink-users@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.macosx.fink.user
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-users

Reply via email to