我尝试使用 Yum 在 Fedora 17 上安装 Postgres 9.1.4。如果我这样做:
sudo yum install postgres-libs
sudo yum install postgres
sudo yum install postgis
所有安装似乎都成功完成(即没有错误),但我无法使用以下命令启动 Postgres 守护程序:
service postgresql initdb
就像 Postgres 官方下载指南所说的那样(http://www.postgresql.org/download/linux/redhat/)。错误提示为Unknown operation initdb
。
RPM 告诉我它将 psql 安装到了/usr/bin/
,我确认了这一点。结果发现只有几个组件安装正确(psql
、pg_dump
、pg_configure
和其他几个组件),但大多数都缺失了(例如pg_ctl
和postgres
)。
我尝试了几种不同的配置,并让我的几位同事(比我更有 Linux 经验)查看了它,但到目前为止,什么都没起作用。其中两个人在 Ubuntu 上使用 apt-get 安装 Postgres 时也遇到了类似的问题,这让我认为 rpm 没有发挥作用。似乎唯一的解决方案是从源代码构建它,无论如何这更可靠,但当然需要更长的时间。
不过,我想知道是否有其他人遇到过这个问题和/或使用 yum 或 apt-get 等包管理器在 Fedora 或 Ubuntu 上成功安装了 Postgres?rpm 坏了吗?
答案1
该service postgresql initdb
命令不起作用,因为现在service
只调用 systemd,所有这些随机辅助函数都消失了。如文档所述这里,你现在需要做:
sudo postgresql-setup initdb
去完成同样的事情。
其余的谜团也很简单:您丢失了包裹postgresql-server
。
sudo yum install postgresql-server
然后您将得到/usr/bin/pg_ctl
和/usr/bin/postgres
。运行yum search postgres
是一种寻找线索的有效方法,但您也可以执行sudo yum install /usr/bin/pg_ctl
或类似操作,yum 将找出哪个软件包提供了丢失的文件。