※当サイトの記事には、広告・プロモーションが含まれます。

PostgreSQL 12はLinuxのパッケージ管理ツールでインストールできなくなったっぽい。いや、いけるかも

gigazine.net

は文芸の一種であり、言葉の表面的な意味だけでなく語感やリズム、美的性質などを用いてさまざまな表現を行います。時には難解でわかりにくいこともある詩を使うことで、大規模言語モデルへの攻撃が成功しやすくなるとの研究結果が、プレプリントサーバーのarXivで発表されました。

大規模言語モデルへの攻撃において「詩」が有効であるとの研究結果 - GIGAZINE

⇧ 難解でなければ、「ラップ(rap)」とかは問題ないのかしら?

一応、

ラップ (rap) は、音楽手法、歌唱法の一つ。「韻律、リズミカルな演説、ストリートの言葉を組み込み、バックビートや伴奏など様々な方法で唱えられる。ラップの要素には、「内容」(何が言われているか)、「フロウ」(リズム)、「話し方」(終止声調が含まれる。

ラップ - Wikipedia

などに用いられるの形式である韻文は、言語文化的背景および韻文の形式に応じた特定のリズムに基づいて作られる。これは聴覚的に、ある定まった形象を感覚させる一定の規則ということができる。このリズムあるいは規則を韻律(いんりつ)という。

韻律 (韻文) - Wikipedia

Wikipediaの情報によると、「詩」を用いているとありますからな。

まぁ、歌全般で「歌詞」は「詩」とも言えなくもないですしな。

ちなみに、

gigazine.net

⇧「AI」の自己証明を義務付ける法律が成立したりと、一応「AI」の悪用対策は考慮されている感じなんですかね?

まぁ、「AI」に限らず、

www.itmedia.co.jp

 通信事業者のアイ・ピー・エス・プロ(東京都中央区)は11月21日、海外の通信事業者に提供したIP電話回線の一部が警察署と同じ電話番号などに偽装されて使われていたとして謝罪した。特殊詐欺事件につながった可能性がある。

“ニセ警察詐欺”めぐり国内の通信事業者が謝罪 IP電話で通話約200万件、「想定外の使われ方をした」 - ITmedia NEWS

⇧ 結局のところ、犯罪に利用しようとするのは、悪意のある人間なのよね...

性悪説(せいあくせつ)」であることを前提にした対応が求められると。

性善説(せいぜんせつ)と性悪説(せいあくせつ)は、「人間の本性である」とする説と「である」とする説。

性善説と性悪説 - Wikipedia

解説

現代の日本では、性善説は「人はみな善人である」という楽観主義性悪説は「人はみな悪人である」という悲観主義、といった意味合いで広く使われる。しかし本来は、楽観主義や悲観主義ではなく、どちらも「教育の重要性」を主張するための説だった

性善説と性悪説 - Wikipedia

⇧ う~む...、「教育」というよりも「境遇」の影響が強い気がしますけどな。

何不自由無い生活できているならば、「犯罪」をしようという動機が起こる可能性は低くなると思いますし、生活に困窮しているならば、「犯罪」をしようという動機が起こる可能性は高くなるはずですしな...

そもそも、「教育」が行き届かない状況にある人々に、「教育の重要性」を主張したところで、効果は薄いですからな...

「労働」せずとも生活できる世界になれば、少なくとも、生活に不安を感じての「犯罪」は激減すると思いますが...

まぁ、「犯罪組織」のような類も、組織の末端の人間が、借金とかで縛られている人間を利用することによって成立していることが多いような気がするので、余程の確固とした「思想」を持った「犯罪組織」以外は、お金絡みの原因がほとんどな気がしますけど...

PostgreSQL 12はLinuxのパッケージ管理ツールでインストールできなくなったっぽい。いや、いけるかも

2025年11月26日(水)の追記にある通り、「パッケージ管理ツール」で「PostgreSQL 12」のインストールいけるかもです。(未検証)

何やら、

www.postgresql.org

⇧ 上記によると、「Supported」が「No」となっている。

そのせいなのか、「Linux ディストリビューション」のパッケージ管理ツールでインストールしようとすると、

Error: Unable to find a match: postgresql12-server

⇧ というエラーが出る...

公式のドキュメントによると、

www.postgresql.org

PostgreSQL 12 EOL Notice

PostgreSQL 12 will stop receiving fixes on November 14, 2024. If you are running PostgreSQL 12 in a production environment, we suggest that you make plans to upgrade to a newer, supported version of PostgreSQL. Please see our versioning policy for more information.

https://www.postgresql.org/about/news/postgresql-164-158-1413-1316-1220-and-17-beta-3-released-2910/

⇧ 上記にあるように、バージョンアップをお勧めしますと。

まぁ、バージョンアップできない場合に、検証環境とか用意しなければいけなくなること、あるあるですと。

2025年11月24日(月)追記:↓ ここから

何やら、

www.postgresql.org

⇧「Linux ディストリビューション」の「パッケージ管理ツール」でインストール可能な「PostgreSQL」のバージョンは、「14」からしか選択できないようになっているようなのよな...

つまり、「ソースコード」からビルドしてインストールするしかないようですな...

2025年11月24日(月)追記:↑ ここまで

2025年11月26日(水)追記:↓ ここから

何やら、

yum.postgresql.org

⇧ とあって、利用可能となっている、トップページの内容が紛らわし過ぎるんだが...

一応、

download.postgresql.org

PostgreSQLサーバーのバージョン12系ありましたわ...

「サポート終了」とか紛らわし過ぎるんだが...

2025年11月26日(水)追記:↑ ここまで

で、

www.postgresql.jp

この章では、PostgreSQLソースコード配布物を使用したインストール方法について説明します。 RPMDebianパッケージなどパッケージ済みの配布物をインストールしている場合は、この章を無視し、代わりにパッケージの手順を読んでください。

https://www.postgresql.jp/document/12/html/installation.html

⇧ とあり、最終的には、「ソースコード」からビルドしてインストールするしか無さそうであると...

ちなみに、何故か、公式のドキュメントにはビルド後の手順を載せてくれていないのだが、「ChatGPT」氏に質問してみたところ、以下のような作業が必要になるようだ。

💡 ポイント:

  • ソースビルド後の必須ステップは 2 つ

    1. initdb でデータベースクラスタ作成

    2. pg_ctl start または systemd ユニットでサーバー起動

  • データディレクトリが無い状態で pg_ctl start を実行すると必ずエラーになります

と思ったら、別のページに記載されていたっぽい...う~む、分かり辛い...

www.postgresql.jp

 

我輩の環境は、「PostgreSQL 12.7」が必要なので、

www.postgresql.org

⇧ 上記の「postgresql-12.7.tar.gz」を利用する感じになるっぽい。

PostgreSQL用のOSユーザーのパスワードの設定については、

e-penguiner.com

⇧ 上記サイト様を参考にさせていただきます。

今回の環境構築に利用する各々の「ソフトウェア」のバージョンなどについては以下のキャプチャー画像をご参照ください。

 

Vagrantで構築する際に必要な情報

D:\work-soft\vagrant\postgresql_streaming_replication
│  Vagrantfile
│
└─vms
    ├─postgresql-stanby
    │  └─scripts
    │          provision_postgresql12.sh
    │
    └─postgresql-master
        └─scripts
                provision_postgresql12.sh

■D:\work-soft\vagrant\postgresql_streaming_replication\vms\postgresql-master\scripts\provision_postgresql12.sh

■D:\work-soft\vagrant\postgresql_streaming_replication\vms\postgresql-stanby\scripts\provision_postgresql12.sh

#!/bin/bash
set -eux

# 1. 開発ツールと依存ライブラリのインストール
sudo dnf groupinstall "Development Tools" -y
sudo dnf install -y wget tar bzip2 readline-devel zlib-devel bison flex

# 2. PostgreSQL 用ユーザー作成
id -u postgres &>/dev/null || useradd postgres
## PostgreSQL 用ユーザーにパスワードを設定 
echo "postgres:postgres" | chpasswd

# PostgreSQLのインストール
# https://www.postgresql.org/download/linux/redhat/
# sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-42.0-59PGDG.noarch.rpm
#sudo dnf -qy module disable postgresql
#sudo dnf install -y postgresql12-server
#sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
#sudo systemctl enable postgresql-12
#sudo systemctl start postgresql-12
wget https://ftp.postgresql.org/pub/source/v12.7/postgresql-12.7.tar.gz
tar xzf postgresql-12.7.tar.gz
cd postgresql-12.7
./configure --prefix=/usr/local/pgsql12
make
sudo make install

# 4. psqlコマンドなどのパスを通す
sudo tee /etc/profile.d/pgsql.sh > /dev/null <<'EOF'
export PATH=/usr/local/pgsql12/bin:$PATH
LD_LIBRARY_PATH=/usr/local/pgsql12/lib
export LD_LIBRARY_PATH
EOF

## 権限
sudo chmod 644 /etc/profile.d/pgsql.sh

## 設定内容を反映する
source /etc/profile.d/pgsql.sh

# 5. データディレクトリ作成と初期化
mkdir -p /usr/local/pgsql12/data
chown -R postgres:postgres /usr/local/pgsql12
sudo -u postgres /usr/local/pgsql12/bin/initdb -D /usr/local/pgsql12/data

# 6. systemd ユニット作成
cat << 'EOF' > /etc/systemd/system/postgresql-12.service
[Unit]
Description=PostgreSQL 12 database server
After=network.target

[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/local/pgsql12/bin/pg_ctl start -D /usr/local/pgsql12/data -s -l /usr/local/pgsql12/data/logfile
ExecStop=/usr/local/pgsql12/bin/pg_ctl stop -D /usr/local/pgsql12/data -s -m fast
ExecReload=/usr/local/pgsql12/bin/pg_ctl reload -D /usr/local/pgsql12/data -s

[Install]
WantedBy=multi-user.target
EOF

# 7. systemd に反映
systemctl daemon-reload

# 8. 自動起動設定&起動
systemctl enable postgresql-12
systemctl start postgresql-12

# 9. 起動確認
systemctl status postgresql-12

■D:\work-soft\vagrant\postgresql_streaming_replication\Vagrantfile

# https://portal.cloud.hashicorp.com/vagrant/discover/almalinux/10-x86_64_v2
# IMAGE_NAME = "almalinux/10-x86_64_v2"
# IMAGE_VESION = "10.0.20250529"

# https://portal.cloud.hashicorp.com/vagrant/discover/almalinux/10
# IMAGE_NAME = "almalinux/10"
# IMAGE_VESION = "10.0.20250529"

# https://portal.cloud.hashicorp.com/vagrant/discover/almalinux/9
#IMAGE_NAME = "almalinux/9"
#IMAGE_VESION = "9.6.20250522"

# https://portal.cloud.hashicorp.com/vagrant/discover/almalinux/8
IMAGE_NAME = "almalinux/8"
IMAGE_VESION = "8.10.20251006"

Vagrant.configure("2") do |config|
    config.ssh.insert_key = false

    config.vm.provider "virtualbox" do |v|
        v.memory = 1024
        v.cpus = 1
    end

    # 踏み台サーバー用の仮想マシン
    config.vm.define "jump-server" do |jump|
#        # almalinux 9.6 だとOOM killerが発生するので
#        jump.vm.provider "virtualbox" do |v|
#            v.memory = 2048
#        end
        jump.vm.box = IMAGE_NAME
        jump.vm.box_version = IMAGE_VESION
        # ホストオンリーアダプター
        jump.vm.network "private_network", ip: "192.168.56.10"
        # 内部ネットワーク
        jump.vm.network "private_network", ip: "172.25.50.10", virtualbox__intnet: true
        jump.vm.hostname = "jump-server"

        jump.vm.provision "shell", privileged: true, inline: <<-SHELL
          # パスワードでSSH認証できるようにする
          sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
          sudo sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config
          sudo sed -i 's/^#\?ChallengeResponseAuthentication .*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
          
          # SELinux
          sudo cp /etc/selinux/config /etc/selinux/config.bk
          sed -i 's/SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
          
        SHELL

    end

    # postgresql(master)用の仮想マシン
    config.vm.define "postgresql-master" do |postgresql|
        postgresql.vm.provider "virtualbox" do |v|
            v.memory = 2048
            v.cpus = 2
        end
        postgresql.vm.box = IMAGE_NAME
        postgresql.vm.box_version = IMAGE_VESION

        # 内部ネットワーク
        postgresql.vm.network "private_network", ip: "172.25.50.11", virtualbox__intnet: true
        postgresql.vm.hostname = "postgresql-master"

        postgresql.vm.provision "file", source: "vms/postgresql-master/scripts/provision_postgresql12.sh", destination: "/tmp/postgresql-master/scripts/provision_postgresql12.sh"

        postgresql.vm.provision "shell", privileged: true, inline: <<-SHELL
          # パスワードでSSH認証できるようにする
          sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
          sudo sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config
          sudo sed -i 's/^#\?ChallengeResponseAuthentication .*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
          
          # SELinux
          sudo cp /etc/selinux/config /etc/selinux/config.bk
          sed -i 's/SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
          
          chmod +x /tmp/postgresql-master/scripts/provision_postgresql12.sh
          # スクリプトファイルの実行
          /tmp/postgresql-master/scripts/provision_postgresql12.sh
          
        SHELL
        
        postgresql.vm.provision "shell", privileged: true, reboot: true, inline: <<-SHELL
          echo 'rebooting'
        SHELL
    end

    # postgresql(master)用の仮想マシン
    config.vm.define "postgresql-stanby" do |postgresql|
        postgresql.vm.provider "virtualbox" do |v|
            v.memory = 2048
            v.cpus = 2
        end
        postgresql.vm.box = IMAGE_NAME
        postgresql.vm.box_version = IMAGE_VESION

        # 内部ネットワーク
        postgresql.vm.network "private_network", ip: "172.25.50.12", virtualbox__intnet: true
        postgresql.vm.hostname = "postgresql-stanby"

        postgresql.vm.provision "file", source: "vms/postgresql-stanby/scripts/provision_postgresql12.sh", destination: "/tmp/postgresql-stanby/scripts/provision_postgresql12.sh"

        postgresql.vm.provision "shell", privileged: true, inline: <<-SHELL
          # パスワードでSSH認証できるようにする
          sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
          sudo sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config
          sudo sed -i 's/^#\?ChallengeResponseAuthentication .*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
          
          # SELinux
          sudo cp /etc/selinux/config /etc/selinux/config.bk
          sed -i 's/SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

          chmod +x /tmp/postgresql-stanby/scripts/provision_postgresql12.sh
          # スクリプトファイルの実行
          /tmp/postgresql-stanby/scripts/provision_postgresql12.sh
          
        SHELL
        
        postgresql.vm.provision "shell", privileged: true, reboot: true, inline: <<-SHELL
          echo 'rebooting'
        SHELL
    end

end    

⇧ 上記の内容で保存し、「コマンドプロンプト」などを起ち上げて、「Vagrantfile」の配置されているディレクトリに移動し、以下を実行。

■Vagrantfileの内容で環境を構築

vagrant up

で、暫く待ち。

 

とりあえず、PostgreSQLサーバーが稼働するところまでは確認できました。

Linux ディストリビューション」の「パッケージ管理ツール」でインストールできないと面倒ですな...

毎度モヤモヤ感が半端ない…

今回はこのへんで。