PostgreSQL 10 を Ubuntu 16.04 LTS にインストールする手順

投稿者 : OSCA

[PR] "出川哲朗の充電させてもらえませんか?"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

 本稿ではデータベースサーバー PostgreSQL 10 を Ubuntu 16.04 LTS にインストールする手順について解説します。 本稿の手順は、PostgreSQL の公式ページに記載されている手順に準拠しています。

リポジトリの追加

 PostgreSQL 10 は、PostgreSQL 公式の apt リポジトリで提供されています。 そこで、まずは Ubuntu 16.04 に apt リポジトリを追加します。 ここでは /etc/apt/sources.list.d/pgdg.list というファイルを新たに作成し、ファイルには次のように記述します。

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

 ここでは次のようなコマンドでファイルを作成します。

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

 ファイルを追加したら、PostgreSQL の公式リポジトリを信頼するための「信頼キー」を取得した上で apt-key add コマンドで追加します。 そして apt update コマンドでパッケージの一覧を更新します。 これらは次のようなコマンドで行います。

$ sudo apt -y install wget ca-certificates
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt update

 これで PostgreSQL のリポジトリの追加作業は完了です。

PostgreSQL 10 の検索

 PostgreSQL の公式リポジトリが追加できたら、PostgreSQL 10 を検索して見ましょう。 PostgreSQL 10 に関連するパッケージは postgresql-10 というプレフィックスの名前がつけられています。 apt search コマンドで検索して見ましょう。

$ sudo apt search postgresql-10

 たくさんのパッケージが表示されたかと思います。 その中で本稿でインストールしたいのは postgresql-10 という名前の PostgreSQL 本体です。 apt show コマンドを利用して、提供されている PostgreSQL 10 の詳細情報を表示して見ましょう。 次の例では、Version 10.2.1 が提供されているのがわかりました。

$ sudo apt show postgresql-10
Package: postgresql-10
Version: 10.2-1.pgdg16.04+1
Priority: optional
Section: database
Maintainer: Debian PostgreSQL Maintainers <pkg-postgresql-public@lists.alioth.debian.org>
Installed-Size: 22.2 MB
Provides: postgresql-contrib-10
Depends: locales, postgresql-client-10, postgresql-common (>= 182~), ssl-cert, tzdata, libc6 (>= 2.17), libgssapi-krb5-2 (>= 1.8+dfsg), libicu55 (>= 55.1-1~), libldap-2.4-2 (>= 2.4.7), libpam0g (>= 0.99.7.1), libpq5 (>= 9.3~), libselinux1 (>= 2.1.12), libssl1.0.0 (>= 1.0.0), libsystemd0, libuuid1 (>= 2.16), libxml2 (>= 2.7.4), libxslt1.1 (>= 1.1.25), zlib1g (>= 1:1.1.4)
Recommends: sysstat
Suggests: locales-all
Homepage: http://www.postgresql.org/
Postgresql-Catversion: 201707211
Download-Size: 4,789 kB
APT-Sources: http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main amd64 Packages
Description: object-relational SQL database, version 10 server
 PostgreSQL is a powerful, open source object-relational database
 system. It is fully ACID compliant, has full support for foreign
 keys, joins, views, triggers, and stored procedures (in multiple
 languages). It includes most SQL:2008 data types, including INTEGER,
 NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It
 also supports storage of binary large objects, including pictures,
 sounds, or video. It has native programming interfaces for C/C++,
 Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and
 exceptional documentation.
 .
 This package provides the database server for PostgreSQL 10.

PostgreSQL 10 のインストール

 ここまでで PostgreSQL のリポジトリから PostgreSQL 10 が提供されていることが確認できましたので、インストールの作業に進みましょう。 おなじみの apt install コマンドにパッケージ名「postgresql-10」を指定して実行しましょう。 するとインストールが実行されます。

$ sudo apt -y install postgresql-10

ファイル・フォルダの確認

 無事にインストールが完了したでしょうか? インストールが完了したら、どのようなファイルがインストールされたのかを確認して見ましょう。 主なファイルとしては、次のようなものがインストールされました。

ファイル・フォルダ説明
/usr/lib/postgresql/10/PostgreSQL 10 のコマンドなどが保存されたディレクトリ
/var/lib/postgresql/10/PostgreSQL 10 の内部ファイルなどが保存されるディレクトリ
/etc/postgresql-common/PostgreSQL の設定ファイルが格納されるディレクトリ
/etc/postgresql/10/main/PostgreSQL 10 の設定ファイルが格納されるディレクトリ
/var/log/postgresql/PostgreSQL のログが出力されるディレクトリ

サービス化

 コンピュータを起動・再起動した際に自動的に PostgreSQL 10 が起動するように設定します。 次のように systemctl enable コマンドを実行します。

$ sudo systemctl enable postgresql
Synchronizing state of postgresql.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable postgresql

起動・停止・再起動

 インストールした PostgreSQL 10 の起動・停止・再起動は systemctl コマンドを利用します。 それぞれ次のようなコマンドです。

起動
$ sudo systemctl start postgresql

停止
$ sudo systemctl stop postgresql

再起動
$ sudo systemctl reload postgresql

初期ユーザ

 ここまでの手順により、PostgreSQL の初期状態となるユーザとデータベースが作成されています。
 Ubuntu Linux のユーザとして「postgres」というユーザが作成されています。 PostgreSQLサーバーは、この postgres ユーザで実行されます。
 また PostgreSQL 自体のログインユーザとして、同名の「postgres」というユーザが作成され、PostgreSQLの管理者ユーザの役割を持ちます。 初期状態では postgres ユーザにパスワードは設定されていませんが、Peer認証というPostgreSQL独自の認証が有効になっており、上記の Ubuntu Linux の postgresql ユーザからでしか PostgreSQL の postgres ユーザとしてログインできないようになっています。

PostgreSQLへの接続

 それでは PostgreSQL に接続して見ましょう。 上述の通り PostgreSQL のインストールの際に postgres という Linux ユーザーが Ubuntu に作成されていますので、その postgres ユーザーで psql コマンドを実行してログインします。 すると次の例ようにログインすることができます。 また、PostgreSQL から抜け出すには \q コマンドを使います。

$ sudo -u postgres psql
psql (10.2 (Ubuntu 10.2-1.pgdg16.04+1))
Type "help" for help.

postgres=# \q

おわりに

 本稿では PostgreSQL 10 を Ubuntu 16.04 LTS にインストールする手順について解説しました。 皆さまのお仕事のお役に立てれば幸いです。

PostgreSQLのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca