Ubuntu ARM32 上で最新版の PostgreSQL ( 17.4 ) のコンパイルとインストールに成功しました。
この記事のコマンドは主に PostgreSQL の公式ドキュメントからのものです。私はこの記事の各コマンドを実際にテストしました。
ここでインストールに成功したシステムを確認できます PostgreSQL 构建农场
PostgreSQL 17.4 のコンパイルとインストール
1. ディレクトリを作成し、ディレクトリに移動します
mkdir postgresql && cd postgresql
mkdir postgresql
:postgresql
という名前の新しいディレクトリを作成します。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
圧縮ファイルを処理するために使用されます。 -
xjf
:tar
ファイルを解凍するためのオプション: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 install
:apt
パッケージマネージャーを使用してパッケージをインストールします。libssl-dev
、libsystemd-dev
、libxml2-dev
、libreadline-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 install
:sudo
を使用して管理者権限でインストールを実行します。make install
はコンパイルされたファイルをシステムにインストールし、前の./configure
コマンドで指定された/usr/local/pgsql
ディレクトリにインストールします。
9. 環境変数を設定します
テキストエディタを使用して 1. /etc/profile
ファイルを編集します:
sudo nano /etc/profile
sudo
: スーパーユーザー(管理者)権限でコマンドを実行することを示します。/etc/profile
ファイルの変更には管理者権限が必要なため。nano
: これはテキストエディタであり、ターミナル環境でファイルを編集するためによく使用されます。/etc/profile
: これはグローバル構成ファイルであり、システム全体で環境変数と起動構成を設定するために使用されます。すべてのユーザーがシステムにログインすると、このファイルの設定が実行されます。
- 環境変数を追加します:
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
: ユーザーの home ディレクトリを作成します。-U
: ユーザー名と同じユーザーグループを同時に作成します。-r
: システムユーザーを作成します(システムユーザー UID は 1000 未満であり、ログインには使用されません)。-d /var/lib/postgresql
: home ディレクトリを/var/lib/postgresql
に指定します。-s /bin/bash
: shell を/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 postgres
:postgres
ユーザーのパスワードを変更します。
4. PostgreSQL ユーザーに切り替えます
su postgres
su postgres
:postgres
ユーザーに切り替えて、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/data
:postgres
プロセスでデータベースを起動し、データは/usr/local/pgsql/data
ディレクトリに保存されます。
7. 別のターミナルセッションで、データベースに入ります
su postgres
/usr/local/pgsql/bin/psql
psql
: PostgreSQL のコマンドライン対話ツールで、データベース shell に入ります。
8. データベースユーザーのパスワードを設定します
ALTER USER postgres WITH PASSWORD 'your_new_password';
- データベースユーザー
postgres
のパスワードを変更します。
9. systemd
サービスを作成します
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
:systemd
構成ファイルを編集し、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=postgres
:postgres
ユーザーとして実行します。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-reload
:systemd
構成をリロードして、新しいpostgresql.service
を有効にします。start postgresql
: PostgreSQL サービスを起動します。status postgresql
: PostgreSQL の実行状態を確認します。enable postgresql
: 起動時に PostgreSQL を自動的に起動します。
これらのコマンドの目的は次のとおりです。
- PostgreSQL の実行専用の
postgres
ユーザーを作成します。 - データベースストレージディレクトリを初期化します。
- PostgreSQL データベースを起動し、
psql
対話型コマンドラインに入ります。 systemd
を構成して、PostgreSQL をシステムサービスとして実行し、起動時の自動起動をサポートします。
このようにして、PostgreSQL サーバーは正常に実行され、システムの起動時に自動的に起動できます。
参考文献
PostgreSQL: Documentation: 17: Chapter 17. Installation from Source Code
この記事はAIによって Chinese (Simplified) から Japanese に翻訳されました。