麻烦在Centos 5上使用postgis开始postgres

时间:2013-09-24 20:24:37

标签: linux postgresql postgis centos5

我想在Centos5 64位机器上使用带postgis的postgresql。

我首先使用以下命令作为root:

> yum install postgresql

> yum install postgresql-server

> yum install postgresql-contrib

他们似乎成功了,但服务不会以'service postgresql start'开头。我试图找出它是否是一个版本问题,就像我需要说'service postgresql-8.4 start'之类的东西,而不是(我遇到过不同的Linux操作系统)。确定安装了哪些postgres:

> yum list postgres* 

并且有一些postgres项目在版本列中说8.1。

然后我在某处读到了需要8.2或更高版本的postgis才能工作,所以我尝试使用以下命令卸载8.1版本:

> rpm -e postgresql-server 
> rpm -e postgresql-contrib
> rpm -e postgresql

我没有得到任何错误,所以我认为它有效。

然后我按照本页http://postgis.net/install/上的说明安装了在postgresql上托管的8.4版postgis,但是避免了关于更改yum存储库文件的部分(步骤2),因为在我的情况下,我似乎没有想要排除postgres *的更新。

所以我先做了wget

> wget http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm

(忽略第2步和第3步,因为我已经rpm了postgresql-server) 接下来,我做了

> yum install postgis21

由于postgis2(如说明书中所示)不可用。我还安装了84服务器。

> yum install postgresql84-server

现在好像我安装了8.1和8.4件。

> yum list posgres*

Installed Packages
postgresql-libs.i386                     8.1.23-6.el5_8                installed
postgresql-libs.x86_64                   8.1.23-6.el5_8                installed
postgresql84.x86_64                      8.4.13-1.el5_8                installed
postgresql84-libs.x86_64                 8.4.13-1.el5_8                installed
postgresql84-server.x86_64               8.4.13-1.el5_8                installed
postgresql92-libs.x86_64                 9.2.0-og1                     installed
Available Packages
postgresql.x86_64                        8.1.23-6.el5_8                base     
postgresql-contrib.x86_64                8.1.23-6.el5_8                base     
postgresql-devel.i386                    8.1.23-6.el5_8                base     
postgresql-devel.x86_64                  8.1.23-6.el5_8                base     
postgresql-docs.x86_64                   8.1.23-6.el5_8                base     
postgresql-jdbc.x86_64                   8.1.407-1jpp.4                base     
postgresql-odbc.x86_64                   08.01.0200-3.1                base     
postgresql-odbc64.x86_64                 09.00.0200-1.el5              base     
postgresql-pl.x86_64                     8.1.23-6.el5_8                base     
postgresql-python.x86_64                 8.1.23-6.el5_8                base     
postgresql-server.x86_64                 8.1.23-6.el5_8                base     
postgresql-tcl.x86_64                    8.1.23-6.el5_8                base     
postgresql-test.x86_64                   8.1.23-6.el5_8                base     
postgresql84-contrib.x86_64              8.4.13-1.el5_8                base     
postgresql84-devel.i386                  8.4.13-1.el5_8                base     
postgresql84-devel.x86_64                8.4.13-1.el5_8                base     
postgresql84-docs.x86_64                 8.4.13-1.el5_8                base     
postgresql84-libs.i386                   8.4.13-1.el5_8                base     
postgresql84-plperl.x86_64               8.4.13-1.el5_8                base     
postgresql84-plpython.x86_64             8.4.13-1.el5_8                base     
postgresql84-pltcl.x86_64                8.4.13-1.el5_8                base     
postgresql84-python.x86_64               8.4.13-1.el5_8                base     
postgresql84-tcl.x86_64                  8.4.13-1.el5_8                base     
postgresql84-test.x86_64                 8.4.13-1.el5_8                base     
postgresql92.x86_64                      9.2.0-og1                     opengeo  
postgresql92-contrib.x86_64              9.2.0-og1                     opengeo  
postgresql92-devel.x86_64                9.2.0-og1                     opengeo  
postgresql92-docs.x86_64                 9.2.0-og1                     opengeo  
postgresql92-plperl.x86_64               9.2.0-og1                     opengeo  
postgresql92-plpython.x86_64             9.2.0-og1                     opengeo  
postgresql92-pltcl.x86_64                9.2.0-og1                     opengeo  
postgresql92-server.x86_64               9.2.0-og1                     opengeo

我陷入了此处显示的周期:

> service postgresql start

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize
 the cluster first.  [FAILED]

> service postgresql initdb

Initializing database: mkdir: cannot create directory `/var/lib/pgsql/data/pg
_log': File exists

> rm -rf /var/lib/pgsql/data/pg_log

(好的,它将其删除)

> service postgresql initdb

回复显示“初始化数据库:”,冒号后面没有任何内容。

> service postgresql start

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize
 the cluster first.  [FAILED]

> service postgresql initdb

Initializing database: mkdir: cannot create directory `/var/lib/pgsql/data/pg
_log': File exists

等等......

可能有这些不同的版本吗?还有其他想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

当您安装RedHat(通过centos)postgresql时,它希望拥有基础/var/lib/pgsql/data文件夹的所有权,因为RHEL不希望您安装更新的postgresql主要版本。 PGD​​BG提供的rpms允许存在多个版本,并将数据安装到/var/lib/psql/VERSION/data,其中版本会根据您安装的内容进行更改。

如果您希望坚持使用RHEL提供的postgresql,您可能需要首先清除整个/var/lib/pgsql/data目录,然后尝试使用initdb。当然,如果您有现有的数据库数据,请不要这样做!

我建议您通过PGDBG尝试9.3版本的postgresql。