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 に翻訳されました。