Postgresqlの9.5を使いたくなったのだけど、Ubuntu14だと9.3なのでUbuntu16にアップデートしてPostgresを9.5にしようということに。
とりあえず、Ubuntuのアップデート
死ぬほど簡単だった。
$ sudo do-release-upgrade -d
これだけ。色々とY/Nはあったけど。
Postgres9.5のインストールと起動
とりあえず、
$ sudo apt-get install postgresql-9.5 $ sudo apt-get install postgresql-client-9.5
ほんで、
$ sudo service postgresql stop $ sudo service postgresql start
とすると、9.3と9.5が同時に立ち上がる。ポートが違う。
postgres@localhost:~$ psql -p 5432 psql (9.5.3, server 9.3.13) Type "help" for help. postgres=# select version(); version -------------------------------------------------------------------------------------------------------------- PostgreSQL 9.3.13 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4, 64-bit (1 row) postgres=# \q postgres@localhost:~$ psql -p 5433 psql (9.5.3) Type "help" for help. postgres=# select version(); version ---------------------------------------------------------------------------------------------------------- PostgreSQL 9.5.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413, 64-bit (1 row)
こんな感じ。
9.3は普通に使わないので
Ubuntuの機能として、Postgresのバージョン違いとかクラスタにして管理するとかがあるらしい。
この同居機能もその1つなので、OFFにしてやる。
$ emacs /etc/postgresql/9.3/main/start.conf manual
として、通常のinitでは起動しなくする。
disabledとすると通常のinitどころかUbuntuのPostgres制御コマンドのpg_ctlclusterでも使えない。ただし、pg_ctlclusterではなく通常のPostgresコマンドを使えば問題なく起動できる。*1
ついでにポートを通常値にしておく。
9.3が5432ポートを使ってたので、9.5がそれを使うようにする。 /etc/postgresql/9.5/main/postgresql.conf
port = 5432
/etc/postgresql/9.3/main/postgresql.conf
port = 5433
とする。
# /etc/init.d/postgresql restart # su - postgres -c "psql" psql (9.5.3) Type "help" for help. postgres=# select version(); version ---------------------------------------------------------------------------------------------------------- PostgreSQL 9.5.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413, 64-bit (1 row)
*1:通常のコマンドを使うというのはかなりのメンテナンスモードなので誤操作防止のための設定値。