Code Monkey home page Code Monkey logo

app-migratemodules's Introduction

NAME

perl-migrate-modules - Migrate installed CPAN modules from one Perl to another

SYNOPSIS

perl-migrate-modules [OPTIONS] [<src-perl>] <dest-perl>

  perl-migrate-modules /path/to/perl-5.28.0 /path/to/perl-5.28.1
  perl-migrate-modules -nq -Ilib /usr/bin/perl ~/bin/perl
  perl-migrate-modules --from ~/perl5/lib/perl5 ~/perls/5.20.0

Options:
  -c, --include-core           Install core modules from source Perl
  -h, --help                   Show this message
  -f <path>, --from=<path>     Search only these path(s) for source modules
  -I <path>, --lib=<path>      Additional search path(s) for source modules
  -n, --notest                 Skip testing and test dependencies
  -q, --quiet                  Show only installation successes and failures
  -v, --version                Show the version of this script

DESCRIPTION

Reinstalls all modules found in the source Perl into the destination Perl, similar to the clone-modules command for perlbrew or the migrate-modules command for plenv. The Perls may be passed as paths to the base installation directory or paths to the perl executable itself. If only one path is passed, it will be used as both the source and destination, but the search and install paths can be influenced.

Modules are found in the source Perl's standard @INC search paths by default. To specify additional search paths, such as local::lib directories, use the -I/--lib option. To specify search paths to use and omit the standard search paths, use the -f/--from option.

Modules are installed to the destination Perl using cpanm. To influence the install location, activate a local::lib in your environment, or use the standard Perl and cpanm environment variables, such as "PERL_MM_OPT" in ExtUtils::MakeMaker, "PERL_MB_OPT" in Module::Build, and "PERL_CPANM_OPT" in cpanm.

EXAMPLES

  • Basic migration of modules to a newly installed Perl from an existing one:

    $ perl-migrate-modules /opt/perl-5.20.3 /opt/perl-5.22.0
  • Migrate modules from an old (inactive) local::lib directory, using /usr/bin/perl both to find source modules and to install:

    $ perl-migrate-modules --from ~/perl5-old/lib/perl5 /usr/bin/perl
  • Migrate modules from the sitelib of a Perl that can no longer be executed, using the active Perl executable both to find source modules and to install:

    $ perl-migrate-modules --from ~/.plenv/versions/5.24.0/lib/perl5/site_perl/5.24.0/ $(which perl)
  • Migrate modules to a custom local::lib location, using /opt/perl-5.28.0 to find modules within its search paths and using /opt/perl-5.28.1 to install to /opt/project/local:

    $ env PERL_CPANM_OPT='-l /opt/project/local' perl-migrate-modules /opt/perl-5.28.0 /opt/perl-5.28.1
  • Update all modules installed in the active Perl:

    $ perl-migrate-modules --include-core $(which perl)

CAVEATS

Only modules with .packlist will be migrated, this will include any module installed by CPAN clients, but generally not modules installed by vendor packages or core modules. Core modules available from CPAN can be included via Module::CoreList with the --include-core option.

Migrated modules will be installed at their latest indexed version, not the existing version when found.

Any environment settings that affect Perl's library search and module install locations, such as PERL5LIB or an active local::lib, will be ignored while searching for modules with the source Perl but will have their normal effect on installation into the destination Perl.

BUGS

Report any issues on the public bugtracker.

AUTHOR

Dan Book <[email protected]>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2018 by Dan Book.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

SEE ALSO

"COMMAND: CLONE-MODULES" in perlbrew

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.