地球人

地球人的空间

世上本没有路
tg_channel
mastodon
pleroma

2025年最新:Ubuntu で PostgreSQL 17.4 をコンパイルしてインストール

私は Ubuntu ARM32 上で最新の PostgreSQL (17.4) をコンパイルしてインストールすることに成功しました。

この記事のコマンドは主に PostgreSQL の公式ドキュメントからのものです。この記事に含まれる各コマンドは実際にテスト済みです。

ここで成功したインストールができるシステムを確認できます PostgreSQL ビルドファーム

PostgreSQL 17.4 のコンパイルとインストール#

1. ディレクトリを作成し、ディレクトリに入る#

mkdir postgresql && cd postgresql
  • mkdir postgresqlpostgresql という名前の新しいディレクトリを作成します。
  • cd postgresql:作成したばかりの postgresql ディレクトリに入ります。

2. PostgreSQL ソースコードをダウンロード#

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget:指定された URL からファイルをダウンロードします。
  • https://..../postgresql-17.4.tar.bz2:PostgreSQL 17.4 バージョンの圧縮ソースコードパッケージのダウンロードリンクです。リンクが無効な場合は、新しいリンクを自分で探してください。

3. ソースコードパッケージを解凍#

tar xjf postgresql-17.4.tar.bz2
  • tar.tar 圧縮ファイルを処理するためのコマンドです。

  • xjftar ファイルを解凍するオプション:

    • x:ファイルを解凍します。
    • j:bzip2 圧縮形式(.bz2)を使用します。
    • f:解凍するファイルを指定します。
  • postgresql-17.4.tar.bz2:解凍するファイル名です。

4. 解凍されたソースコードディレクトリに入る#

cd postgresql-17.4
  • 解凍された PostgreSQL 17.4 ソースコードディレクトリに入ります。

5. 依存パッケージをインストール#

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt installapt パッケージマネージャを使用してソフトウェアパッケージをインストールします。
  • libssl-devlibsystemd-devlibxml2-devlibreadline-dev:PostgreSQL のコンパイルに必要な開発ライブラリをインストールします。それぞれ SSL ライブラリ、Systemd ライブラリ、XML ライブラリ、Readline ライブラリです。

6. コンパイルオプションを設定#

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure:PostgreSQL のコンパイル環境を準備します。
  • --prefix=/usr/local/pgsql:PostgreSQL のインストールディレクトリを /usr/local/pgsql に指定します。
  • --with-openssl:OpenSSL サポートを有効にします。
  • --with-libxml:XML サポートを有効にします。
  • --with-systemd:Systemd サポートを有効にします。

7. ソースコードをコンパイル#

make -j$(nproc)
  • make:コンパイルプロセスを開始します。
  • -j$(nproc)nproc(システムの CPU コア数)を使用してコンパイルタスクを並行して実行し、コンパイルプロセスを加速します。

8. PostgreSQL をインストール#

sudo make install
  • sudo make installsudo を使用して管理者権限でインストールを実行します。make install はコンパイルされたファイルをシステムにインストールし、前の ./configure コマンドで指定した /usr/local/pgsql ディレクトリにインストールします。

9. 環境変数を設定#

テキストエディタを使用して 1. /etc/profile ファイルを編集

sudo nano /etc/profile
  • sudo:スーパーユーザー(管理者)権限でコマンドを実行することを示します。/etc/profile ファイルを変更するには管理者権限が必要です。
  • nano:ターミナル環境でファイルを編集するためによく使用されるテキストエディタです。
  • /etc/profile:システム全体の環境変数や起動設定を設定するためのグローバル設定ファイルです。すべてのユーザーがシステムにログインすると、このファイル内の設定が実行されます。
  1. 環境変数を追加
export PATH=/usr/local/pgsql/bin:$PATH
  • export:環境変数を設定し、現在および子プロセスで利用できるようにします。
  • PATH:システム内の実行可能ファイルのディレクトリリストを含む環境変数です。システムはコマンドを実行する際、PATH 変数にリストされたディレクトリに基づいてコマンドを検索します。
  • /usr/local/pgsql/bin:PostgreSQL データベースの実行可能ファイルのディレクトリで、これを追加することでこのディレクトリ内の実行可能ファイル(例:psql)がシステムに認識されます。
  • :$PATH:ここで $PATH は元々のパスを表し、新しいパス /usr/local/pgsql/bin を元の PATH の前に追加します。これにより、システムは新しいディレクトリを最初にチェックし、その後元のパスをチェックします。

このコマンドの目的は、PostgreSQL の実行可能ファイルのディレクトリをシステムの環境変数 PATH に追加し、コマンドラインで PostgreSQL のコマンド(例:psql)を直接実行できるようにすることです。完全なパスを提供する必要はありません。変更後の設定はすべてのユーザーに対して有効になります。

PostgreSQL データベースの初期化#

これらのコマンドは、Linux サーバー上で PostgreSQL データベースサーバーを手動で構成するために主に使用されます。これには、PostgreSQL システムユーザーの作成、データベースの初期化、データベースサービスの起動、および systemd サービスとして登録して自動起動を可能にすることが含まれます。

1. PostgreSQL ユーザーを作成#

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo:スーパーユーザー権限でコマンドを実行します。
  • useradd:新しいユーザーを作成します。
  • -m:ユーザーのホームディレクトリを作成します。
  • -U:ユーザー名と同じ名前のユーザーグループを同時に作成します。
  • -r:システムユーザーを作成します(システムユーザーの UID は 1000 未満で、ログインには使用されません)。
  • -d /var/lib/postgresql:ホームディレクトリを /var/lib/postgresql に指定します。
  • -s /bin/bash:シェルを /bin/bash に指定します。
  • postgres:ユーザー名です。

このコマンドは PostgreSQL 専用のシステムユーザー postgres を作成します。


2. PostgreSQL ディレクトリの所有者を変更#

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql/usr/local/pgsql ディレクトリの所有者を postgres ユーザーに変更し、そのディレクトリを読み書きできるようにします。

3. PostgreSQL ユーザーのパスワードを設定#

sudo passwd postgres
  • passwd postgrespostgres ユーザーのパスワードを変更します。

4. PostgreSQL ユーザーに切り替え#

su postgres
  • su postgrespostgres ユーザーに切り替えて、PostgreSQL 関連のコマンドを使用します。

5. データベースを初期化#

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data/usr/local/pgsql/data ディレクトリにデータベースストレージを初期化します。

6. PostgreSQL データベースを起動#

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/datapostgres プロセスとしてデータベースを起動し、データは /usr/local/pgsql/data ディレクトリに保存されます。

7. 別のターミナルセッションでデータベースに入る#

su postgres
/usr/local/pgsql/bin/psql
  • psql:PostgreSQL のコマンドラインインターフェースツールで、データベースシェルに入ります。

8. データベースユーザーのパスワードを設定#

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • データベースユーザー postgres のパスワードを変更します。

9. systemd サービスを作成#

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.servicesystemd 設定ファイルを編集し、PostgreSQL をサービスとして実行できるようにします。

設定ファイルの内容:

[Unit]
Description=PostgreSQL server
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity

[Install]
WantedBy=multi-user.target
  • Description=PostgreSQL server:このサービスが PostgreSQL サーバーであることを説明します。
  • After=network-online.target:ネットワーク接続が利用可能になった後に PostgreSQL を起動します。
  • User=postgrespostgres ユーザーとして実行します。
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data:PostgreSQL サーバーを起動します。
  • ExecReload=/bin/kill -HUP $MAINPID:リロード時に HUP 信号を送信します。
  • KillMode=mixed:混合終了モードです。
  • KillSignal=SIGINT:PostgreSQL プロセスを終了させる信号です。
  • TimeoutSec=infinity:タイムアウトを無限に設定します。

10. systemd サービスを有効にする#

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reloadsystemd 設定を再読み込みし、新しい postgresql.service を有効にします。
  • start postgresql:PostgreSQL サービスを起動します。
  • status postgresql:PostgreSQL の実行状態を確認します。
  • enable postgresql:システム起動時に PostgreSQL を自動的に起動します。

これらのコマンドの目的は:

  1. PostgreSQL を実行するための専用の postgres ユーザーを作成します。
  2. データベースストレージディレクトリを初期化します。
  3. PostgreSQL データベースを起動し、psql インタラクティブコマンドラインに入ります。
  4. systemd を構成して PostgreSQL をシステムサービスとして実行し、システム起動時に自動起動をサポートします。

これにより、PostgreSQL サーバーは正常に動作し、システム起動時に自動的に起動できるようになります。

参考資料#

PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code

このウェブページの他のバージョン#

この記事には多言語のバージョンがあります。

コメントを残したい場合は、以下のウェブページにアクセスしてください:

ZH EN ZH-TW JA

これらのウェブページはブラウジング専用で、コメントやメッセージを残すことはできませんが、より多くの言語オプションを提供し、読み込み時間が短くなります:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。