doc: Update installation instructions for new shared libperl/libpython handling

This commit is contained in:
Peter Eisentraut 2015-05-05 14:41:39 -04:00
parent 3b6db1f445
commit 53f0965767
1 changed files with 19 additions and 42 deletions

View File

@ -169,32 +169,22 @@ su - postgres
also on most platforms. This appears to be the default in
recent <productname>Perl</productname> versions, but it was not
in earlier versions, and in any case it is the choice of whomever
installed Perl at your site.
installed Perl at your site. <filename>configure</filename> will fail
if building <application>PL/Perl</application> is selected but it cannot
find a shared <filename>libperl</filename>. In that case, you will have
to rebuild and install <productname>Perl</productname> manually to be
able to build <application>PL/Perl</application>. During the
configuration process for <productname>Perl</productname>, request a
shared library.
</para>
<para>
If you intend to make more than incidental use of
<application>PL/Perl</application>, you should ensure that the
<productname>Perl</productname> installation was built with the
<literal>usemultiplicity</> option enabled (<literal>perl -V</>
will show whether this is the case).
</para>
<para>
If you don't have the shared library but you need one, a message
like this will appear during the <productname>PostgreSQL</>
build to point out this fact:
<screen>
*** Cannot build PL/Perl because libperl is not a shared library.
*** You might have to rebuild your Perl installation. Refer to
*** the documentation for details.
</screen>
(If you don't follow the on-screen output you will merely notice
that the <application>PL/Perl</application> library object,
<filename>plperl.so</filename> or similar, will not be
installed.) If you see this, you will have to rebuild and
install <productname>Perl</productname> manually to be able to
build <application>PL/Perl</application>. During the
configuration process for <productname>Perl</productname>,
request a shared library.
</para>
</listitem>
<listitem>
@ -220,28 +210,15 @@ su - postgres
library, the <indexterm><primary>libpython</primary></indexterm>
<filename>libpython</filename> library must be a shared library
also on most platforms. This is not the case in a default
<productname>Python</productname> installation. If after
building and installing <productname>PostgreSQL</> you have a file called
<filename>plpython.so</filename> (possibly a different
extension), then everything went well. Otherwise you should
have seen a notice like this flying by:
<screen>
*** Cannot build PL/Python because libpython is not a shared library.
*** You might have to rebuild your Python installation. Refer to
*** the documentation for details.
</screen>
That means you have to rebuild (part of) your
<productname>Python</productname> installation to create this
shared library.
</para>
<para>
If you have problems, run <productname>Python</> 2.3 or later's
configure using the <literal>--enable-shared</> flag. On some
operating systems you don't have to build a shared library, but
you will have to convince the <productname>PostgreSQL</> build
system of this. Consult the <filename>Makefile</filename> in
the <filename>src/pl/plpython</filename> directory for details.
<productname>Python</productname> installation built from source, but a
shared library is available in many operating system
distributions. <filename>configure</filename> will fail if
building <application>PL/Python</application> is selected but it cannot
find a shared <filename>libpython</filename>. That might mean that you
either have to install additional packages or rebuild (part of) your
<productname>Python</productname> installation to provide this shared
library. When building from source, run <productname>Python</>'s
configure with the <literal>--enable-shared</> flag.
</para>
</listitem>