App-lcpan-Manual
view release on metacpan or search on metacpan
lib/App/lcpan/Manual/Cookbook.pod view on Meta::CPAN
=head2 Listing distributions of other CPAN authors that depend on one of your modules [author]
% lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID
=head2 Listing distributions of other CPAN authors that recently depend on one of your modules [author]
# Show dependencies that were added in the last 2 weeks
% lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID --added-since '2 weeks ago'
# Show dependencies that were updated in the last 2 weeks
% lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID --updated-since '2 weeks ago'
# Show dependencies that were not present before your last 'lcpan update'
% lcpan author-rdeps YOUR-CPAN-ID --user-author-isnt YOUR-CPAN-ID --added-in-last-update
=head2 Showing what other distributions you will have to download and install when you install a module
TODO.
=head1 QUERYING DISTRIBUTIONS
lib/App/lcpan/Manual/Cookbook.pod view on Meta::CPAN
=head2 Finding out who (which script's or module's POD) mentions your script [author]
% lcpan mentions-for-script YOUR-SCRIPT
=head1 QUERYING MODULES
=head2 Comparing version of installed modules vs local CPAN versions
% lcpan ver-cmp-installed
% lcpan ver-cmp-installed --older-than-db ;# outdated modules (modules that need to be updated)
% lcpan ver-cmp-installed --older-than-db --exclude-core ;# noncore outdated modules (noncore modules that need to be updated)
The C<ver-cmp-installed> subcommand is distributed in
L<App::lcpan::CmdBundle::ver>.
This can also be done using tools like L<cpan-outdated> (from
L<App::cpanoutdated>) or L<cpan-outdated-coro> (from
L<App::cpanoutdated::coro>).
To update outdated modules:
% lcpan-ver-cmp-installed --older-than-db | td select module | lcpanm -n
L<td> is provided by L<App::td>.
=head2 Listing recent modules
# Show modules that were added in the last 2 weeks
% lcpan mods -l --added-since '2 weeks ago'
# Show modules that were updated in the last 2 weeks
% lcpan mods -l --updated-since '2 weeks ago'
# Show modules that were not present before the last 'lcpan update'
% lcpan mods -l --added-in-last-index-update
There's also C<lcpan whatsnew>.
=head2 Sampling some random modules (1.063+)
% lcpan mods --random --result-limit 100
% lcpan mods -l --random --result-limit 100
lib/App/lcpan/Manual/Tips.pod view on Meta::CPAN
=head1 VERSION
version 1.065.000
=head1 DESCRIPTION
=head2 Filtering result rows
Some subcommands offer filtering rows by some criteria, e.g. C<lcpan mods> allow
selecting only modules from a certain author (C<--author>) or recentness in the
index (C<--added-since>, C<--updated-since-last-index-update>, etc). But
sometimes a subcommand does not offer filtering options or you need to filter
based on some other criteria. There's a utility L<td> (from L<App::td>) which
allows you to filter/transform result rows easily.
Some examples:
# Show recently updated modules that are not released by PERLANCAR
% lcpan mods --updated-since-last-index-update -l | td grep '$_->{author} ne "PERLANCAR"' --page
# Show dependencies of App-lcpan to File::* modules
% lcpan deps App-lcpan | td grep '$_->{module} =~ /^File::/' --page
=head1 SEE ALSO
=head1 AUTHOR
perlancar <perlancar@cpan.org>
lib/App/lcpan/Manual/Tutorial/700_SettingUpADarkPAN.pod view on Meta::CPAN
you choose to use (e.g. L<Dist::Zilla>). The above command will make lcpan, via
L<OrePAN>, copy the file to the local CPAN mirror as well as modify
F<modules/02packages.details.txt.gz> to include the modules inside the
distribution.
B<However, the next 'lcpan update' will again remove your distribution from the
index as lcpan will synchronize to the remote CPAN index>. Either you never
update the CPAN mirror, or you re-inject your distributions after every 'lcpan
update'; both of which are not convenient. The future lcpan version will add a
pinning mechanism to retain your injected distribution and when that version is
released this page will be updated accordingly.
To start from an empty repository, you can use L<OrePAN>:
% mkdir -p /path/to/your/darkpan
% orepan.pl --destination=/path/to/your/darkpan --pause=YOURID /path/to/Your-Distribution-1.23.tar.gz
C<YOURID> is an arbitrary PAUSE-ID-like ID you can choose.
After that, to index this repository using lcpan, you can add these lines to
your lcpan configuration:
( run in 0.249 second using v1.01-cache-2.11-cpan-05444aca049 )