App-cpanminus
view release on metacpan or search on metacpan
[Improvements]
- Remove MakeMaker and Module::Build from cpanm's runtime dependencies. Rather it will upgrade
the minimum version requirement as it finds distributions that uses them in configure
requirements. Also, they will be installed with 'notest' option for now, since Module::Build
test suite takes a bit too long time.
1.7032 2015-04-29 18:51:36 PDT
[Improvements]
- Prefer to use cpanmetadb's package history API for pinning versions. Note that it only
works against versions since April 2012. You can set `--metacpan` to still prefer MetaCPAN
API search, and can use `--cascade-search` to fallback to MetaCPAN after CPAN MetaDB as well.
1.7031 2015-04-22 14:13:37 PDT
[Bug Fixes]
- Fixed a rare case where circular dependencies in cpanfile prevents satisfying modules from
being installed. (#452)
[Improvements]
- Stop reporting perl versions by default if running under certain CI related env vars.
1.7030 2015-04-19 14:15:34 CEST
- Better cpanfile end-to-end support
- Upgraded fatpacked modules to the latest
1.5021 Thu Jan 31 00:42:28 PST 2013
[Improvements]
- Added new --verify option that enables verifying CHECKSUM and SIGNATURE for distributions
from CPAN/PAUSE
1.5020 Tue Jan 29 10:29:08 PST 2013
[Bug Fixes]
- Fixed a bug in --cascade-search that was checking a wrong version from 02packages file (Bryce Baril)
- Added a workaround for older version of File::Temp bug (kentnl)
1.5019 Sun Dec 23 02:19:45 JST 2012
[Bug Fixes]
- Fixes a bug where --installdeps fail to configure dependencies with cpanfile (hoelzro)
[Improvements]
- Cleaned up unused code
- Added documentation about --mirror option and local file path
- Fixed some merge mess with devel
1.5014 Tue Jun 12 18:27:02 PDT 2012
[Improvements]
- Make sure 'f' flag becomes the last for some tar versions (mst, aaronsw)
- Fixed warnings on perl 5.17+ (rjbs)
- Fix local::lib error message (berekuk)
1.5013 Sat May 12 06:15:44 EEST 2012
[Bug Fixes]
- Fixed --cascade-search to seach for missing modules, which was broken by #150
1.5012 Fri May 11 05:47:56 CEST 2012
[Improvements]
- Change the behavior of --mirror-index so that it won't fallback to CPAN mirrors #150 (thaljef)
- Support v-strings in versions specified install [https://github.com/miyagawa/carton/issues/48]
1.5011 Thu Apr 12 18:57:06 JST 2012
[Improvements]
- Point default mirror to www.cpan.org #148
1.5001 Fri Oct 14 00:18:33 JST 2011
[New Features]
- Added EXPERIMENTAL --metacpan support (tokuhirom)
[Improvements]
- Do not scan Makefile if MYMETA.yml is found
- Support MYMETA.json with spec 2.0
1.5000 Thu Oct 13 15:31:13 JST 2011
[New Features]
- Added EXPERIMENTAL --mirror-index, --skip-satisfied and --cascade-search options
- Installs MYMETA.json and install.json into $ARCH/.meta library path
[Bug Fixes]
- Use Cwd::chdir to update CWD environment variable
- Fix ExtUtils::ParseXS issue with -L
- Fix CoreList bootstrap issue with perl < 5.8.9 when using -L
- Dump more descriptive error message when configure failed with --installdeps #111
[Improvements]
- Upgraded many fatlib embedded modules
$fatpacked{"App/cpanminus.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS';
package App::cpanminus;our$VERSION="1.7048";1;
APP_CPANMINUS
$fatpacked{"App/cpanminus/Dependency.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_DEPENDENCY';
package App::cpanminus::Dependency;use strict;use CPAN::Meta::Requirements;sub from_prereqs {my($class,$prereqs,$phases,$types)=@_;my@deps;for my$type (@$types){push@deps,$class->from_versions($prereqs->merged_requirements($phases,[$type])->as_stri...
APP_CPANMINUS_DEPENDENCY
$fatpacked{"App/cpanminus/script.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_SCRIPT';
package App::cpanminus::script;use strict;use Config;use Cwd ();use App::cpanminus;use App::cpanminus::Dependency;use File::Basename ();use File::Find ();use File::Path ();use File::Spec ();use File::Copy ();use File::Temp ();use Getopt::Long ();us...
It appears your cpanm executable was installed via `perlbrew install-cpanm`.
cpanm --self-upgrade won't upgrade the version of cpanm you're running.
Run the following command to get it upgraded.
perlbrew install-cpanm
DIE
You are running cpanm from the path where your current perl won't install executables to.
Because of that, cpanm --self-upgrade won't upgrade the version of cpanm you're running.
If you enable local::lib, it only removes files from the local::lib
directory.
If you try to uninstall a module in C<perl> directory (i.e. core
module), an error will be thrown.
A dialog will be prompted to confirm the files to be deleted. If you pass
C<-f> option as well, the dialog will be skipped and uninstallation
will be forced.
=item --cascade-search
B<EXPERIMENTAL>: Specifies whether to cascade search when you specify
multiple mirrors and a mirror doesn't have a module or has a lower
version of the module than requested. Defaults to false.
=item --skip-installed
Specifies whether a module given in the command line is skipped if its latest
version is already installed. Defaults to true.
B<NOTE>: The C<PERL5LIB> environment variable have to be correctly set
for this to work with modules installed using L<local::lib>, unless
lib/App/cpanminus/fatscript.pm view on Meta::CPAN
'self-contained!' => \$self->{self_contained},
'exclude-vendor!' => \$self->{exclude_vendor},
'mirror=s@' => $self->{mirrors},
'mirror-only!' => \$self->{mirror_only},
'mirror-index=s' => sub { $self->{mirror_index} = $self->maybe_abs($_[1]) },
'M|from=s' => sub {
$self->{mirrors} = [$_[1]];
$self->{mirror_only} = 1;
},
'cpanmetadb=s' => \$self->{cpanmetadb},
'cascade-search!' => \$self->{cascade_search},
'prompt!' => \$self->{prompt},
'installdeps' => \$self->{installdeps},
'skip-installed!' => \$self->{skip_installed},
'skip-satisfied!' => \$self->{skip_satisfied},
'reinstall' => sub { $self->{skip_installed} = 0 },
'interactive!' => \$self->{interactive},
'i|install' => sub { $self->{cmd} = 'install' },
'info' => sub { $self->{cmd} = 'info' },
'look' => sub { $self->{cmd} = 'look'; $self->{skip_installed} = 0 },
'U|uninstall' => sub { $self->{cmd} = 'uninstall' },
lib/App/cpanminus/fatscript.pm view on Meta::CPAN
open my $fh, '<', $file or return;
my $found;
while (<$fh>) {
if (m!^\Q$module\E\s+([\w\.]+)\s+(\S*)!m) {
$found = $self->cpan_module($module, $2, $1);
last;
}
}
return $found unless $self->{cascade_search};
if ($found) {
if ($self->satisfy_version($module, $found->{module_version}, $version)) {
return $found;
} else {
$self->chat("Found $module $found->{module_version} which doesn't satisfy $version.\n");
}
}
return;
lib/App/cpanminus/fatscript.pm view on Meta::CPAN
sub search_module {
my($self, $module, $version) = @_;
if ($self->{mirror_index}) {
$self->mask_output( chat => "Searching $module on mirror index $self->{mirror_index} ...\n" );
my $pkg = $self->search_mirror_index_file($self->{mirror_index}, $module, $version);
return $pkg if $pkg;
unless ($self->{cascade_search}) {
$self->mask_output( diag_fail => "Finding $module ($version) on mirror index $self->{mirror_index} failed." );
return;
}
}
unless ($self->{mirror_only}) {
my $found = $self->search_database($module, $version);
return $found if $found;
}
lib/App/cpanminus/fatscript.pm view on Meta::CPAN
This module was extracted from L<local::lib|local::lib>'s --self-contained
feature, and contains the only part that ever worked. I apologise to anybody
who thought anything else did.
=head1 CAVEATS
This does B<not> propagate properly across perl invocations like local::lib's
stuff does. It can't. It's only a module import, so it B<only affects the
specific perl VM instance in which you load and import() it>.
If you want to cascade it across invocations, you can set the PERL5OPT
environment variable to '-Mlib::core::only' and it'll sort of work. But be
aware that taint mode ignores this, so some modules' build and test code
probably will as well.
You also need to be aware that perl's command line options are not processed
in order - -I options take effect before -M options, so
perl -Mlib::core::only -Ilib
is unlike to do what you want - it's exactly equivalent to:
lib/App/cpanminus/fatscript.pm view on Meta::CPAN
If you enable local::lib, it only removes files from the local::lib
directory.
If you try to uninstall a module in C<perl> directory (i.e. core
module), an error will be thrown.
A dialog will be prompted to confirm the files to be deleted. If you pass
C<-f> option as well, the dialog will be skipped and uninstallation
will be forced.
=item --cascade-search
B<EXPERIMENTAL>: Specifies whether to cascade search when you specify
multiple mirrors and a mirror doesn't have a module or has a lower
version of the module than requested. Defaults to false.
=item --skip-installed
Specifies whether a module given in the command line is skipped if its latest
version is already installed. Defaults to true.
B<NOTE>: The C<PERL5LIB> environment variable have to be correctly set
for this to work with modules installed using L<local::lib>, unless
( run in 0.485 second using v1.01-cache-2.11-cpan-49f99fa48dc )