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 +  (让 postgres 使用显示装置)
# su - postgres
bash$ man createdb
bash$ createdb mydatabase
bash$ man psql
bash$ psql mydatabase
……在 psql 中可按上 / 下箭咀来编辑历史记录或 \s

bash$ export DISPLAY=<hostname>: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 package manager 以管理 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 套件,请参阅 Examples RPM ,之後□


bash$ cd /usr/lib/pgsql/python
bash$ createdb thilo
bash$ psql thilo
thilo=> create table test (aa char(30), bb char(30) );
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 套件,请参阅 Examples RPM ,之後□


bash$ cd /usr/doc/postgresql-6.5.3/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 套件,请参阅 Examples RPM ,之後□


bash$ su root   --> 为改变例子的拥有权
# chown -R postgres /usr/doc/postgresql-6.5.3/examples
# exit

bash$ cd /usr/doc/postgresql-6.5.3/examples/libpq
bash$ gcc testlibpq.c -I/usr/include/pgsql -lpq
bash$ export PATH=$PATH:.
bash$ a.out

bash$ cd /usr/doc/postgresql-6.5.3/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 套件,请参阅 Examples RPM 和安装以下东西。 为了这项,你必须安装 jdk-*glibc*.rpm 套件(Java RPM 套件)


bash$ cd /usr/doc/postgresql-6.5.3/examples/jdbc
bash$ echo $CLASSPATH
 --> 需要显示  CLASSPATH=/usr/lib/jdk-x.x.x/lib/classes.zip
x.x.x 是版本号码。
bash$ export CLASSPATH=$CLASSPATH:.:/usr/lib/pgsql/jdbc6.5-1.2.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 套件,请参阅 Examples RPM ,之後□


bash$ cd /usr/doc/postgresql-6.5.3/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 的例子□自订资料型态和函数


bash$ cd /usr/doc/postgresql-6.5.3/examples/sql
未写好…

6.11 测试 Tcl/TK 介面

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


bash$ view /usr/bin/pgaccess
bash$ export DISPLAY=<hostname of your machine>: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 终止工作。这时候设定已经
成功,所有 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