tohokuaikiのチラシの裏

技術的ネタとか。

Ubuntu server を14から16にアップグレードしてPostgresを9.5にする

Postgresqlの9.5を使いたくなったのだけど、Ubuntu14だと9.3なのでUbuntu16にアップデートしてPostgresを9.5にしようということに。

あ、UbuntuはもちろんUbuntuサーバーです。

とりあえず、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のバージョン違いとかクラスタにして管理するとかがあるらしい。

lets.postgresql.jp

この同居機能もその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:通常のコマンドを使うというのはかなりのメンテナンスモードなので誤操作防止のための設定値。