【问题标题】:Postgresql 9.2 on Centos 5, rails, bundle - PostgreSQL is too old [closed]Centos 5、rails、bundle 上的 Postgresql 9.2 - PostgreSQL 太旧了[关闭]
【发布时间】:2014-05-02 19:27:54
【问题描述】:

这让我发疯了

首先,我从石器时代就开始使用的托管服务提供商在更新到 Centos 6 方面一直在拖延,从我所读到的内容,我可以看出原因。

我没有等待下一个冰河时代过去,而是阅读了instructions for just updating postgresql 9.2 on Centos 5,这是我运行捆绑安装所需的全部内容,它告诉我我的 PostgreSQL 太旧了 - PostgreSQL 8.1.23

更新启动后,返回消息如下:

[root@vps data]# /etc/init.d/postgresql-9.2 start
/etc/rc.d/init.d/functions: fork: Cannot allocate memory
/etc/profile.d/lang.sh: line 53: /sbin/consoletype: Argument list too long
Starting postgresql-9.2 service:                           [  OK  ]

开始了,很棒 - 对吧?

不,

[root@vps data]# psql --version
psql (PostgreSQL) 8.1.23
contains support for command-line editing

如果 9.2 开始了,那为什么还是说 8.1.23?

也许我只需要重新启动

reboot -i

ssh back in psql --version 仍然显示 PostgreSQL 8.1.23 - WTF?

我运行 /etc/init.d/postgresql-9.2 start - 它启动 - 好的,很酷

bundle install

Make sure that `gem install pg -v '0.17.1'` succeeds before bundling

gem install pg -v '0.17.1'

我仍然收到错误:

checking for PQconnectionUsedPassword()... no
Your PostgreSQL is too old. Either install an older version of this gem or upgrade your    database.
*** extconf.rb failed ***

所以,我的终极问题是:

如果postgresql 9.2启动了,为什么说我运行的是8.1.23?

我是否必须 rm -rf 整个 /usr/bin/psql 并重新开始?

【问题讨论】:

  • 这个问题听起来更像是关于软件设置而不是与编程相关的问题。我将建议将此问题移至 ServerFault,在那里您将获得更好(即更有经验)与 devops 相关的帮助。

标签: ruby-on-rails postgresql centos5


【解决方案1】:

PostgreSQL 开发组有适用于 CentOS 5 上 Pg 9.3 的软件包。

yum.postgresql.org

但是,安装 Pg 9.3 不会删除 8.1。它仍然会在您的PATH 上。它也会继续运行。

如果您想使用 9.3 psqllibpq,您需要更改您的 PATHLD_LIBRARY_PATH 以首选 PostgreSQL 9.3 安装。然后针对新的libpq 重建Pg gem。

类似:

export PATH="/usr/pgsql-9.3/bin:$PATH"
export LD_LIBRARY_PATH="/usr/pgsql-9.3/lib/:$LD_LIBRARY_PATH"
gem uninstall pg
gem install pg

如果您希望这在全局范围内生效,您可以修改/etc/ld.so.conf 以默认放置新路径,并修改/etc/environment 以适当地设置PATH

否则,请将前两行添加到您的~/.bash_profile

另外,这些是相当令人担忧的:

/etc/rc.d/init.d/functions: fork: Cannot allocate memory
/etc/profile.d/lang.sh: line 53: /sbin/consoletype: Argument list too long

因为他们建议系统上的某些内容不匹配/损坏。不一定与 PostgreSQL 相关。您是否强制安装了任何 RPM 或使用了任何第 3 方存储库?

【讨论】:

  • /etc/postgresql-pgdg-libs.conf 具有 9.2 路径。我只安装了 Gemfile 中的内容,据我所知,没有第 3 方存储库。顺便说一句,对于迟到的回复感到抱歉,睡着了——当尝试运行 gem install pg 时,PostgreSQL 仍然有旧消息
  • 如果你想知道我是如何修复它的:rm -rf /usr/psql/bin /etc/init.d/postgresql-9.2 start gem install pg -- --with-opt- lib=/usr/postgresql-9.2/lib --with-pg-config=/usr/postgresql-9.2/bin/pg_config # 同时搜索检查 PQconnectionUsedPassword()... no gem install pg -v '
  • 顺便说一句,感谢你们的帮助 - kronusproductions.com:3000 - Rails 的新手,但它是基于 github Cafe Townsend 项目的完整 Angular/RoR 项目
  • 另外,我必须删除操作系统的 /usr/bin/psql 目录才能看到 postgresql-9.2,以及初始化 9.2。我觉得这有点奇怪,因为我使用 sqlite3 作为数据库
  • 啊,不要直接从/usr删除。使用 rpm / dpkg 卸载软件包。
猜你喜欢
  • 2020-12-02
  • 1970-01-01
  • 2014-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多