很诡异的,在Ubuntu-9.10 下面安装没有任何问题的Postgresql-9.0.0 源码包拿到 CentOS-5.4下面安装后,运行时就遇见提示:
"语法错误 postgresql.conf 符号 MB 附近不能识别“,
英文提示应该为:
"syntax error in file postgresql.conf near token MB"。
这个着实废了很大的劲,使用中英文关键字分别去Google,后来发现一个 postgresql官网上的讨论帖,见链接: 说到:
“Postgres 在 8.2之前不能够识别像 MB 这样的单位”
“Postgres did not recognize units like MB prior to 8.2.”
晕死,然后识别方式是运行 /usr/local/pgsql/bin (我的目录)下的 pg_ctl文件:
./pg_ctl --version ,看输出的版本号是否是小于 8.3 的。
这么一看,果不其然,版本号是 8.1.XX,但是相同的安装包在Ubuntu-9.10 下面安装的却是 9.0.0 版本,这个是为什么呢.....
后来使用 yum install postgresql 在 CentOS 上面安装 PostgreSql,发现默认的版本是 8.1.xx,难道安装的时候是安装的这个默认版本对应的 pg_ctl 程序?
如果是这洋的话,也应该是 configure 文件里自己根据判断这么安装的,因为两个安装都是自动的,出现不同只能说是配置文件里面的问题,此时,一个想法冒出来,还是猜测,那就是安装时使用了 --with-lib=/usr/bin 选项来包含 readline 库的 readline.h 文件所在的文件夹,但是 /usr/bin 下面还可能有很多其他的库呢,可不可能 configure 文件在做判断时先判断了一下系统啊什么的,然后直接给安装了一个 8.1.XX 版本的pg_ctl 呢?
后来,又去下载了 postgresql-9.0.2 来进行安装,这次使用选项 --with-lib=/usr/bin/readline 来安装,结果 pg_ctl 版本为 9.0.2.
但是,由于前后使用了不同的版本来测试 --with-lib 这个配置选项,所以并不清楚是不是这个选项导致的 pg_ctl 版本的不同。
PS:--with-lib=/usr/bin 选项只和 readline 库有关,没有这个选项的话,只在 lreadline和 ledit 库安装的时候出错,而使用 --without-readlin 选项可以编译出一个不带回查历史命令,不可以在命令行编辑命令的 postgresql 出来。
果冻
Wen, Jan/19/2011.
阅读(1981) | 评论(1) | 转发(0) |