我无法使用 apt 安装 postgresql。
postgresql-9.1(或 postgresql-9.3)安装失败,显示:
* Starting PostgreSQL 9.1 database server
* Error: could not exec /usr/lib/postgresql/9.1/bin/pg_ctl /usr/lib/postgresql/9.1/bin/pg_ctl start -D /var/lib/postgresql/9.1/main -l /var/log/postgresql/postgresql-9.1-main.log -s -o -c config_file="/etc/postgresql/9.1/main/postgresql.conf" :
[fail]
invoke-rc.d: initscript postgresql, action "start" failed.
当我尝试/usr/lib/postgresql/9.1/bin/pg_ctl /usr/lib/postgresql/9.1/bin/pg_ctl start -D /var/lib/postgresql/9.1/main -l /var/log/postgresql/postgresql-9.1-main.log -s -o -c config_file="/etc/postgresql/9.1/main/postgresql.conf"
直接执行时,它会失败并显示:
/usr/lib/postgresql/9.1/bin/pg_ctl: symbol lookup error: /usr/lib/postgresql/9.1/bin/pg_ctl: undefined symbol: PQping
这是我的系统信息:
$ uname -a
Linux daclin 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
你知道发生什么事了吗?
答案1
我自己也遇到过同样的挫折。我使用这种方法解决了这个问题:
我们正在从存储库中删除 postgresql 的 apt。
sudo apt-get remove -y --purge postgresql*
然后,我们制作源列表以从公司直接下载 Postgre。
sudo touch /etc/apt/sources.list.d/pgdg.list
sudo nano /etc/apt/sources.list.d/pgdg.list
并将此行添加到 12.04 或 12.10 的 pgdg.list 中:
deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
适用于 13.04 或 13.10
deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main
然后按 ctrl-x 保存 pgdg.list,最后返回命令行。
然后我们获取密钥以使用此 deb 包:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo apt-key add -
sudo apt-get update
然后它将安装 postgresql-9.3。
答案2
好吧,我终于找到问题了。与 libpq.so 有冲突。它实际上被安装了两次。
跑步ldconfig -v | grep libpq
显示:
libpq.so.5 -> libpq.so.5.1
libpq.so.5 -> libpq.so.5.6
我删除了第一个,现在它运行得很好。这个问题确实是我的设置特有的,但无论如何它可能有帮助……