Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 385|回复: 0

安装postgreSQL出现configure:error:readline library not found解决方法

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-16 11:38:38 | 显示全部楼层 |阅读模式

    要安装 readline , readline-dev 开发包,要么使用 --without-readline 选项关闭 readline 功能。

    #yum install readline;

    #yum install readline-dev;


    readline 也就是命令行编辑,关闭的话,你直接用psql 就不能编辑命令行,如果输错指令,不能回滚命令历史记录,只能手工重新输入。

     


     

    在安装postgreSQL的过程中遇到一个问题,在执行 configure

    过程中报以下错误,configure: error: readline library not found ,可是我在系统中安装
    readline 包了,

    1 环境信息

    2 根据提示,测试了下 configre命令,果然报这个错
    [root@HK81-107 postgresql-9.0.0]# ./configure
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking which template to use... linux
    checking whether to build with 64-bit integer date/time support... yes
    checking whether NLS is wanted... no
    checking for default port number... 5432
    checking for block size... 8kB
    checking for segment size... 1GB
    checking for WAL block size... 8kB
    checking for WAL segment size... 16MB
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables... 
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking if gcc supports -Wdeclaration-after-statement... yes
    checking if gcc supports -Wendif-labels... yes
    checking if gcc supports -fno-strict-aliasing... yes
    checking if gcc supports -fwrapv... yes
    checking whether the C compiler still works... yes
    checking how to run the C preprocessor... gcc -E
    checking allow thread-safe client libraries... yes
    checking whether to build with Tcl... no
    checking whether to build Perl modules... no
    checking whether to build Python modules... no
    checking whether to build with GSSAPI support... no
    checking whether to build with Kerberos 5 support... no
    checking whether to build with PAM support... no
    checking whether to build with LDAP support... no
    checking whether to build with Bonjour support... no
    checking whether to build with OpenSSL support... no
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ld used by GCC... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for ranlib... ranlib
    checking for strip... strip
    checking whether it is possible to strip libraries... yes
    checking for ar... ar
    checking for tar... /bin/tar
    checking whether ln -s works... yes
    checking for gawk... gawk
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for bison... no
    configure: WARNING:
    *** Without Bison you will not be able to build PostgreSQL from CVS nor
    *** change any of the parser definition files.  You can obtain Bison from
    *** a GNU mirror site.  (If you are using the official distribution of
    *** PostgreSQL then you do not need to worry about this, because the Bison
    *** output is pre-generated.)
    checking for flex... no
    configure: WARNING:
    *** Without Flex you will not be able to build PostgreSQL from CVS nor
    *** change any of the scanner definition files.  You can obtain Flex from
    *** a GNU mirror site.  (If you are using the official distribution of
    *** PostgreSQL then you do not need to worry about this because the Flex
    *** output is pre-generated.)
    checking for perl... /usr/bin/perl
    configure: using perl 5.8.8
    checking for main in -lm... yes
    checking for library containing setproctitle... no
    checking for library containing dlopen... -ldl
    checking for library containing socket... none required
    checking for library containing shl_load... no
    checking for library containing getopt_long... none required
    checking for library containing crypt... -lcrypt
    checking for library containing fdatasync... none required
    checking for library containing gethostbyname_r... none required
    checking for library containing shmget... none required
    checking for -lreadline... no
    checking for -ledit... no
    configure: error: readline library not found
    If you have readline already installed, see config.log for details on the
    failure.  It is possible the compiler isnt looking in the proper directory.
    Use --without-readline to disable readline support.

         根据提示,应该是没有安装 readline包。

    3 检查系统是否安装 readline 包
    [root@HK81-107 postgresql-9.0.0]# rpm -qa | grep readline
    readline-5.1-3.el5

       说明系统已经安装了 readline包。

    4 通过 yum 搜索相关的 readline 包
    [root@HK81-107 postgresql-9.0.0]# yum search readline
    lftp.i386 : A sophisticated file transfer program
    lftp.i386 : A sophisticated file transfer program
    php-readline.i386 : Standard PHP module provides readline library support
    lftp.i386 : A sophisticated file transfer program
    readline.i386 : A library for editing typed command lines.
    compat-readline43.i386 : The readline 4.3 library for compatibility with older software.
    readline-devel.i386 : Files needed to develop programs which use the readline library.
    readline.i386 : A library for editing typed command lines.

     根据提示,有一个包引起了注意 "readline-devel", 猜想可能与这个包有关。
     
    5 安装 readline-devel 包
    [root@HK81-107 postgresql-9.0.0]# yum -y install -y readline-devel
    Setting up Install Process
    Parsing package install arguments
    Resolving Dependencies
    --> Running transaction check
    ---> Package readline-devel.i386 0:5.1-3.el5 set to be updated
    --> Processing Dependency: libtermcap-devel for package: readline-devel
    --> Running transaction check
    ---> Package libtermcap-devel.i386 0:2.0.8-46.1 set to be updated
    --> Finished Dependency Resolution

    Dependencies Resolved

    =============================================================================
     Package                 Arch       Version          Repository        Size 
    =============================================================================
    Installing:
     readline-devel          i386       5.1-3.el5        base              146 k
    Installing for dependencies:
     libtermcap-devel        i386       2.0.8-46.1       base               56 k

    Transaction Summary
    =============================================================================
    Install      2 Package(s)         
    Update       0 Package(s)         
    Remove       0 Package(s)        

    Total download size: 201 k
    Downloading Packages:
    (1/2): libtermcap-devel-2 100% |=========================|  56 kB    00:00     
    (2/2): readline-devel-5.1 100% |=========================| 146 kB    00:00     
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing: libtermcap-devel             ######################### [1/2] 
      Installing: readline-devel               ######################### [2/2]

    Installed: readline-devel.i386 0:5.1-3.el5
    Dependency Installed: libtermcap-devel.i386 0:2.0.8-46.1
    Complete!

    6 再次执行 configure 成功。

    7 还有一种解决方法:在configure 加上参数 --without-readline ,不过这样就不可以在命令行里面输入了,所以不建议这样。。。

    8 configure 成功之后接着就是make了

    9 make之后就是make install之后安装成功的话就会出现如下图所示的界面

     10.修改postgreSQL安装目录的权限,默认的安装目录在/usr/local/pgSQL下

    修改权限命令为chmod -R 777 /usr/local/pgSQL

    运行之后pgSQL目录下面的所有文件都会有XWR(X:可执行,W:可写,R:可读)权限。命令中的-R参数说明是 递归的把文件夹pgSQL目录及其目录下的所有文件都修改为相应的权限,777就是代表加上对本用户,本用户组的其他用户和不是这个组的用户增加XWR权 限。

     

    11.

    到此,PostgreSQL的安装完成了,接下来可以试着用用这个开源数据库啦…

    1):首先是初始化数据库。进入刚刚安装PG的文件夹/home/pg/postgr(这是我安装pg的目录,默认的安装目录是在/usr/local/pgSQL下),输入./bin/initdb –D ../data. 这里的命令格式还需要查明白,特别是-D等参数的意义。这样会在postgr下面产生一个data文件夹。

    2):启动数据库服务器。./bin/postmaster –D ./data&. 其中&的意义需要弄明白,差这一个符号就会导致一定的问题,貌似启动数据库服务器还可以使用另外的命令:/bin/postgres -D ./data 或者是 ./bin/pg_ctl -D ./data -l logfile start。这些命令的区别可以自己查查手册或者咨询一下助教。

     

     

    3):在另外一个命令行下面,创建一个本地数据库。./bin/createdb testdb,其中testdb是数据库名。在data目录下会产生一个文件夹

     

     

    4):链接数据库服务器。./bin/psql testdb. 此时,输入help可以获得帮助。见下图

     

     

     

    5):访问数据库。这里就是输入sql命令了,以后调试的入口就是这里吧。结束后按\q退出。

     

    6):最后是关闭数据库服务器。./bin/pg_ctl stop –D ./data.

    12.That's all!


    另外可能会报下面的问题:

    ./configure --prefix=/usr/local/pgsql

    .....

    configure: error: zlib library not found
    If you have zlib already installed, see config.log for details on the
    failure.  It is possible the compiler isn't looking in the proper directory.
    Use --without-zlib to disable zlib support.

     

    解决方法

    yum install zlib-devel;

     

    参考:

    http://www.cnblogs.com/shuaixf/archive/2011/11/29/2268292.html

    http://www.cnblogs.com/shuaixf/archive/2011/11/29/2268298.html

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 01:03 , Processed in 0.069460 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表