summaryrefslogtreecommitdiffstats
path: root/upstream/debian-bookworm/man1/perllinux.1
blob: 0bd43006cced93932549af678b9ce0e9e7b86a30 (plain)
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
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "PERLLINUX 1"
.TH PERLLINUX 1 "2023-11-25" "perl v5.36.0" "Perl Programmers Reference Guide"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
perllinux \- Perl version 5 on Linux systems
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This document describes various features of Linux that will affect how Perl
version 5 (hereafter just Perl) is compiled and/or runs.
.SS "Deploying Perl on Linux"
.IX Subsection "Deploying Perl on Linux"
Normally one can install \fI/usr/bin/perl\fR on Linux using your distribution's
package manager (e.g: \f(CW\*(C`sudo apt\-get install perl\*(C'\fR, or
\&\f(CW\*(C`sudo dnf install perl\*(C'\fR). Note that sometimes one needs to install some
extra system packages in order to be able to use \s-1CPAN\s0 frontends, and that
messing with the system's perl is not always recommended. One can use
perlbrew <https://perlbrew.pl/> to avoid such issues.
.PP
Otherwise, perl should build fine on Linux using the mainstream compilers
\&\s-1GCC\s0 and clang, while following the usual instructions.
.SS "Experimental Support for Sun Studio Compilers for Linux \s-1OS\s0"
.IX Subsection "Experimental Support for Sun Studio Compilers for Linux OS"
Sun Microsystems has released a port of their Sun Studio compilers for
Linux.  As of May 2019, the last stable release took place on 2017, and one can
buy support contracts for them.
.PP
There are some special instructions for building Perl with Sun Studio on
Linux.  Following the normal \f(CW\*(C`Configure\*(C'\fR, you have to run make as follows:
.PP
.Vb 1
\&    LDLOADLIBS=\-lc make
.Ve
.PP
\&\f(CW\*(C`LDLOADLIBS\*(C'\fR is an environment variable used by the linker to link
\&\f(CW\*(C`/ext\*(C'\fR modules to glibc.  Currently, that environment variable is not getting
populated by a combination of \f(CW\*(C`Config\*(C'\fR entries and \f(CW\*(C`ExtUtil::MakeMaker\*(C'\fR.
While there may be a bug somewhere in Perl's configuration or
\&\f(CW\*(C`ExtUtil::MakeMaker\*(C'\fR causing the problem, the most likely cause is an
incomplete understanding of Sun Studio by this author.  Further investigation
is needed to get this working better.
.SH "AUTHOR"
.IX Header "AUTHOR"
Steve Peters <steve@fisharerojo.org>
.PP
Please report any errors, updates, or suggestions to
<https://github.com/Perl/perl5/issues>.