要安裝 readline , readline-dev 開發包,要麼使用 --without-readline 選項關閉 readline 功能。php
#yum install readline;html
#yum install readline-dev;linux
readline 也就是命令行編輯,關閉的話,你直接用psql 就不能編輯命令行,若是輸錯指令,不能回滾命令歷史記錄,只能手工從新輸入。sql
在安裝postgreSQL的過程當中遇到一個問題,在執行 configure數據庫
過程當中報如下錯誤,configure: error: readline library not found ,但是我在系統中安裝
readline 包了,服務器
1 環境信息
socket
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.async
根據提示,應該是沒有安裝 readline包。ide
3 檢查系統是否安裝 readline 包
[root@HK81-107 postgresql-9.0.0]# rpm -qa | grep readline
readline-5.1-3.el5post
說明系統已經安裝了 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