config.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:16k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. <chapter id="config">
  2. <title id="install-config">Configuration Options</title>
  3.  <sect1>
  4.   <title>Parameters for Configuration (<application>configure</application>)</title>
  5.   <para>
  6.    The full set of parameters available in <application>configure</application>
  7.    can be obtained by typing
  8.    
  9.    <programlisting>
  10.     $ ./configure --help
  11.    </programlisting>
  12.   </para>
  13.   <para>
  14.    The following parameters may be of interest to installers:
  15.    
  16.    <programlisting>
  17. Directory and file names:
  18.   --prefix=PREFIX         install architecture-independent files in PREFIX
  19.                           [/usr/local/pgsql]
  20.   --bindir=DIR            user executables in DIR [EPREFIX/bin]
  21.   --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
  22.   --includedir=DIR        C header files in DIR [PREFIX/include]
  23.   --mandir=DIR            man documentation in DIR [PREFIX/man]
  24. Features and packages:
  25.   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  26.   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  27.   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  28.   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  29. --enable and --with options recognized:
  30.   --with-template=<replaceable>template</replaceable>
  31.                           use operating system template file
  32.                               see template directory
  33.   --with-includes=<replaceable>incdir</replaceable>
  34.                           site header files for tk/tcl, etc in DIR
  35.   --with-libs=<replaceable>incdir</replaceable>
  36.                           also search for libraries in DIR
  37.   --with-libraries=<replaceable>libdir</replaceable>
  38.                           also search for libraries in DIR
  39.   --enable-locale         enable locale support
  40.   --enable-recode         enable cyrillic recode support
  41.   --with-mb=<replaceable>encoding</replaceable>
  42.                           enable multi-byte support
  43.   --with-pgport=<replaceable>portnum</replaceable>
  44.                           change default startup port
  45.   --with-maxbackends=<replaceable>n</replaceable>
  46.                           set default maximum number of server processes 
  47.   --with-tcl              build Tcl interfaces and pgtclsh
  48.   --with-tclconfig=<replaceable>tcldir</replaceable>
  49.                           tclConfig.sh and tkConfig.sh are in DIR
  50.   --with-perl             build Perl interface
  51.   --with-odbc             build ODBC driver package
  52.   --with-odbcinst=<replaceable>odbcdir</replaceable>
  53.                           change default directory for odbcinst.ini
  54.   --enable-cassert        enable assertion checks (debugging)
  55.   --with-CC=<replaceable>compiler</replaceable>
  56.                           use specific C compiler
  57.   --with-CXX=<replaceable>compiler</replaceable>
  58.                           use specific C++ compiler
  59.   --without-CXX           prevent building C++ code 
  60.    </programlisting>
  61.   </para>
  62.   <para>
  63.    Some systems may have trouble building a specific feature of
  64.    <productname>Postgres</productname>. For example, systems with a damaged
  65.    C++ compiler may need to specify <option>--without-CXX</option> to instruct
  66.    the build procedure to skip construction of <filename>libpq++</filename>.
  67.   </para>
  68.  </sect1>
  69.  <sect1>
  70.   <title>Parameters for Building (<application>make</application>)</title>
  71.   
  72.   <para>
  73.    Many installation-related parameters can be set in the building
  74.    stage of <productname>Postgres</productname> installation.
  75.   </para>
  76.   <para>
  77.    In most cases, these parameters should be placed in a file,
  78.    <filename>Makefile.custom</filename>, intended just for that purpose.
  79.    The default distribution does not contain this optional file, so you
  80.    will create it using a text editor of your choice. When upgrading installations,
  81.    you can simply copy your old Makefile.custom to the new installation before
  82.    doing the build.
  83.    
  84.    <synopsis>
  85.     make [ <replaceable>variable</replaceable>=<replaceable class="parameter">value</replaceable> [,...] ]
  86.    </synopsis>
  87.   </para>
  88.   <para>
  89.    A few of the many variables which can be specified are:
  90.    
  91.    <variablelist>
  92.     <varlistentry>
  93.      <term>
  94.       <envar>POSTGRESDIR</envar>
  95.      </term>
  96.      <listitem>
  97.       <para>
  98.        Top of the installation tree.
  99.       </para>
  100.      </listitem>
  101.     </varlistentry>
  102.     
  103.     <varlistentry>
  104.      <term>
  105.       <envar>BINDIR</envar>
  106.      </term>
  107.      <listitem>
  108.       <para>
  109.        Location of applications and utilities.
  110.       </para>
  111.      </listitem>
  112.     </varlistentry>
  113.     
  114.     <varlistentry>
  115.      <term>
  116.       <envar>LIBDIR</envar>
  117.      </term>
  118.      <listitem>
  119.       <para>
  120.        Location of object libraries, including shared libraries.
  121.       </para>
  122.      </listitem>
  123.     </varlistentry>
  124.     
  125.     <varlistentry>
  126.      <term>
  127.       <envar>HEADERDIR</envar>
  128.      </term>
  129.      <listitem>
  130.       <para>
  131.        Location of include files.
  132.       </para>
  133.      </listitem>
  134.     </varlistentry>
  135.     
  136.     <varlistentry>
  137.      <term>
  138.       <envar>ODBCINST</envar>
  139.      </term>
  140.      <listitem>
  141.       <para>
  142.        Location of installation-wide <application>psqlODBC</application>
  143.        (<acronym>ODBC</acronym>) configuration file.
  144.       </para>
  145.      </listitem>
  146.     </varlistentry>
  147.     
  148.    </variablelist>
  149.   </para>
  150.   <para>
  151.    There are other optional parameters which are not as commonly used.
  152.    Many of those listed below are appropriate when doing 
  153.    <application>Postgres</application> server code development.
  154.    
  155.    <variablelist>
  156.     <varlistentry>
  157.      <term>
  158.       <envar>CFLAGS</envar>
  159.      </term>
  160.      <listitem>
  161.       <para>
  162.        Set flags for the C compiler. 
  163.        Should be assigned with "+=" to retain relevant default parameters.
  164.       </para>
  165.      </listitem>
  166.     </varlistentry>
  167.     
  168.     <varlistentry>
  169.      <term>
  170.       YFLAGS
  171.      </term>
  172.      <listitem>
  173.       <para>
  174.        Set flags for the yacc/bison parser. <option>-v</option> might be
  175.        used to help diagnose problems building a new parser.
  176.        Should be assigned with "+=" to retain relevant default parameters.
  177.       </para>
  178.      </listitem>
  179.     </varlistentry>
  180.     
  181.     <varlistentry>
  182.      <term>
  183.       <envar>USE_TCL</envar>
  184.      </term>
  185.      <listitem>
  186.       <para>
  187.        Enable Tcl interface building.
  188.       </para>
  189.      </listitem>
  190.     </varlistentry>
  191.     
  192.     <varlistentry>
  193.      <term>
  194.       <envar>HSTYLE</envar>
  195.      </term>
  196.      <listitem>
  197.       <para>
  198.        DocBook <acronym>HTML</acronym> style sheets for building the 
  199.        documentation from scratch.
  200.        Not used unless you are developing new documentation from the
  201.        DocBook-compatible <acronym>SGML</acronym> source documents in
  202.        <filename>doc/src/sgml/</filename>.
  203.       </para>
  204.      </listitem>
  205.     </varlistentry>
  206.     
  207.     <varlistentry>
  208.      <term>
  209.       <envar>PSTYLE</envar>
  210.      </term>
  211.      <listitem>
  212.       <para>
  213.        DocBook style sheets for building printed documentation from scratch.
  214.        Not used unless you are developing new documentation from the
  215.        DocBook-compatible <acronym>SGML</acronym> source documents in
  216.        <filename>doc/src/sgml/</filename>.
  217.       </para>
  218.      </listitem>
  219.     </varlistentry>
  220.     
  221.    </variablelist>
  222.   </para>
  223.   <para>
  224.    Here is an example <filename>Makefile.custom</filename> for a
  225.    PentiumPro Linux system:
  226.    
  227.    <programlisting>
  228. # Makefile.custom
  229. # Thomas Lockhart 1999-06-01
  230. POSTGRESDIR= /opt/postgres/current
  231. CFLAGS+= -m486 -O2
  232. # documentation
  233. HSTYLE= /home/tgl/SGML/db118.d/docbook/html
  234. PSTYLE= /home/tgl/SGML/db118.d/docbook/print
  235.    </programlisting>
  236.   </para>
  237.  </sect1> 
  238.  <Sect1>
  239.   <Title>Locale Support</Title>
  240.   
  241.   <Para>
  242.    <Note>
  243.     <Para>
  244.      Written by Oleg Bartunov.
  245.      See <ULink url="http://www.sai.msu.su/~megera/postgres/">Oleg's web page</ULink>
  246.      for additional information on locale and Russian language support.
  247.      
  248.     </Para>
  249.    </Note>
  250.    While doing a project for a company in Moscow, Russia, 
  251.    I encountered the problem that postgresql had no
  252.    support of national alphabets. After looking for possible workarounds 
  253.    I decided to develop support of locale myself.
  254.    I'm not a C-programer but already had some experience with locale programming 
  255.    when I work with perl
  256.    (debugging) and glimpse. After several days of digging through
  257.    the <ProductName>Postgres</ProductName> source tree I made very minor corections to
  258.    src/backend/utils/adt/varlena.c and src/backend/main/main.c and got what I needed! 
  259.    I did support only for
  260.    <envar>LC_CTYPE</envar> and <envar>LC_COLLATE</envar>, 
  261.    but later <envar>LC_MONETARY</envar> was added by others. I got many
  262.    messages from people about this patch so I decided to send it to developers 
  263.    and (to my surprise) it was
  264.    incorporated into the <productname>Postgres</productname> distribution.
  265.   </para>
  266.   <Para>
  267.    People often complain that locale doesn't work for them. 
  268.    There are several common mistakes: 
  269.    
  270.    <ItemizedList>
  271.     <ListItem>
  272.      <Para>
  273.       Didn't properly configure postgresql before compilation. 
  274.       You must run configure with --enable-locale option to enable locale support. 
  275.       Didn't setup environment correctly when starting postmaster. 
  276.       You must define environment variables 
  277.       <envar>LC_CTYPE</envar> and <envar>LC_COLLATE</envar> 
  278.       before running postmaster
  279.       because backend gets information about locale from environment. 
  280.       I use following shell script
  281.       (runpostgres): 
  282.       
  283.       <ProgramListing>
  284.        #!/bin/sh
  285.        
  286.        export LC_CTYPE=koi8-r
  287.        export LC_COLLATE=koi8-r
  288.        postmaster -B 1024 -S -D/usr/local/pgsql/data/ -o '-Fe'
  289.       </ProgramListing>
  290.       and run it from rc.local as 
  291.       <ProgramListing>
  292.        /bin/su - postgres -c "/home/postgres/runpostgres"
  293.       </ProgramListing>
  294.      </Para>
  295.     </ListItem>
  296.     <ListItem>
  297.      <Para>
  298.       Broken locale support in OS (for example, locale support in libc 
  299.       under Linux several times has changed
  300.       and this caused a lot of problems). Latest perl has also support of 
  301.       locale and if locale is broken <command>perl -v</command> will
  302.       complain something like: 
  303.       
  304.       <programlisting>
  305.        8:17[mira]:~/WWW/postgres>setenv LC_CTYPE not_exist
  306.        8:18[mira]:~/WWW/postgres>perl -v
  307.        perl: warning: Setting locale failed.
  308.        perl: warning: Please check that your locale settings:
  309.        LC_ALL = (unset),
  310.            LC_CTYPE = "not_exist",
  311.            LANG = (unset)
  312.        are supported and installed on your system.
  313.        perl: warning: Falling back to the standard locale ("C").
  314.       </programlisting>
  315.      </Para>
  316.     </ListItem>
  317.     <ListItem>
  318.      <Para>
  319.       Wrong location of locale files!
  320.       
  321.       Possible locations include: 
  322.       <filename>/usr/lib/locale</filename> 
  323.       (Linux, Solaris), <filename>/usr/share/locale</filename> (Linux), 
  324.       <filename>/usr/lib/nls/loc</filename> (DUX 4.0).
  325.       
  326.       Check <command>man locale</command> to find the correct location.
  327.       Under Linux I did a symbolic link between <filename>/usr/lib/locale</filename> and
  328.       <filename>/usr/share/locale</filename> to be sure that 
  329.       the next libc will not break my locale.
  330.      </Para>
  331.     </ListItem>
  332.    </ItemizedList>
  333.   </para>
  334.   <Sect2>
  335.    <Title>What are the Benefits?</Title> 
  336.    <Para>
  337.     You can use ~* and order by operators for strings contain characters 
  338.     from national alphabets. Non-english users
  339.     definitely need that. If you won't use locale stuff just undefine 
  340.     the USE_LOCALE variable. 
  341.    </para>
  342.   </sect2>
  343.   <Sect2>
  344.    <Title>What are the Drawbacks?</Title>
  345.    
  346.    <Para>
  347.     There is one evident drawback of using locale - its speed! 
  348.     So, use locale only if you really need it. 
  349.    </para>
  350.   </sect2>
  351.  </sect1>
  352.  
  353.  <Sect1>
  354.   <Title>Kerberos Authentication</Title>
  355.   
  356.   <Para>
  357.    <productname>Kerberos</productname> is an industry-standard secure authentication
  358.    system suitable for distributed computing over a public network.
  359.   </para>
  360.   <sect2>
  361.    <title>Availability</title>
  362.    
  363.    <para>
  364.     The
  365.     <productname>Kerberos</productname>
  366.     authentication system is not distributed with <Productname>Postgres</Productname>.  Versions of
  367.     <productname>Kerberos</productname>
  368.     are typically available as optional software from operating system
  369.     vendors.  In addition, a source code distribution may be obtained through
  370.     <ulink url="ftp://athena-dist.mit.edu">MIT Project Athena</ulink>.
  371.    </para>
  372.    <note>
  373.     <para>
  374.      You may wish to obtain the MIT version even if your
  375.      vendor provides a version, since some vendor ports have been
  376.      deliberately crippled or rendered non-interoperable with the MIT
  377.      version.
  378.     </para>
  379.    </note>
  380.    <para>
  381.     Users located outside the United States of America and
  382.     Canada are warned that distribution of the actual encryption code in
  383.     <productname>Kerberos</productname>
  384.     is restricted by U. S. Government export regulations.
  385.    </para>
  386.    <para>
  387.     Inquiries regarding your <productname>Kerberos</productname> 
  388.     should be directed to your vendor or
  389.     <ulink url="info-kerberos@athena.mit.edu">MIT Project Athena</ulink>.
  390.     Note that <acronym>FAQL</acronym>s
  391.     (Frequently-Asked Questions Lists) are periodically posted to the
  392.     <ulink url="mailto:kerberos@ATHENA.MIT.EDU"><productname>Kerberos</productname> mailing list</ulink>
  393.     (send
  394.     <ulink url="mailto:kerberos-request@ATHENA.MIT.EDU">mail to subscribe</ulink>),
  395.     and 
  396.     <ulink url="news:comp.protocols.kerberos">USENET news group</ulink>.
  397.    </para>
  398.   </sect2>
  399.   
  400.   <sect2>
  401.    <title>Installation</title>
  402.    
  403.    <para>
  404.     Installation of 
  405.     <productname>Kerberos</productname>
  406.     itself is covered in detail in the 
  407.     <citetitle>Kerberos Installation Notes</citetitle> .
  408.     Make sure that the server key file (the <filename>srvtab</filename>
  409.     or <filename>keytab</filename>)
  410.     is somehow readable by the <productname>Postgres</productname> account.
  411.    </para>
  412.    <para>
  413.     <Productname>Postgres</Productname> and its clients can be compiled to use 
  414.     either Version 4 or Version 5 of the MIT
  415.     <productname>Kerberos</productname>
  416.     protocols by setting the 
  417.     <envar>KRBVERS</envar>
  418.     variable in the file <filename>src/Makefile.global</filename> to the
  419.     appropriate value.  You can also change the location where
  420.     <Productname>Postgres</Productname>
  421.     expects to find the associated libraries, header files and its own
  422.     server key file.
  423.    </para>
  424.    <para>
  425.     After compilation is complete, <Productname>Postgres</Productname>
  426.     must be registered as a <productname>Kerberos</productname>
  427.     service.  See the
  428.     <citetitle>Kerberos Operations Notes</citetitle>
  429.     and related manual pages for more details on registering services.
  430.    </para>
  431.   </sect2>
  432.   <sect2>
  433.    <title>Operation</title>
  434.    
  435.    <para>
  436.     After initial installation, <Productname>Postgres</Productname> 
  437.     should operate in all ways as a normal
  438.     <productname>Kerberos</productname>
  439.     service.  For details on the use of authentication, see the
  440.     <citetitle>PostgreSQL User's Guide</citetitle> reference sections
  441.     for <application>postmaster</application>
  442.     and <application>psql</application>.
  443.    </para>
  444.    <para>
  445.     In the 
  446.     <productname>Kerberos</productname>
  447.     Version 5 hooks, the following assumptions are made about user
  448.     and service naming:
  449.     <itemizedlist>
  450.      <listitem>
  451.       <para>
  452.        User principal names (anames) are assumed to
  453.        contain the actual Unix/<Productname>Postgres</Productname> user name
  454.        in the first component.
  455.       </para>
  456.      </listitem>
  457.      <listitem>
  458.       <para>
  459.        The <Productname>Postgres</Productname> service is assumed to be have two components,
  460.        the service name and a hostname, canonicalized as in Version 4 (i.e., with all domain
  461.        suffixes removed).
  462.       </para>
  463.      </listitem>
  464.      
  465.     </itemizedlist>
  466.    </para>
  467.    <para>
  468.     <table tocentry="1">
  469.      <title>Kerberos Parameter Examples</title>
  470.      <titleabbrev>Kerberos</titleabbrev>
  471.      <tgroup cols="2">
  472.       <thead>
  473.        <row>
  474. <entry>
  475.  Parameter
  476. </entry>
  477. <entry>
  478.  Example
  479. </entry>
  480.        </row>
  481.       </thead>
  482.       <tbody>
  483.        <row>
  484. <entry>
  485.  user
  486. </entry>
  487. <entry>
  488.  frew@S2K.ORG
  489. </entry>
  490.        </row>
  491.        <row>
  492. <entry>
  493.  user
  494. </entry>
  495. <entry>
  496.  aoki/HOST=miyu.S2K.Berkeley.EDU@S2K.ORG
  497. </entry>
  498.        </row>    
  499.        <row>
  500. <entry>
  501.  host
  502. </entry>
  503. <entry>
  504.  postgres_dbms/ucbvax@S2K.ORG
  505. </entry>
  506.        </row>
  507.       </tbody>
  508.      </tgroup>
  509.     </table>
  510.    </para>
  511.    <para>
  512.     Support for Version 4 will disappear sometime after the production
  513.     release of Version 5 by MIT.
  514.    </para>
  515.   </sect2>
  516.  </sect1>
  517. </chapter>