g-cpan -u VS cpan>upgrade

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

g-cpan -u VS cpan>upgrade

Alex Efros-4
Hi!

Today I've decided to try to switch from `cpan` to `g-cpan`.
I was pleasantly surprised - g-cpan have installed all ~300 perl modules I
need and just one module required manual .ebuild editing (Crypt-MatrixSSL).
I've successfully configured portage to use my local CPAN overlay, force
installing latests available versions for all modules, and run tests for
all perl modules - i.e. do exactly same what `cpan` do.

But I don't understood how to implement equivalent of `cpan>upgrade`:

1)  `g-cpan --cpan_reload` doesn't work at all:

        # g-cpan --cpan_reload
         * You haven't told g-cpan what to do.

        Please consult g-cpan --help or man g-cpan for more information

    This can be worked around by running `cpan>reload index`, but it's sad
    we can't use only `g-cpan` for all tasks and still need to run `cpan`.

2)  `g-cpan -u` works (after `cpan>reload index`), but it have nasty side
    effect by adding several modules (I've no idea why exactly these
    modules) into world file when it finish (no matter is it updated some
    modules or not):

        >>> Recording perl-gcpan/CPAN-Reporter in "world" favorites file...
        >>> Recording perl-gcpan/Devel-Autoflush in "world" favorites file...
        >>> Recording perl-gcpan/Filter-CommaEquals in "world" favorites file...
        >>> Recording perl-gcpan/IO-CaptureOutput in "world" favorites file...
        >>> Recording perl-gcpan/Log-Report in "world" favorites file...
        >>> Recording perl-gcpan/Test-Reporter in "world" favorites file...

3)  `g-cpan -u` will update only modules in perl-gcpan/* category, but how
    to automatically update modules in perl-core/* and dev-perl/*?
    And perl core modules which are in dev-lang/perl but don't have own
    perl-core/* package yet?
    Or only way is first run `cpan>r` to find possible updates and then
    manually add ebuilds for these modules into /usr/local/portage?

4)  How to protect against occasional overloading of newest perl core
    module installed with new dev-lang/perl version by older versions of
    same module installed by package perl-core/* or dev-perl/* or even
    perl-gcpan/* (last two cases possible for modules which wasn't
    included in previous dev-lang/perl versions)?

P.S. I'm using latest stable app-portage/g-cpan-0.16.2.

--
                        WBR, Alex.

Reply | Threaded
Open this post in threaded view
|

Re: g-cpan -u VS cpan>upgrade

Sergiy Borodych-2
Hello Alex,

2011/9/22 Alex Efros <[hidden email]>:

> Hi!
>
> Today I've decided to try to switch from `cpan` to `g-cpan`.
> I was pleasantly surprised - g-cpan have installed all ~300 perl modules I
> need and just one module required manual .ebuild editing (Crypt-MatrixSSL).
> I've successfully configured portage to use my local CPAN overlay, force
> installing latests available versions for all modules, and run tests for
> all perl modules - i.e. do exactly same what `cpan` do.
>
> But I don't understood how to implement equivalent of `cpan>upgrade`:
>
> 1)  `g-cpan --cpan_reload` doesn't work at all:
>
>        # g-cpan --cpan_reload
>         * You haven't told g-cpan what to do.
>
>        Please consult g-cpan --help or man g-cpan for more information
>
>    This can be worked around by running `cpan>reload index`, but it's sad
>    we can't use only `g-cpan` for all tasks and still need to run `cpan`.

This mode works for me fine. What versions of perl, cpan you use ?

>
> 2)  `g-cpan -u` works (after `cpan>reload index`), but it have nasty side
>    effect by adding several modules (I've no idea why exactly these
>    modules) into world file when it finish (no matter is it updated some
>    modules or not):
>
>        >>> Recording perl-gcpan/CPAN-Reporter in "world" favorites file...
>        >>> Recording perl-gcpan/Devel-Autoflush in "world" favorites file...
>        >>> Recording perl-gcpan/Filter-CommaEquals in "world" favorites file...
>        >>> Recording perl-gcpan/IO-CaptureOutput in "world" favorites file...
>        >>> Recording perl-gcpan/Log-Report in "world" favorites file...
>        >>> Recording perl-gcpan/Test-Reporter in "world" favorites file...
>
> 3)  `g-cpan -u` will update only modules in perl-gcpan/* category, but how
>    to automatically update modules in perl-core/* and dev-perl/*?
>    And perl core modules which are in dev-lang/perl but don't have own
>    perl-core/* package yet?
>    Or only way is first run `cpan>r` to find possible updates and then
>    manually add ebuilds for these modules into /usr/local/portage?

emerge do it for you. AFAIK g-cpan designed for update only custom cpan modules.

>
> 4)  How to protect against occasional overloading of newest perl core
>    module installed with new dev-lang/perl version by older versions of
>    same module installed by package perl-core/* or dev-perl/* or even
>    perl-gcpan/* (last two cases possible for modules which wasn't
>    included in previous dev-lang/perl versions)?
>
> P.S. I'm using latest stable app-portage/g-cpan-0.16.2.
>

Ah, see here you version. Try 0.16.4 - in this version fixed some your bugs.
Like
...
24 Jan 2011; Robin H. Johnson <[hidden email]> +g-cpan-0.16.4.ebuild:
  Bump. Bug #352561: Allow --cpan_reload without other arguments.
...

Unfortunately, recently, g-cpan not actively develops :(

--
Sergiy Borodych
http://bor.org.ua