Next Previous Contents

6. PostgreSQL 快速安装指引

这节会帮你在小于五分钟内快速安装和启动这资料库。

6.1 安装和测试

安装、测试、确认和执行 PostgreSQL 的步骤 以 root 身份签入


# cd /mnt/cdrom/RedHat/RPMS
# man rpm
# ls postgre*.rpm
# rpm -qpl postgre*.rpm | less (观看文档名单)
# rpm -qpi postgre*.rpm (观看套件资料)
# cat /etc/passwd | grep postgres

注意︰如果你看到一个?postgres'使用者,你可能要备份和清除 postgres 的家目录  postgres 和删除这名用者,或把他改名为?postgres2'之类。安装时需要乾乾净净。
:
# rpm -i postgre*.rpm (必须安装所有套件,即客户端、开发、资料和主套件来使 
pgaccess 正常工作)
# man chkconfig
# chkconfig --add postgresql  (用来在开机时开始 pg。)
# /etc/rc.d/init.d/postgresql start (启动 postgresql)
# man xhost
# xhost +  (让 pgaccess 使用显示装置)
# su - postgres
bash$ man createdb
bash$ createdb mydatabase
bash$ man psql
bash$ psql mydatabase
……在 psql 中可按上 / 下箭咀来编辑历史记录或 \s

bash$ export DISPLAY=<主机名>:0.0
bash$ man pgaccess
bash$ pgaccess mydatabase

现在你可以在 pgaccess 或 psql 高速下达各种 SQL 指令了!!
bash$ cd /usr/doc/postgresql*

在此阅读所有 FAQ,使用者、程序设计员、管理手册和指引。

6.2 PostgreSQL RPMs

此外,请看 http://www.ramifordistat.net/postgres"Installation Steps"

PostgreSQL RPM 由 Lamar Owen 维护,位于 lamar.owen@wgcr.orghttp://www.postgresql.org 可找到更多 PostgreSQL 的资料。

6.3 Maximum RPM

熟习 RedHat RPM 套件管理员以管理 PostgreSQL 安装。在 http://www.RPM.org 下载?Maximum RPM'一书,找寻档名 maximum-rpm.ps.gz。 在 Linux 使用 gv 指令阅读它 


# gv maximum-rpm.ps.gz

有一个 rpm2deb 可把 RPM 套件转换为 Debian Linux 套件

6.4 例子 RPM

测试 PostgreSQL 的各种界面需要例子。从以下地方安装 PostgreSQL 例子目录 

6.5 测试 PyGreSQL Python 界面

安装 examples 套件,请参阅 例子 RPM,之后 


bash$ cd /usr/lib/pgsql/python
bash$ createdb thilo
bash$ psql thilo
thilo=> create table test (aa char(30), bb char(30) );
thilo=> \q
bash$ /usr/bin/python
>>> import _pg
>>> db = _pg.connect('thilo', 'localhost')
>>> db.query("INSERT INTO test VALUES ('ping', 'pong')")
>>> db.query("SELECT * FROM test")
eins|zwei
----+----
ping|pong
(1 row)
>>>CTRL+D
bash$
……好像行了 现在正式安装它
bash$ su - root
# cp /usr/lib/pgsql/python/_pg.so /usr/lib/python1.5/lib-dynload

6.6 测试 Perl Perl 界面

安装 examples 套件,请参阅 例子 RPM,之后 


root# chown -R postgres.postgres /var/lib/pgsql/examples
bash$ cd /var/lib/pgsql/examples/perl5
bash$ perl ./example.pl

注意︰如果以上指令失败了请做如此做︰全域变数 @INC 要在包括 site_perl 目录中的 Pg.pm 模块,所以要如下使用 -I 选项。
bash$ perl -I/usr/lib/perl5/site_perl/5.004/i386-linux-thread ./example.pl

……你的 perl 已在存取 PostgreSQL 资料库!!

要使用 perl 界面,请参阅 example.pl 档。

6.7 测试 libpq, libpq++ 界面

安装 examples 套件,请参阅 例子 RPM,之后 


root# chown -R postgres.postgres /var/lib/pgsql/examples
bash$ cd /var/lib/pgsql/examples/libpq
bash$ gcc testlibpq.c -I/usr/include/pgsql -lpq
bash$ export PATH=$PATH:.
bash$ a.out

bash$ cd /var/lib/pgsql/examples/libpq++
bash$ g++ testlibpq0.cc -I/usr/include/pgsql -I/usr/include/pgsql/libpq++
-lpq++ -lpq -lcrypt
bash$ ./a.out (注意︰不须理会错误信息 如下)
> create table foo (aa int, bb char(4));
No tuples returned...
status = 1
Error returned: fe_setauthsvc: invalid name: , ignoring...
> insert into foo values ('4535', 'vasu');
No tuples returned...
status = 1
Error returned: fe_setauthsvc: invalid name: , ignoring...
> select * from foo;
aa   |bb   |
-----|-----|
4535 |vasu |
Query returned 1 row.
>
>CTRL+D
bash$

……你直接用 C/C++ 界面来存取 PostgreSQL 资料库!!

6.8 测试 Java 界面

安装 examples 套件,请参阅 例子 RPM 和安装以下东西。


root# chown -R postgres.postgres /var/lib/pgsql/examples
bash$ cd /var/lib/pgsql/examples/jdbc
bash$ echo $CLASSPATH
 --> 应显示 CLASSPATH=/usr/lib/pgsql/jdbc7.0-1.2.jar:.:/home/java/jdk1.2.2/lib:/usr/lib/pgsql:/usr/lib/pgsql/classes.zip:/usr/lib/pgsql/pg.jar

而 jdbc*.jar 的版本号码要正确。
*.jar 档要放在 /usr/lib/pgsql 和  /usr/libjdk*/lib 目录中。

bash$ export CLASSPATH=/usr/lib/pgsql/jdbc7.0-1.2.jar:.:/home/java/jdk1.2.2/lib:/usr/lib/pgsql:/usr/lib/pgsql/classes.zip:/usr/lib/pgsql/pg.jar

编辑所有 psql.java 档,把?package'的行变为评论。
bash$ javac psql.java
bash$ java psql jdbc:postgresql:template1 postgres < password >[1] select * from pg_tables;
tablename       tableowner      hasindexes      hasrules
pg_type postgres        true    false   false
pg_attribute    postgres        true    false   false
[2]
CTRL+C
bash$

……你直接用 Java 界面来存取 PostgreSQL 资料库!

6.9 测试 ecpg 界面

安装 examples 套件,请参阅 例子 RPM,之后 


root# chown -R postgres.postgres /var/lib/pgsql/examples
bash$ cd /var/lib/pgsql/examples/ecpg
bash$ ecpg test1.pgc -I/usr/include/pgsql
bash$ cc test1.c -I/usr/include/pgsql -lecpg -lpq -lcrypt
bash$ createdb mm
bash$ ./a.out

……你直接用嵌入式 SQL 来存取 PostgreSQL 资料库!

6.10 测试 SQL 的例子 自订资料型态和函数

安装 examples 套件,请参阅 例子 RPM,之后 


root# chown -R postgres.postgres /var/lib/pgsql/examples
bash$ cd /var/lib/pgsql/examples/sql
未写好…

6.11 测试 Tcl/TK 界面

Tck/Tk 的例子是 pgaccess 程序。 使用一个文字编辑器阅读 /usr/bin/pgaccess 文档 


bash$ view /usr/bin/pgaccess
bash$ export DISPLAY=<你电脑的主机名>:0.0
bash$ createdb mydb
bash$ pgaccess mydb

6.12 测试 ODBC 界面

  1. http://www.insightdist.com/psqlodbc/ 取得 win32 pgsql odbc 驱动程序
  2. 另外请参阅 /usr/lib/libpsqlodbc.a

6.13 测试 MPSQL Motif-worksheet 界面

http://www.mutinybaysoftware.com 取得 RPM。

6.14 确认

要确认 PostgreSQL 的高品质,执行 Regression 测试套件︰ 以 root 身份签入


# rpm -i postgresql*test.rpm
阅读 README 档或安装源程序,它已有 regress 目录
# rpm -i postgresql*.src.rpm
# cd /usr/src/redhat/SPECS
# more postgresql*.spec (以察看需要安装哪些 RPM 套件)
# rpm -bp postgresql*.spec (…这样会准备该套件)

Regression 测试需要 Makefiles 和类似 *fmgr*.h 的标头档,可用以下指令
产生 
# rpm --short-circuit -bc postgresql*.spec (走捷径!)
看到?make -C common  SUBSYS.o'后按 CTRL-C 终止工作。这时候 configure 
已经成功,所有 Makefiles 和标头档也已产生。你不再需要让它继续下去。
# cd /usr/src/redhat/BUILD
# chown -R postgres postgresql*
# su - postgres
bash$ cd /usr/src/redhat/BUILD/postgresql-6.5.3/src/test/regress
bash$ more README
bash$ make clean; make all runtest
bash$ more regress.out

6.15 紧急除错

有时除错嵌补会在主要的推出 PostgreSQL 的主要版本之后出现。你可依据自己需要,自行进行修补。请跟从以下步骤︰ 到 postgresql 程序码的目录

                # rpm -i postgresql*.src.rpm
                # cd /usr/src/postgresql6.5.3
                # man patch
                # patch -p0 < patchfile
                # make clean
                # make
嵌补档是在
Next Previous Contents