perl
view release on metacpan or search on metacpan
library directory structure is slightly simplified. Instead of
suggesting $prefix/lib/perl5/, Configure will suggest $prefix/lib.
Thus, for example, if you Configure with
-Dprefix=/opt/perl, then the default library directories for 5.9.0 are
Configure variable Default value
$privlib /opt/perl/lib/5.9.0
$archlib /opt/perl/lib/5.9.0/$archname
$sitelib /opt/perl/lib/site_perl/5.9.0
$sitearch /opt/perl/lib/site_perl/5.9.0/$archname
=head2 Changing the installation directory
Configure distinguishes between the directory in which perl (and its
associated files) should be installed, and the directory in which it
will eventually reside. For most sites, these two are the same; for
sites that use AFS, this distinction is handled automatically.
However, sites that use package management software such as rpm or
dpkg, or users building binary packages for distribution may also
wish to install perl into a different directory before moving perl
to its final destination. There are two ways to do that:
=over 4
=item installprefix
To install perl under the /tmp/perl5 directory, use the following
command line:
sh Configure -Dinstallprefix=/tmp/perl5
(replace /tmp/perl5 by a directory of your choice).
Beware, though, that if you go to try to install new add-on
modules, they too will get installed in under '/tmp/perl5' if you
follow this example. That's why it's usually better to use DESTDIR,
as shown in the next section.
=item DESTDIR
If you need to install perl on many identical systems, it is convenient
to compile it once and create an archive that can be installed on
multiple systems. Suppose, for example, that you want to create an
archive that can be installed in /opt/perl. One way to do that is by
using the DESTDIR variable during C<make install>. The DESTDIR is
automatically prepended to all the installation paths. Thus you
simply do:
sh Configure -Dprefix=/opt/perl -des
make
make test
make install DESTDIR=/tmp/perl5
cd /tmp/perl5/opt/perl
tar cvf /tmp/perl5-archive.tar .
=back
=head2 Relocatable @INC
To create a relocatable perl tree, use the following command line:
sh Configure -Duserelocatableinc
Then the paths in @INC (and everything else in %Config) can be
optionally located via the path of the perl executable.
That means that, if the string ".../" is found at the start of any
path, it's substituted with the directory of $^X. So, the relocation
can be configured on a per-directory basis, although the default with
"-Duserelocatableinc" is that everything is relocated. The initial
install is done to the original configured prefix.
This option is not compatible with the building of a shared libperl
("-Duseshrplib"), because in that case perl is linked with an hard-coded
rpath that points at the libperl.so, that cannot be relocated.
=head2 Site-wide Policy settings
After Configure runs, it stores a number of common site-wide "policy"
answers (such as installation directories) in the Policy.sh file.
If you want to build perl on another system using the same policy
defaults, simply copy the Policy.sh file to the new system's perl build
directory, and Configure will use it. This will work even if Policy.sh was
generated for another version of Perl, or on a system with a
different architecture and/or operating system. However, in such cases,
you should review the contents of the file before using it: for
example, your new target may not keep its man pages in the same place
as the system on which the file was generated.
Alternatively, if you wish to change some or all of those policy
answers, you should
rm -f Policy.sh
to ensure that Configure doesn't re-use them.
Further information is in the Policy_sh.SH file itself.
If the generated Policy.sh file is unsuitable, you may freely edit it
to contain any valid shell commands. It will be run just after the
platform-specific hints files.
=head2 Disabling older versions of Perl
Configure will search for binary compatible versions of previously
installed perl binaries in the tree that is specified as target tree,
and these will be used as locations to search for modules by the perl
being built. The list of perl versions found will be put in the Configure
variable inc_version_list.
To disable this use of older perl modules, even completely valid pure
perl modules, you can specify to not include the paths found:
sh Configure -Dinc_version_list=none ...
If you do want to use modules from some previous perl versions, the
variable must contain a space separated list of directories under the
site_perl directory, and has to include architecture-dependent
directories separately, eg.
sh Configure -Dinc_version_list="5.16.0/x86_64-linux 5.16.0" ...
When using the newer perl, you can add these paths again in the
PERL5LIB environment variable or with perl's -I runtime option.
=head2 Building Perl outside of the source directory
Sometimes it is desirable to build Perl in a directory different from
where the sources are, for example if you want to keep your sources
read-only, or if you want to share the sources between different binary
architectures. You can do this (if your file system supports symbolic
links) by
mkdir /tmp/perl/build/directory
cd /tmp/perl/build/directory
( run in 0.723 second using v1.01-cache-2.11-cpan-5511b514fd6 )