📄 installation.sgml
字号:
to select a non-default value is if you intend to run multiple <productname>PostgreSQL</> servers on the same machine. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-perl</option></term> <listitem> <para> Build the PL/Perl server-side language. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-python</option></term> <listitem> <para> Build the PL/Python server-side language. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-tcl</option></term> <listitem> <para> Build components that require Tcl/Tk, which are <application>libpgtcl</>, <application>pgtclsh</>, <application>pgtksh</application>, and <application>PL/Tcl</>. But see below about <option>--without-tk</>. </para> </listitem> </varlistentry> <varlistentry> <term><option>--without-tk</option></term> <listitem> <para> If you specify <option>--with-tcl</> and this option, then the program that requires <productname>Tk</> (<application>pgtksh</>) will be excluded. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-tclconfig=<replaceable>DIRECTORY</replaceable></option></term> <term><option>--with-tkconfig=<replaceable>DIRECTORY</replaceable></option></term> <listitem> <para> Tcl/Tk installs the files <filename>tclConfig.sh</filename> and <filename>tkConfig.sh</filename>, which contain configuration information needed to build modules interfacing to Tcl or Tk. These files are normally found automatically at their well-known locations, but if you want to use a different version of Tcl or Tk you can specify the directory in which to find them. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-java</option></term> <listitem> <para> Build the <acronym>JDBC</acronym> driver and associated Java packages. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-krb4<optional>=<replaceable>DIRECTORY</></></option></term> <term><option>--with-krb5<optional>=<replaceable>DIRECTORY</></></option></term> <listitem> <para> Build with support for Kerberos authentication. You can use either Kerberos version 4 or 5, but not both. The <replaceable>DIRECTORY</> argument specifies the root directory of the Kerberos installation; <filename>/usr/athena</> is assumed as default. If the relevant header files and libraries are not under a common parent directory, then you must use the <option>--with-includes</> and <option>--with-libraries</> options in addition to this option. If, on the other hand, the required files are in a location that is searched by default (e.g., <filename>/usr/lib</>), then you can leave off the argument. </para> <para> <filename>configure</> will check for the required header files and libraries to make sure that your Kerberos installation is sufficient before proceeding. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-krb-srvnam=<replaceable>NAME</></option></term> <listitem> <para> The name of the Kerberos service principal. <literal>postgres</literal> is the default. There's probably no reason to change this. </para> </listitem> </varlistentry> <varlistentry> <indexterm> <primary>OpenSSL</primary> <seealso>SSL</seealso> </indexterm> <term><option>--with-openssl<optional>=<replaceable>DIRECTORY</></></option></term> <listitem> <para> Build with support for <acronym>SSL</> (encrypted) connections. This requires the <productname>OpenSSL</> package to be installed. The <replaceable>DIRECTORY</> argument specifies the root directory of the <productname>OpenSSL</> installation; the default is <filename>/usr/local/ssl</>. </para> <para> <filename>configure</> will check for the required header files and libraries to make sure that your <productname>OpenSSL</> installation is sufficient before proceeding. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-pam</option></term> <listitem> <para> Build with <acronym>PAM</><indexterm><primary>PAM</></> (Pluggable Authentication Modules) support. </para> </listitem> </varlistentry> <varlistentry> <term><option>--without-readline</option></term> <listitem> <para> Prevents the use of the <application>Readline</> library. This disables command-line editing and history in <application>psql</application>, so it is not recommended. </para> </listitem> </varlistentry> <varlistentry> <term><option>--with-rendezvous</option></term> <listitem> <para> Build with Rendezvous support. </para> </listitem> </varlistentry> <varlistentry> <term><option>--disable-spinlocks</option></term> <listitem> <para> Allow the builds to succeed even if PostgreSQL has no CPU spinlock support for the platform. The lack of spinlock support will result in poor performance; therefore, this option should only be used if the build aborts and informs you that the platform lacks spinlock support. </para> </listitem> </varlistentry> <varlistentry> <term><option>--enable-thread-safety</option></term> <listitem> <para> Make the client libraries thread-safe. This allows concurrent threads in <application>libpq</application> and <application>ECPG</application> programs to safely control their private connection handles. </para> </listitem> </varlistentry> <varlistentry> <term><option>--without-zlib</option></term> <listitem> <para> Prevents the use of the <application>Zlib</> library. This disables compression support in <application>pg_dump</application>. This option is only intended for those rare systems where this library is not available. </para> </listitem> </varlistentry> <varlistentry> <term><option>--enable-debug</option></term> <listitem> <para> Compiles all programs and libraries with debugging symbols. This means that you can run the programs through a debugger to analyze problems. This enlarges the size of the installed executables considerably, and on non-GCC compilers it usually also disables compiler optimization, causing slowdowns. However, having the symbols available is extremely helpful for dealing with any problems that may arise. Currently, this option is recommended for production installations only if you use GCC. But you should always have it on if you are doing development work or running a beta version. </para> </listitem> </varlistentry> <varlistentry> <term><option>--enable-cassert</option></term> <listitem> <para> Enables <firstterm>assertion</> checks in the server, which test for many <quote>can't happen</> conditions. This is invaluable for code development purposes, but the tests slow things down a little. Also, having the tests turned on won't necessarily enhance the stability of your server! The assertion checks are not categorized for severity, and so what might be a relatively harmless bug will still lead to server restarts if it triggers an assertion failure. Currently, this option is not recommended for production use, but you should have it on for development work or when running a beta version. </para> </listitem> </varlistentry> <varlistentry> <term><option>--enable-depend</option></term> <listitem> <para> Enables automatic dependency tracking. With this option, the makefiles are set up so that all affected object files will be rebuilt when any header file is changed. This is useful if you are doing development work, but is just wasted overhead if you intend only to compile once and install. At present, this option will work only if you use GCC. </para> </listitem> </varlistentry> </variablelist> </para> <para> If you prefer a C compiler different from the one <filename>configure</filename> picks then you can set the environment variable <envar>CC</> to the program of your choice. By default, <filename>configure</filename> will pick <filename>gcc</filename> unless this is inappropriate for the platform. Similarly, you can override the default compiler flags with the <envar>CFLAGS</envar> variable. </para> <para> You can specify environment variables on the <filename>configure</filename> command line, for example:<screen><userinput>./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'</></screen> </para> </step> <step> <title>Build</title> <para> To start the build, type<screen><userinput>gmake</userinput></screen> (Remember to use <acronym>GNU</> <application>make</>.) The build may take anywhere from 5 minutes to half an hour depending on your hardware. The last line displayed should be<screen>All of PostgreSQL is successfully made. Ready to install.</screen> </para> </step> <step> <title>Regression Tests</title> <indexterm> <primary>regression test</primary> </indexterm> <para> If you want to test the newly built server before you install it, you can run the regression tests at this point. The regression tests are a test suite to verify that <productname>PostgreSQL</> runs on your machine in the way the developers expected it to. Type<screen><userinput>gmake check</userinput></screen> (This won't work as root; do it as an unprivileged user.) <![%standalone-include[The file <filename>src/test/regress/README</> and the documentation contain]]> <![%standalone-ignore[<xref linkend="regress"> contains]]> detailed information about interpreting the test results. You can repeat this test at any later time by issuing the same command. </para> </step> <step id="install"> <title>Installing The Files</title> <note> <para> If you are upgrading an existing system and are going to install the new files over the old ones, then you should have backed up your data and shut down the old server by now, as explained in <xref linkend="install-upgrading"> above. </para> </note> <para> To install <productname>PostgreSQL</> enter<screen><userinput>gmake install</userinput></screen> This will install files into the directories that were specified in <xref linkend="configure">. Make sure that you have appropriate permissions to write into that area. Normally you need to do this step as root. Alternatively, you could create the target directories in advance and arrange for appropriate permissions to be granted. </para> <para> You can use <literal>gmake install-strip</literal> instead of <literal>gmake install</literal> to strip the executable files and libraries as they are installed. This will save some space. If you built with debugging support, stripping will effectively remove the debugging support, so it should only be done if debugging is no longer needed. <literal>install-strip</literal> tries to do a reasonable job saving space, but it does not have perfect knowledge of how to strip every unneeded byte from an executable file, so if you want to save all the disk space you possibly can, you will have to do manual work. </para> <para> The standard installation provides only the header files needed for client application development. If you plan to do any server-side program development (such as custom functions or data types written in C), then you may want to install the entire <productname>PostgreSQL</> include tree into your target include directory. To do that, enter<screen><userinput>gmake install-all-headers</userinput></screen> This adds a megabyte or two to the installation footprint, and is only
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -