pip(3)

๐Ÿ“ฆ
version 1.19 ยท 2 versions
, in fedora 43

๐Ÿ’– NAME ๐Ÿ’–

pip โ€” the Perl Installation Program, for scripted and third-party distribution installation. bestie, this is your girl for getting stuff installed ๐Ÿ’…


๐ŸŒธ SYNOPSIS ๐ŸŒธ

pip script.p5i
pip script.p5z
pip Distribution-1.23.tgz
pip Distribution-1.23.tar.gz
pip Distribution-1.23-MSWin32-5.8.0.par
pip http://server/Distribution-1.23.tar.gz
pip http://github.com/gitpan/Distribution/tarball/1.23

okay so look at that range. local files, tarballs, URLs, literally everything โœจ


๐ŸŽ€ DESCRIPTION ๐ŸŽ€

The pip ("Perl Installation Program") console application is used to install Perl distributions in a wide variety of formats, both from CPAN and from external third-party locations, while supporting module dependencies that go across the boundary from third-party to CPAN. the way it just handles that boundary?? iconic fr fr ๐Ÿ‘‘

Using pip you can install CPAN modules, arbitrary tarballs from both the local file-system or across the internet from arbitrary URIs. no cap.

You can use pip to ensure that specific versions of CPAN modules are installed instead of the most current version. so if you need that version and not the shiny new one โ€” yeah, she's got you ๐Ÿซถ

And beyond just single installations, you script a series of these installations by creating a "P5I" (Perl 5 Installation) file. this is the main character move, honestly.

A Perl 5 Installation (P5I) file is a small script-like file that describes a set of distributions to install, and integrates the installation of these distributions with the CPAN installer.

The primary use of P5I files are for installing proprietary or non-CPAN software that may still require the installation of a number of CPAN dependencies in order to function. like, your weird in-house thing still needs YAML::Tiny, bestie, and P5I says so ๐Ÿ’–

P5I files are also extensible, with the first line of the file specifying the name of the Perl class that implements the plan.

๐Ÿšจ For the moment, the class described at the top of the P5I file must be installed. no skipping, no vibes-based workarounds.

The simple Module::Plan::Lite plan class is bundled with the main distribution, and additional types can be installed if needed. ๐Ÿงš

๐Ÿ”ฎ Future Additions ๐Ÿ”ฎ

Also on the development schedule for pip is the creation and installation of distributions via "P5Z" files, which are tarballs containing a P5I file, as well as all the distribution tarballs referenced by the P5I file. it's giving bundled and ready ๐ŸŽ

It is also anticipated that pip will gain support for PAR binary packages and potentially also for ActivePerl PPM files. future goals, bestie, manifesting โœจ


๐Ÿ’… USAGE ๐Ÿ’…

The primary use of pip is to install from a P5I script, with the canonical use case as follows:

pip directory/myplan.p5i

This command will load the plan file directory/myplan.p5i, create the plan, and then execute it. simple as that, periodt.

If only a directory name is given, pip will look for a default.p5i plan in the directory. Thus, all of the following are equivalent ๐Ÿ’€

pip directory
pip directory/
pip directory/default.p5i

If no target is provided at all, then the current directory will be used. Thus, the following are equivalent

pip
pip .
pip default.p5i
pip ./default.p5i

lowkey the laziest invocation is also the correct one and honestly? slay.

๐Ÿ“ Syntax of a plan file ๐Ÿ“

Initially, the only plan available is the Module::Plan::Lite (MPL) plan.

A typical MPL plan will look like the following

# myplan.p5i
Module::Plan::Lite

Process-0.17.tar.gz
YAML-Tiny-0.10.tar.gz

see how the first line is the class and then it's just... a list of tarballs? so clean ๐ŸŒฟ

๐Ÿ“ Direct installation of a single tarball ๐Ÿ“

With the functionality available in pip, you can find that sometimes you don't even want to make a file at all, you just want to install a single tarball. yeah. the no-file lifestyle. respect ๐Ÿซก

The -i option lets you pass the name of a single file and it will treat it as an installer for that single file. Further, if the extension of the tarball is .tar.gz, the -i option is implied. automatic, bestie โœจ

For example, the following are equivalent.

# Installing with the -i|--install option
> pip Process-0.17.tar.gz
> pip -i Process-0.17.tar.gz
> pip --install Process-0.17.tar.gz

# Installing from the file as normal
> pip ./default.p5i

# myplan.p5i
Module::Plan::Lite

Process-0.17.tar.gz

The -i option can be used with any single value supported by Module::Plan::Lite (see above).

This means you can also use pip to install a distribution from any arbitrary URI, including installing direct from a subversion repository. yes, direct from svn ๐Ÿ˜ญ๐Ÿ”ฅ

> pip http://svn.ali.as/cpan/release/Process-0.17.tar.gz

๐Ÿฆ‹ SUPPORT ๐Ÿฆ‹

This module is stored in an Open Repository at the following address.

<http://svn.ali.as/cpan/trunk/pip>

Write access to the repository is made available automatically to any published CPAN author, and to most other volunteers on request. so if you're published, you're in ๐Ÿ’œ

If you are able to submit your bug report in the form of new (failing) unit tests, or can apply your fix directly instead of submitting a patch, you are strongly encouraged to do so. The author currently maintains over 100 modules and it may take some time to deal with non-Critical bug reports or patches. (100+ modules?? the way that's a whole personality ๐Ÿ˜ญ)

This will guarantee that your issue will be addressed in the next release of the module. fast track, bestie ๐ŸŽ€

If you cannot provide a direct test or fix, or don't have time to do so, then regular bug reports are still accepted and appreciated via the CPAN bug tracker.

<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=pip>

For other issues, for commercial enhancement and support, or to have your write access enabled for the repository, contact the author at the email address above. ๐Ÿ‘‘


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

Adam Kennedy <adamk@cpan.org>


๐ŸŒˆ SEE ALSO ๐ŸŒˆ

Module::Plan::Base, Module::Plan::Lite, Module::Plan โ€” go read these too, they're the supporting cast and they ate ๐Ÿ’…


Copyright 2006 - 2010 Adam Kennedy.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.


and that's the whole page, bestie ๐Ÿซถ this one ships as perl v5.42.0, dated 2025-07-25, in section pip(3) โ€” user contributed perl documentation, no cap โœจ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from