「PostgreSQLを完全にアンインストールしたい」
「設定ファイルやデータも全て削除したい」
「別バージョンをクリーンインストールしたい」
「残存ファイルのせいで再インストールがうまくいかない」
こんな状況を解決します!
PostgreSQLのアンインストールは、パッケージの削除だけでは不完全です。
データベースファイル、設定ファイル、ユーザーアカウントなど、様々な要素を適切に削除する必要があります。
この記事では、Linux環境でPostgreSQLを完全にアンインストールする方法を、ディストリビューション別に詳しく解説していきます!
重要:アンインストール前の必須確認事項

データのバックアップ
# 全データベースのバックアップ(必要な場合のみ)
sudo -u postgres pg_dumpall > ~/postgresql_backup_$(date +%Y%m%d).sql
# 特定のデータベースのみバックアップ
sudo -u postgres pg_dump database_name > ~/database_backup.sql
# 設定ファイルのバックアップ
sudo cp -r /etc/postgresql ~/postgresql_config_backup
sudo cp -r /var/lib/postgresql ~/postgresql_data_backup
現在の状態確認
# PostgreSQLのバージョン確認
psql --version
# インストールされているパッケージ確認
dpkg -l | grep postgres # Ubuntu/Debian
rpm -qa | grep postgres # CentOS/RHEL
# 実行中のプロセス確認
ps aux | grep postgres
# 使用中のポート確認
sudo netstat -tlnp | grep 5432
sudo lsof -i :5432
# データディレクトリの場所確認
sudo -u postgres psql -c "SHOW data_directory;"
Ubuntu/Debian系でのアンインストール
ステップ1:サービスの停止
# PostgreSQLサービスの停止
sudo systemctl stop postgresql
sudo systemctl stop postgresql.service
# 自動起動の無効化
sudo systemctl disable postgresql
# 全バージョンのサービス停止(複数バージョンがある場合)
sudo systemctl stop postgresql*
ステップ2:パッケージの削除
# PostgreSQL関連パッケージを全て削除
sudo apt-get --purge remove postgresql*
# より詳細な削除
sudo apt-get --purge remove postgresql postgresql-*
# 設定ファイルも含めて完全削除
sudo apt-get purge postgresql postgresql-client postgresql-common postgresql-contrib
# 特定バージョンの削除(例:PostgreSQL 15)
sudo apt-get --purge remove postgresql-15 postgresql-client-15 postgresql-contrib-15
ステップ3:残存ファイルの削除
# データディレクトリの削除(重要データなので要注意!)
sudo rm -rf /var/lib/postgresql/
# 設定ファイルの削除
sudo rm -rf /etc/postgresql/
# ログファイルの削除
sudo rm -rf /var/log/postgresql/
# ソケットファイルの削除
sudo rm -rf /var/run/postgresql/
# キャッシュの削除
sudo rm -rf /var/cache/postgresql/
ステップ4:ユーザーとグループの削除
# postgresユーザーの削除
sudo deluser postgres
# postgresグループの削除
sudo delgroup postgres
# ユーザーのホームディレクトリも削除
sudo rm -rf /home/postgres
ステップ5:依存パッケージのクリーンアップ
# 不要になった依存パッケージの削除
sudo apt-get autoremove
# パッケージキャッシュのクリア
sudo apt-get autoclean
sudo apt-get clean
# dpkgデータベースの更新
sudo dpkg --configure -a
CentOS/RHEL/Rocky Linuxでのアンインストール
ステップ1:サービスの停止
# PostgreSQLサービスの停止
sudo systemctl stop postgresql
sudo systemctl stop postgresql-15 # バージョン指定
# 自動起動の無効化
sudo systemctl disable postgresql
# 古いバージョン(CentOS 6以前)
sudo service postgresql stop
sudo chkconfig postgresql off
ステップ2:パッケージの削除
# YUMを使用した削除(CentOS 7/RHEL 7)
sudo yum remove postgresql*
# DNFを使用した削除(CentOS 8/RHEL 8以降)
sudo dnf remove postgresql*
# 完全削除(設定ファイル含む)
sudo yum remove postgresql postgresql-server postgresql-contrib postgresql-libs
# 特定バージョンの削除
sudo yum remove postgresql15 postgresql15-server postgresql15-contrib
ステップ3:残存ファイルの削除
# データディレクトリの削除
sudo rm -rf /var/lib/pgsql/
# 設定ファイルの削除
sudo rm -rf /etc/postgresql/
sudo rm -rf /etc/sysconfig/pgsql/
# ログファイルの削除
sudo rm -rf /var/log/postgresql/
sudo rm -rf /var/log/pgsql/
# その他のディレクトリ
sudo rm -rf /usr/pgsql-*/
sudo rm -rf /usr/share/pgsql/
ステップ4:ユーザーとグループの削除
# postgresユーザーの確認
id postgres
# ユーザーとグループの削除
sudo userdel postgres
sudo groupdel postgres
# ユーザーのホームディレクトリも削除
sudo userdel -r postgres # -r オプションでホームディレクトリも削除
ステップ5:SELinuxコンテキストのクリア(必要な場合)
# SELinuxのPostgreSQL関連設定を確認
sudo semanage port -l | grep postgres
# PostgreSQL用のポート設定を削除
sudo semanage port -d -t postgresql_port_t -p tcp 5432
# SELinuxのコンテキストをリセット
sudo restorecon -Rv /var/lib/
sudo restorecon -Rv /etc/
Fedoraでのアンインストール

# サービス停止
sudo systemctl stop postgresql
sudo systemctl disable postgresql
# パッケージ削除
sudo dnf remove postgresql postgresql-server postgresql-contrib
# 完全削除
sudo dnf remove postgresql*
# 残存ファイル削除
sudo rm -rf /var/lib/pgsql/
sudo rm -rf /etc/postgresql/
sudo rm -rf /var/log/postgresql/
# ユーザー削除
sudo userdel -r postgres
Arch Linux/Manjaroでのアンインストール
# サービス停止
sudo systemctl stop postgresql
sudo systemctl disable postgresql
# パッケージ削除
sudo pacman -Rns postgresql
# 設定ファイルも含めて削除
sudo pacman -Rnscu postgresql
# 残存ファイル削除
sudo rm -rf /var/lib/postgres/
sudo rm -rf /etc/postgresql/
# ユーザー削除
sudo userdel postgres
ソースからインストールした場合のアンインストール
makeでインストールした場合
# インストールディレクトリへ移動
cd /path/to/postgresql-source
# アンインストール(Makefileが残っている場合)
sudo make uninstall
# 手動削除が必要な場合
sudo rm -rf /usr/local/pgsql/
sudo rm -rf /usr/local/bin/postgres
sudo rm -rf /usr/local/bin/psql
sudo rm -rf /usr/local/bin/pg_*
sudo rm -rf /usr/local/share/postgresql/
sudo rm -rf /usr/local/include/postgresql/
環境変数のクリーンアップ
# .bashrcや.bash_profileから削除
nano ~/.bashrc
# 以下の行を削除またはコメントアウト
# export PATH=/usr/local/pgsql/bin:$PATH
# export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
# export PGDATA=/usr/local/pgsql/data
# 環境変数の反映
source ~/.bashrc
Dockerコンテナの場合
# 実行中のPostgreSQLコンテナ確認
docker ps | grep postgres
# コンテナの停止と削除
docker stop postgres_container
docker rm postgres_container
# PostgreSQLイメージの削除
docker rmi postgres:latest
docker rmi postgres:15
# ボリュームの削除(データも削除される)
docker volume rm postgres_data
# 全てのPostgreSQL関連を削除
docker rm $(docker ps -a | grep postgres | awk '{print $1}')
docker rmi $(docker images | grep postgres | awk '{print $3}')
docker volume prune # 未使用ボリュームを削除
複数バージョンが混在する場合
# インストールされているバージョンを確認
ls -la /usr/lib/postgresql/
ls -la /etc/postgresql/
# 各バージョンのサービスを停止
sudo systemctl stop postgresql@13-main
sudo systemctl stop postgresql@14-main
sudo systemctl stop postgresql@15-main
# 特定バージョンのみ削除(Ubuntu/Debian)
sudo apt-get --purge remove postgresql-13 postgresql-client-13
sudo rm -rf /etc/postgresql/13/
sudo rm -rf /var/lib/postgresql/13/
# 全バージョン一括削除
for version in 13 14 15; do
sudo apt-get --purge remove postgresql-$version postgresql-client-$version
sudo rm -rf /etc/postgresql/$version/
sudo rm -rf /var/lib/postgresql/$version/
done
完全削除の確認
削除確認チェックリスト
# 1. パッケージの確認
dpkg -l | grep postgres # Ubuntu/Debian
rpm -qa | grep postgres # CentOS/RHEL
# 2. プロセスの確認
ps aux | grep postgres
pgrep postgres
# 3. ポートの確認
sudo netstat -tlnp | grep 5432
sudo lsof -i :5432
# 4. ディレクトリの確認
ls -la /var/lib/postgresql/
ls -la /etc/postgresql/
ls -la /usr/lib/postgresql/
ls -la /usr/share/postgresql/
# 5. ユーザーの確認
id postgres
grep postgres /etc/passwd
grep postgres /etc/group
# 6. systemdサービスの確認
systemctl list-units | grep postgres
systemctl list-unit-files | grep postgres
# 7. 残存ファイルの検索
sudo find / -name "*postgres*" 2>/dev/null | grep -v "/proc"
sudo locate postgres # updatedbが必要
# 8. 共有ライブラリの確認
ldconfig -p | grep postgres
トラブルシューティング

エラー1:パッケージが削除できない
# エラー: "E: Unable to locate package"
# 解決:パッケージ名を正確に確認
apt-cache search postgresql | grep postgresql
# エラー: "dpkg: error processing package"
# 解決:強制削除
sudo dpkg --remove --force-remove-reinstreq postgresql
sudo apt-get clean
sudo apt-get update
# エラー: "Package is in use"
# 解決:依存関係を確認して削除
sudo apt-get -f install
sudo apt-get --fix-broken install
エラー2:ファイルが削除できない
# "Permission denied"エラー
# 解決:root権限で実行
sudo rm -rf /var/lib/postgresql/
# "Device or resource busy"エラー
# 解決:使用中のプロセスを確認して停止
sudo lsof | grep postgresql
sudo fuser -k /var/lib/postgresql
# ファイルシステムがread-onlyの場合
sudo mount -o remount,rw /
エラー3:ユーザーが削除できない
# "user postgres is currently used by process"
# 解決:postgresユーザーのプロセスを全て停止
sudo pkill -u postgres
sudo killall -u postgres
# 強制的にユーザー削除
sudo userdel -f postgres
再インストールの準備
クリーンな状態の確認
# 完全削除確認スクリプト
#!/bin/bash
echo "=== PostgreSQL完全削除チェック ==="
# パッケージチェック
if dpkg -l | grep -q postgres || rpm -qa | grep -q postgres; then
echo "❌ PostgreSQL パッケージが残っています"
else
echo "✅ パッケージは削除されています"
fi
# プロセスチェック
if ps aux | grep -q [p]ostgres; then
echo "❌ PostgreSQL プロセスが実行中です"
else
echo "✅ プロセスは停止しています"
fi
# ディレクトリチェック
dirs=("/var/lib/postgresql" "/etc/postgresql" "/usr/lib/postgresql")
for dir in "${dirs[@]}"; do
if [ -d "$dir" ]; then
echo "❌ ディレクトリが残っています: $dir"
else
echo "✅ ディレクトリは削除されています: $dir"
fi
done
# ユーザーチェック
if id postgres &>/dev/null; then
echo "❌ postgresユーザーが存在します"
else
echo "✅ postgresユーザーは削除されています"
fi
echo "=== チェック完了 ==="
再インストール前のシステムクリーンアップ
# パッケージデータベースの更新
sudo apt-get update # Ubuntu/Debian
sudo yum clean all # CentOS/RHEL
sudo dnf clean all # Fedora
# キャッシュクリア
sudo apt-get clean
sudo apt-get autoclean
# システムの再起動(推奨)
sudo reboot
まとめ – PostgreSQLを完全削除してクリーンな環境を!
Linux環境でのPostgreSQL完全アンインストールについて、詳しく解説してきました。
重要ポイント:
- 必ずデータのバックアップを取る
- パッケージ削除だけでなくデータと設定も削除
- ユーザーとグループも忘れずに削除
- ディストリビューションごとに手順が異なる
- 完全削除の確認を必ず実施
削除の順序:
- サービスの停止
- パッケージのアンインストール
- データディレクトリの削除
- 設定ファイルの削除
- ユーザー・グループの削除
- 残存ファイルのクリーンアップ
完全にアンインストールすることで、新しいバージョンのクリーンインストールや、他のデータベースへの移行がスムーズに行えます。
削除作業は慎重に、そして必要なデータは必ずバックアップを取ってから実施してください!
コメント