めもめも のーと

ハマったこととか、覚えたこととか

psqlのバージョンをあげた話

CentOS6系でyumでインストールしたPostgreSQLpsql で操作すると、以下のような警告が毎回出るので、対応した手順をメモします。

# psql -U postgres
psql (8.4.20, server 9.3.10)
WARNING: psql version 8.4, server version 9.3.
         Some psql features might not work.
Type "help" for help.

PostgreSQLのバージョンは9.3.10

postgres=# SELECT version();
                                                    version
----------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.3.10 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16), 64-bit
(1 row)

原因は、psqlの古いモジュールが使われているせいみたいなので、 rpmの古いモジュールをアンインストールします。

# rpm -qa | grep postgres
postgresql93-9.3.10-1PGDG.rhel6.x86_64
postgresql93-server-9.3.10-1PGDG.rhel6.x86_64
postgresql-libs-8.4.20-4.el6_7.x86_64
postgresql93-libs-9.3.10-1PGDG.rhel6.x86_64
postgresql93-contrib-9.3.10-1PGDG.rhel6.x86_64
postgresql-devel-8.4.20-4.el6_7.x86_64
postgresql-8.4.20-4.el6_7.x86_64

元から入っていた(?)8.4.20系のモジュールを削除します。

# rpm -e postgresql-devel-8.4.20-4.el6_7.x86_64
# rpm -e postgresql-8.4.20-4.el6_7.x86_64
# rpm -e postgresql-libs-8.4.20-4.el6_7.x86_64

psqlコマンドを使うと、パスが無くなってしまっているのでエラーになりました。

# psql
-bash: /usr/bin/psql: No such file or directory

9.3.10系のパスは /usr/pgsql-9.3/binなので、あとはどういう形でもいいのでパスを通せば完成です。 今回は下記一行を新規作成したファイルに追記しました。

# vim /etc/profile.d/psql93.sh
export PATH=$PATH:/usr/pgsql-9.3/bin

警告が出なくなりました。よかった。

# psql -U postgres
psql (9.3.10)
Type "help" for help.

vagrantで作った環境に元から8.4.20系のpostgresモジュールが入ってたのかも知れません(未確認。。)