Linux下安装Postgresql-9.0.x提示:Cannot read termcap databass

使用在postgresql.org下载的x86_64二进制版的postgres 9.0.3安装包,解压到了/opt/pgsql。使用initdb命令初始化数据库后向往常一样使用psql命令登陆数据库,提示找不到termcap等一些动态库,把/opt/pgsql/lib目录加入LD_LIBRARY_PATH环境变量就好了。

再次使用psql登陆数据库,却提示如下错误:

[yangjing@yangxunjing ~]$ /opt/Netposa/usr/pgsql/9.0/bin/psql -p 5433 -U yangjing -d netposa  
psql (9.0.3)  
Type "help" for help.  
Cannot read termcap database;  
using dumb terminal settings.  
Aborted  

google查找后说是缺少termcap库,但是在/opt/pgsql/lib目录下是有这个库的:libtermcap.so.2,我给它做了个软链接libtermcap.so后再次运行psql命令错误依旧。后来安装了系统自带的compat-libtermcap-2.0.8-49.el6.x86_64软件包后就可以正常运行psql命令登陆数据库了。发现termcap包在/etc目录下生成了一个termcap数据库文件。我把/etc/termcap文件备份后删除compat-libtermcap软件包,再把termcap文件拷贝回/etc目录再次运行psql命令也能正常登陆postgresql数据库。看来我只需要把termcap文件留个备份就好了,以后再次使用官方的二进包安装时将其放到/etc目录就行了。

(注:使用rpm包安装的不需要termcap数据文件,看了下psql的库依赖都没有使用到libtermcap.so。不知道官方的二进制包为什么需要这个库。现在大部份软件都是使用的ncurses了。)

分享到