14.5. ��װ����

  1. ����

    ��װ���̵ĵ�һ����������Դ��������ѡ����ϲ����ѡ� ���������ͨ������ configure �ű�ʵ�ֵģ�����ȱʡ��װ����ֻ��Ҫ�򵥵�����

    ./configure

    �ýű�������һЩ�������²�һЩϵͳ��صı����� �������IJ���ϵͳ���������ã�����������������д���һЩ�ļ��Լ�¼���ҵ���ʲô�� ��������뱣������Ŀ¼�Ķ�������ô��Ҳ������Դ�����������Ŀ¼������ configure����

    ȱʡ���ý�������������Ӧ�ó��򣬻�������ֻ��Ҫ C �������Ŀͻ��˳���ͽӿڡ� ȱʡʱ�����ļ�������װ�� /usr/local/pgsql��

    �����ͨ����������� configure ������ѡ���е�һ��������ѡ�����ͻ��������Ͱ�װ���̣�

    --prefix=PREFIX

    �������ļ�װ��Ŀ¼ PREFIX��������� /usr/local/pgsql� ʵ�ʵ��ļ��ᰲװ����ͬ����Ŀ¼�����û��һ���ļ���ֱ�Ӱ�װ�� PREFIX Ŀ¼�

    �������������Ҫ���㻹�����������ѡ��ͻ�����ͬ����Ŀ¼��λ�á� ��������������Щ���ñ���ȱʡ����ô��װ���ǿ��ض�λ�ģ���˼��������ڰ�װ�����ƶ�Ŀ¼�� ��man �� doc λ�ò������Ӱ�졣��

    ���ڿ��ض�λ�İ�װ���������Ҫʹ�� configure �� --disable-rpath ѡ� ���У�����Ҫ���߲���ϵͳ����ҵ�����⡣

    --exec-prefix=EXEC-PREFIX

    ����԰���ϵ��ص��ļ���װ��һ����ͬ��λ�ã� EXEC-PREFIX�������� PREFIX ���õĵط��� ���������ԱȽϷ�����ڲ�ͬ����֮�乲����ϵ��ص��ļ��� �����ʡ����Щ����ôEXEC-PREFIX �ͻᱻ����Ϊ���� PREFIX ������ϵ��غ���ϵ�޹ص��ļ����ᰲװ��ͬһ��Ŀ¼���£���Ҳ����������Ҫ�ġ�

    --bindir=DIRECTORY

    Ϊ��ִ�г�������Ŀ¼��ȱʡ�� EXEC-PREFIX/bin�� ͨ��Ҳ���� /usr/local/pgsql/bin��

    --datadir=DIRECTORY

    ��������װ�ij�����Ҫ��ֻ���ļ���Ŀ¼��ȱʡ�� PREFIX/share�� ��ע�����Ŀ¼��������ݿ��ļ��ĵط�û���κι�ϵ��

    --sysconfdir=DIRECTORY

    ���ڸ��ָ��������ļ���Ŀ¼��ȱʡΪ PREFIX/etc��

    --libdir=DIRECTORY

    ���ļ��Ͷ�̬װ��ģ���Ŀ¼��ȱʡ�� EXEC-PREFIX/lib��

    --includedir=DIRECTORY

    C �� C++ ͷ�ļ���Ŀ¼��ȱʡ�� PREFIX/include��

    --mandir=DIRECTORY

    ���� PostgreSQL һ������ֲ�ҳ����װ�����Ŀ¼����������Ӧ�� manx��Ŀ¼� ȱʡ�� PREFIX/man��

    --with-docdir=DIRECTORY
    --without-docdir

    ��"man���ֲ�ҳ��"������ĵ��ļ�������װ�����Ŀ¼��ȱʡ�� PREFIX/doc�� ��������� --without-docdir����ô�ĵ������ᱻ make install ��װ�� ���Ǹ���Щʹ�����ⷽ����װ�ĵ��Ĵ���ű�ʹ�õġ�

    ע��: Ϊ����PostgreSQL�ܹ���װ��һЩ����İ�װλ�ã����� /usr/local/include���� ͬʱ�ֲ����ں�ϵͳ�������ֲ������ֿռ���ţ����Dz�ȡ��һЩ���衣 ���ȣ���װ�ű����Զ��� datadir�� sysconfdir���� docdir ���渽���� "/postgresql" �ִ��� ����չ��������·�����Ѿ������ִ� "postgres" ���� "pgsql"�� ���磬�����ѡ�� /usr/local ��Ϊǰ׺�� ��ô�ĵ�����װ�� /usr/local/doc/postgresql, �����ǰ׺�� /opt/postgres�� ��ô�������ŵ� /opt/postgres/doc�� �ͻ��ӿڵĹ��� C ͷ�ļ���װ���� includedir�����������ֿռ��޹صġ� �ڲ���ͷ�ļ��ͷ�����ͷ�ļ�����װ�� includedir/postgresql �µ�˽��Ŀ¼��ȥ�ˡ��ο�ÿ�ֽӿڵ��ĵ���ȡ������εõ�ͷ�ļ�����Ϣ�� ���������ʣ���ôҲ�ᴴ��һ��˽�е���Ŀ¼���� libdir�£����ڶ�̬װ�ؿ�װ�ص�ģ�顣

    --with-includes=DIRECTORIES

    DIRECTORIES ��һϵ��ð�ŷָ���Ŀ¼����ЩĿ¼���������������ͷ�ļ������б��С� �������һЩ��ѡ�İ������� GNU Readline����װ�ڷDZ�׼λ�ã� ��ͱ���ʹ�����ѡ��Լ����ܻ�����Ӧ�� --with-libraries ѡ�

    ���ӣ�--with-includes=/opt/gnu/include:/usr/sup/include��

    --with-libraries=DIRECTORIES

    DIRECTORIES ��һϵ��ð�ŷָ���Ŀ¼����ЩĿ¼�����ڲ��ҿ��ļ��ġ� �������һЩ����װ�ڷDZ�׼λ�ã�����ܾ���Ҫʹ�����ѡ��Լ���Ӧ��--with-includesѡ���

    ���ӣ�--with-libraries=/opt/gnu/lib:/usr/sup/lib��

    --enable-nls[=LANGUAGES]

    �򿪱�������֧��(NLS)��Ҳ�����Է�Ӣ����ʾ�������Ϣ�������� LANGUAGES ��һ���ո�ָ������Դ����б� ��ʶ����֧�ֵ����ԡ����� --enable-nls='de fr'�� �����ṩ���б��ʵ��֧�ֵ��б�֮��Ľ��������Զ�����������������û������һ���б���ô�Ͱ�װ���п��õķ��롣

    Ҫʹ�����ѡ�����Ҫһ��gettext API ��ʵ�֡������ġ�

    --with-pgport=NUMBER

    �� NUMBER ����Ϊ�������Ϳͻ��˵�ȱʡ�˿ڡ�ȱʡ�� 5432�� ����˿ڿ������Ժ����ã������������������������ô�������Ϳͻ��˽�����ͬ�ı�����˵�ȱʡֵ�������᷽��Щ�� ͨ��ѡȡһ����ȱʡֵ�ĺ�����������ͼ��ͬһ̨���������ж�� PostgreSQL ��������

    --with-perl

    ���� PL/Perl �������˱�����ԡ�

    --with-python

    ���� PL/Python �������˱�����ԡ�

    --with-tcl

    ����������������� PL/Tcl��

    --with-tclconfig=DIRECTORY

    Tcl �İ�װ�ļ� tclConfig.sh�� ��������������� Tcl ģ���������Ϣ�� Configure ͨ�����Զ������ǵ�������λ���ҵ���Щ�ļ��� �����������Ҫһ����ͬ�汾�� Tcl����Ҳ�������������ҵ����ǵ�Ŀ¼��

    --with-krb4
    --with-krb5

    ����֧��Kerberos��֤�Ķ����������ѡ�� Kerberos �汾 4 �� 5 ֮һ��������ͬʱѡ������ DIRECTORY �������� Kerberos ��װ�ĸ�Ŀ¼��ȱʡ������ /usr/athena �����ص�ͷ�ļ��Ϳ��ļ����ڳ��õĸ�Ŀ¼����ô�����ʹ�ø��ӵ� --with-includes �� --with-librariesѡ� configure �ڼ�������֮ǰ���������Ҫ��ͷ�ļ��Ϳ⣬��ȷ����� Kerberos ���㹻��

    --with-krb-srvnam=NAME

    Kerberos �����������ơ� ȱʡ�� postgres��ͨ��û�����ɸı����ֵ��

    --with-openssl

    ����֧�� SSL �����ܵģ����ӡ� ���ѡ����Ҫ��װ OpenSSL ���� configure ���ڰ�װ֮ǰ�������Ҫ��ͷ�ļ��Ϳ��ļ���ȷ����� OpenSSL ��װ�dz�ֵġ�

    --with-pam

    ���� PAM ���ɲ����֤ģ�飩֧�֡�

    --without-readline

    ����ʹ��Readline�⡣�����͹ر��� psql ��������б༭����ʷ�� ������Dz�������ô����

    --with-rendezvous

    ���� Rendezvous ֧�֡���Ҫ����IJ���ϵͳ֧�� Rendezvous�� �� Mac OS X �Ͻ���ʹ�á�

    --disable-spinlocks

    ������ PostgreSQL û�и�ƽ̨�� CPU ������֧�ֵ�����������ɹ��� ȱ����������֧�ֽ��������ܶ񻯣���ˣ�ֻ�������������˳��� ���Ҹ�����˵��ƽ̨ȱ��������֧�ֵ�ʱ���ʹ�����ѡ� ��������ƽ̨����Ҫ���ѡ��������� PostgreSQL�� ���� PostgreSQL �����߱���������⡣

    --enable-thread-safety

    ��ͻ��˿����̰߳�ȫ�ġ������������� libpq �� ECPG ������IJ����̰߳�ȫ�ؿ�������˽�е����Ӿ���� ���ѡ��Ҫ����IJ���ϵͳ�����㹻���߳�֧�֡�

    --without-zlib

    ����ʹ��Zlib�⡣�����͹ر��� pg_dump �� pg_restore �����ѹ��֧�֡����ѡ��ֻ��������Щû�������ĺ�����ϵͳ��

    --enable-debug

    �����г���Ϳ��Դ��е��Է��ŵķ�ʽ���롣 ����ζ�������ͨ��һ�����������г������������⡣ �������������������װ�Ŀ�ִ���ļ��Ĵ�С�� �����ڷ� GCC �ı������ϣ���ô��ͨ����Ҫ�رձ������Ż��� �����ٶȵ��½������ǣ��������Щ���ű�Ļ����Ϳ��Էdz���Ч�ذ�����λ���ܷ��������λ�á� Ŀǰ������ֻ������ʹ�� GCC ������²Ž�����������װ��ʹ�����ѡ� ������������ڽ��п�����������������ʹ�� beta �汾����ô�����Ӧ�ô�����

    --enable-cassert

    ���ڷ������е� assertion ��飬 ���������"�����ܷ���"�������������ڴ��뿪������;�������޼�֮���� ������Щ������΢�ؼ�����һЩ�ٶȡ����ң���������Բ���������ϵͳ���ȶ��ԣ� ��Щ���Լ�鲢���ǰ��մ���������Է���ģ����һЩ����޺���С����Ҳ���ܵ��·���������--ֻҪ��������һ�ζ���ʧ�ܡ� Ŀǰ�����Dz��Ƽ�������������ʹ�����ѡ������������������������ʹ�� beta �汾��ʱ��Ӧ�ô�����

    --enable-depend

    ���Զ������Ը��١���������ѡ���ô�����ļ���makefile��������Ϊ���κ�ͷ�ļ����޸ĵ�ʱ�򶼽���������������Ӱ���Ŀ���ļ��� ��������������Ĺ�������ô���ѡ������ã����������ֻ�������һ�β��Ұ�װ����ô������˷�ʱ�䡣 Ŀǰ�����ѡ��ֻ������ʹ�� GCC ��ʱ��Ź��á�

    �����ϲ������Щ�� configure �ҳ����IJ�ͬ�� C ����������ô�������Ļ������� CC ����Ϊ��ѡ��ij���ȱʡʱ��configure ��ѡ�� gcc��ֻҪ�ǿ��õģ� �����Ǹ�ƽ̨��ȱʡ��ͨ���� cc���� �������ڸ�ƽ̨�ϲ����ʡ����Ƶأ�������� CFLAGS ��������ȱʡ��������־��

    ������� configure ���������������������� ���磺

    ./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'

  2. ����

    ��ʼ����������

    gmake

    ��һ��Ҫ�ǵ��� GNU make���� �����Ӳ�����죬�������̿�����Ҫ 5 ���ӵ���Сʱ����ʾ�����һ��Ӧ����

    All of PostgreSQL is successfully made. Ready to install.

  3. �ع����

    ��������ڰ�װ�ļ�ǰ�����������ķ������� ��ô����������ʱ�����лع���ԡ� �ع������һ��������֤PostgreSQL�����ϵͳ���Ƿ��տ�����Ա������������еIJ����׼��� ����

    gmake check

    ������������ root ���޷�ʹ�ã����ڷ���Ȩ�û������и������ ���п�����Щ������Ϊ������Ϣ������򸡵����������ʧ�ܡ��ļ� Chapter 26 ����������ν��Ͳ��Խ������ϸ��Ϣ�� ��������Ժ���κ�ʱ��ͨ��ִ����������������������ԡ�

  4. ��װ�ļ�

    ע��: �������������һ�����е�ϵͳ����׼�������ļ���װ�ھ��ļ����棬 ��ôҪ�ǵ��ڸ���֮ǰ�������ݲ��ر���ľɷ�������������Section 14.4������͵�������

    Ҫ��װ PostgreSQL ����

    gmake install

    ����������ļ���װ���� step 1 ��������Ŀ¼����ȥ�� ȷ������Ǹ�Ŀ¼���㹻��Ȩ�ޡ�ͨ������Ҫ�� root Ȩ������һ���� ������Ҳ�������ȴ���Ŀ��Ŀ¼���ҷ��ɺ��ʵ�Ȩ�ޡ�

    �����ʹ�� gmake install-strip ���� gmake install�� �ڰ�װ��ִ���ļ��Ϳ��ļ�ʱ�����ǵĵ�����Ϣ��ȡ���� ��������ԼһЩ�ռ䡣��������ʱ���ŵ���֧�֣���ô��ȡ����Ч��ɾ������֧�֣� �������Ӧ��ֻ���ڲ�����Ҫ���Ե�ʱ������Щ���顣 install-strip ��ͼ��һЩ�������������Լ�ռ䣬 ����������֪����δӿ�ִ���ļ��г�ȡÿ������Ҫ���ֽڣ� ��ˣ������ϣ����Լ���п��ܽ�Լ�Ĵ��̿ռ䣬��ô�������Ҫ�ֹ���Щ����

    ��׼�İ�װֻ�ṩ���п����ͻ���Ӧ�õ�ͷ�ļ��ͷ������˵ij��򿪷��������� C д�ͻ����������������ͣ���ͷ�ļ��� ���� PostgreSQL 8.0 ֮ǰ��������Ҫ������ִ��һ�� gmake install-all-headers �������������������Ѿ��ںϵ��˱�׼�İ�װ��������ȥ�ˡ���

    ֻװ�ͻ��ˣ�. �����ֻ��װ�ͻ�Ӧ�úͽӿڣ���ô���������������

    gmake -C src/bin install
    gmake -C src/include install
    gmake -C src/interfaces install
    gmake -C doc install

�� Windows ��ע�� eventlog�� . Ҫ�ڸò���ϵͳ��ע��һ�� Windows eventlog �⣬ �ڰ�װ���֮��ִ����������

regsvr32 pgsql_library_directory/pgevent.dll

�����ʹ�����һ�������¼��鿴����ע�����Ŀ��

ж�أ�. Ҫ������װ����ʹ������ gmake uninstall��������������ɾ���κδ���������Ŀ¼��

����. �ڰ�װ����Ժ������ͨ����Դ��������������gmake clean ɾ�������ļ��� �����ᱣ��configure�������ɵ��ļ��������Ժ���Ϳ����� gmake ���������������ж����� Ҫ��Դ�����ָ�Ϊ����ʱ��״̬���� gmake distclean ��� ��������ͬһ��Դ������Ϊ�����ͬƽ̨���������һ��Ҫ�������������Ϊÿ�������������á� �����⣬��ÿ��ϵͳ��ʹ��һ�׶�����������������Դ�������Ϳ��Ա����������ġ���

�����ִ����һ��������Ȼ�����������ѡ���Ǵ���ģ� �������޸����κ�configure��̽��Ķ��������磬������������� ��ô���������ú�����֮ǰ����һ�� gmake distclean �Ǹ���ϰ�ߡ� �������������飬 ���޸ĵ�����ѡ������޷�������������Ҫ�仯�ĵط���