Closed. This question is off-topic。它目前不接受答案。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
5年前关闭。
这让我发疯了
首先,我的主机供应商,我一直与石器时代,是拖拖拉拉的更新到Centos 6,从我所读的,我可以看出为什么。
我没有等到下一个冰河世纪过去,而是阅读了on-topic,这是我运行bundle安装所需的全部内容,它告诉我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回到psql——版本仍然显示PostgreSQL 8.1.23-WTF?
我运行/etc/init.d/postgresql-9.2 start-it-starts-OK,酷
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?
我需要对整个/usr/bin/psql进行rm-rf并重新开始吗?

最佳答案

PostgreSQL开发组在CentOS 5上有Pg 9.3的包。
yum.postgresql.org
但是,安装Pg 9.3不会删除8.1。它仍然在你的PATH上。它也会继续运行。
如果您想使用9.3psqllibpq,则需要更改PATHLD_LIBRARY_PATH以首选PostgreSQL 9.3安装。然后根据新的Pg重新构建libpqgem。
类似于:

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
另外,这些都相当令人担忧:
/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或使用了任何第三方回购?

关于ruby-on-rails - Centos 5,rails,bundle上的Postgresql 9.2-PostgreSQL太旧了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22626366/

10-12 00:38
查看更多