ITメンティーの補助輪

駆け出しメンティーの自分と、日本のどこかにいる誰かのための補助輪

Debian 10に PostgreSQL 12 を apt でインストールする補助輪

現在通っているプログラミングスクールの自習課題の一つ、「ディストリビューションの公式リポジトリ以外からパッケージをインストールできるようになること」を本日修了しました☺️

そこで今回、自分が課題修了のために行った「Debian 10 に PostgreSQL 12 を apt でインストールしたときの手順」をご紹介させていただきます(実施日 : 2020/09/22)。

この記事を書いたきっかけ

課題を行うにあたり「サードパーティリポジトリ」を探していたのですが、今後で学習する予定の「PostgreSQL」が今回の課題に向いていると思い、「PostgreSQLリポジトリ」からインストールすることにしました。

その際、

という流れで、せっかくならDebian 10 に PostgreSQL 12 を apt でインストールして、日本のどこかにいるかもしれない「自分と全く同じ構成でインストールしたい方」の元にこの記事が届くことを妄想しつつ、記事を執筆しながらインストールを行うことにしました。

※「インストールに成功したら記事を公開」「インストールに失敗したら記事を削除」の運命だったので、公開することができて嬉しいです☺️

最初にお詫び🙇🏻‍♂️

この記事はLinux初心者による「PostgreSQL 12のインストールまで(PostgreSQL 12のバージョン確認まで)」の記事となっています。
PostgreSQLの使い方についてはスミマセン、まだ分かりません…😭 )

※ 手順や内容について、もしも誤っている箇所・不適切な箇所があった際は忌憚なくご指摘いただけますと幸甚です🙇🏻‍♂️


構成

  • サーバ
    • さくらVPS 最安プラン(石狩第1ゾーン)
      • OS : Debian GNU/Linux 10 (buster) CUI環境
        • バージョン : 10.5
        • APTのフロントエンド : apt
  • 使用した端末
    • macOS Catalina 10.15.6(Terminal.appよりsshで接続)
      • VNCコンソール・シリアルコンソールでも同じ手順で進められると思います🙂

【この記事の主輪】 PostgreSQL公式 - Apt向けのWiki

🔗 Apt - PostgreSQL wiki

※公式のWikiapt-getで解説されているのですが、前述の理由でaptに置き換えてご紹介しています。また、自分はCUI環境のDebianを利用しているため、GUI向けのpgadmin4のインストールは省略しています。

なお、自分は英語も勉強中の身で…、「原文のページ」と「Google翻訳後のページ」を同時に見ながら進めました。

sources.listってなに?」という方は、以下のDebian公式ページ(日本語)を是非ご覧ください。

🔗 APT HOWTO (Obsolete Documentation) 第 2 章 - 基本的な設定 - debian.org

18年前の記事ですが、基本的な設定方法は大きく変わっていないと思います。自分もこのページで概要を学びました。お急ぎの方は「2.1」の項だけでも是非☺️


リポジトリキーのインポートと登録

PostgreSQLリポジトリの公開鍵ファイル(ASCファイル)を以下の手順でインポートします。

最初に「パッケージリストの更新」と「インストール済みパッケージの更新」を行っておきます。

$ sudo apt update

$ sudo apt upgrade

PostgreSQLの公開鍵ファイルの取り扱いで必要となるca-certificatesgnupgをインストールします。

$ sudo apt install ca-certificates gnupg

ca-certificatesgnupgのインストール完了後、curlコマンドでPostgreSQLリポジトリキーをダウンロードし、apt-keyコマンドでリポジトリキーをroot権限で登録します。

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

apt-keyの補足】
apt-keyはAPTのキー管理(鍵管理)ユーティリティで、キーの登録、登録されたキーの表示、キーの削除などを行います。今回は「キーの登録」なのでapt-key addを使用します。
ちなみに上記コマンドラインの末尾にある「-」は、「ファイル名の代わりに標準入力を指定(今回の場合はパイプライン機能を使って送り込んだcurlの実行結果)」という意味になります。

上記コマンドを実行後、リポジトリキーが登録できているかを確認します。
登録済みのキーを確認する場合はサブコマンドの「list」を使います。

$ apt-key list | less

リストの一番上(uidの項目)に「PostgreSQL Debian Repository」の記載があれば登録成功です。


PostgreSQL用のsources.list(pgdg.list)を作成

Wikiではワンライナーで記述されているのですが、ここでは自分で作成したファイルでも問題なくインストールできるか確認したかったため、「空ファイルを作成」→「エディタでコードを記述」に分けさせていただきました。

/etc/apt/sources.list.d/ディレクトリの中に「pgdg.list」という空ファイルをroot権限で作成します。

$ sudo touch /etc/apt/sources.list.d/pgdg.list

ファイルを作成後、お使いのエディタでファイルを開き、

# Vimの例
$ sudo vim /etc/apt/sources.list.d/pgdg.list

以下の1行を記述して保存・終了します。

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

パッケージリストの更新、PostgreSQL 12のインストール

ここで改めてパッケージリストの更新を行います。

$ sudo apt update

すると、http://apt.postgresql.org を含んだ行が出力されたと思います。これでPostgreSQLリポジトリからインストールできる準備が整いました☺️

まず、apt searchで「postgresql-12」を検索します。

# 完全一致でパッケージを探すため「^」と「$」を使用します
$ apt search ^postgresql-12$

postgresql-12が見つかりました!インストールします。

$ sudo apt install postgresql-12

インストール完了後、PostgreSQLのバージョンを確認します。
psql --versionで確認できます)

$ psql --version
#=> psql (PostgreSQL) 12.4 (Debian 12.4-1.pgdg100+1)

無事PostgreSQL 12がインストールされていることを確認できました☺️

postgresqlの補足

PostgreSQLリポジトリを追加したタイミングで、postgresqlでもバージョン12がインストールできる状態になっています。

$ apt search ^postgresql$

自分はスクールの学習過程で「バージョン11など、他のバージョンを使う可能性」があったため、postgresql-12でインストールしました。
postgresqlでもバージョンの共存が可能なのか、現時点では知識が足りておりません…)


最後に

改めてのお詫びとなりますが、本当に「インストールが終わっただけ」の状態となり、ここからどうやって起動し、どのように操作をするのかは分かっていない状況です😣

そのため、もしも今後のPostgreSQL運用で「上記のインストール方法で不都合が生じた場合」はすぐに訂正させていただきます。

最後までお読みいただきありがとうございました!