-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
126 lines (85 loc) · 4.25 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
NAME
pll - Create local::lib environment for Perl
SYNOPSIS
pll [--notest] /path/to/environment
DESCRIPTION
Pll is yet another virtualenv (<http://pypi.python.org/pypi/virtualenv>)
alike tool for Perl. It is used to create isolated Perl environments
with the help of the local::lib module
(<http://search.cpan.org/dist/local-lib/lib/local/lib.pm>).
Features
It is a plain Bourne shell script.
The created Perl environment contains the local::lib module and
App::cpanminus' cpanm(1) script
(<http://search.cpan.org/dist/App-cpanminus/bin/cpanm>).
In each Perl environment created, it installs wrapper scripts bin/perl,
bin/perldoc, bin/cpanm so that the commands they wrap use the isolated
Perl environment via local::lib.
To ease the use of each Perl environment created, it installs the
bin/activate.sh Bourne shell script. This script can be sourced to set
the required environment variables. Similarly, the installed
bin/deactivate.sh Bourne shell script can be sourced to restore the
environment variables set by the former script. See local::lib
documentation for details.
Creation of an isolated Perl environment
To create an isolated Perl environment, simply run a command like
$ ./pll /path/to/environment
The pll script needs an absolute pathname on a perl(1) executable. It
defaults to /usr/bin/perl and can be specified with the PERL environment
variable as follows:
$ env PERL=/usr/local/bin/perl ./pll /path/to/environment
If a pathname in which to create the environment is not specified as
argument, it defaults to ${HOME}/perl5/local-V, where "V" is the used
perl command's version.
The local::lib module is installed in /path/to/environment/lib/... and
scripts in /path/to/environment/bin.
The local::lib module and its required modules, if any, are installed
with the help of the cpanm script. The test of all these modules are run
by cpanm during installation and any failure stops the installation. If
needed the tests can be ignored by specifying the --notest argument.
About the bin/perl wrapper
In an isolated Perl environment the bin/perl script behavior's differs
somewhat from the perl(1) command it wraps.
Without argument the bin/perl wrapper script outputs useful shell
commands to run to setup the isolated Perl environment. See local::lib
documentation for details.
If it is really needed to have the wrapped perl command running program
from its standard input one of the following commands can be used, as
appropriate:
$ /path/to/environment/bin/perl /dev/stdin
$ /path/to/environment/bin/perl /dev/tty
USAGE EXAMPLES
* To create a new Perl environment in /tmp/p
$ ./pll /tmp/p
* To install Catalyst::Devel in the /tmp/p environment just created
$ /tmp/p/bin/cpanm Catalyst::Devel
* To run installed catalyst.pl script just installed
$ /tmp/p/bin/perl /tmp/p/bin/catalyst.pl
* To setup the current shell session to use the environment created
earlier
$ . /tmp/p/bin/activate.sh
$ catalyst.pl
...
$ type perl
perl is /tmp/p/bin/perl
$
* To create a new Perl environment in /tmp/p2 with a specific Perl
$ env PERL=/usr/local/bin/perl ./pll /tmp/p2
INSTALLATION ONE-LINERS
Various way to install Perl environments while downloading the pll
script from GitHub.
* Download with curl, install in default location
$ curl -kL https://raw.github.com/stoned/pll/master/pll | sh
* Download with curl, install in a specific location
$ curl -kL https://raw.github.com/stoned/pll/master/pll | sh -- /dev/stdin /tmp/p
* Download with wget, install in a specific location
$ wget --no-check-certificate -O - https://raw.github.com/stoned/pll/master/pll | sh -- /dev/stdin /tmp/p
* Download with curl, install in a specific location with a specific
Perl
$ curl -kL https://raw.github.com/stoned/pll/master/pll | env PERL=/usr/pkg/bin/perl sh -- /dev/stdin /tmp/p
SEE ALSO
<https://github.com/markpasc/localenv>,
<http://terrarum.net/development/perl-virtual-environments.html>,
local::lib, App::cpanminus
AUTHOR
Stoned Elipot