1. ホーム

[解決済み】ubuntuでpostgresqlを徹底的にパージして再インストールする方法とは?終了

2022-04-02 04:47:07

質問

Ubuntu karmicにpostgresqlをインストールする際に、どういうわけか完全に失敗してしまいました。 ゼロからやり直したいのですが、apt-getでパッケージをパージしても、その痕跡が残っていて、再インストールの設定がうまくいきません。

した後。

apt-get purge postgresql
apt-get install postgresql

と書かれています。

Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) ...
Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112)
Error: move_conffile: required configuration file     /var/lib/postgresql/8.4/main/postgresql.conf does not exist
Error: could not create default cluster. Please create it manually with

  pg_createcluster 8.4 main --start

or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/8.4/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.

Setting up postgresql (8.4.3-0ubuntu9.10.1) ...

何もない "/etc/postgresql" と "/etc/postgresql-common/" には 'pg_upgradecluser.d' ディレクトリと root.crt および user_clusters ファイルが存在します。

etc/passwd には postgres ユーザーがいます。purge スクリプトはこれに触れていないようです。 多くの症状があり、私はそれを解決することで次の症状を明らかにしました。

今まさに、そのコマンド "pg_createcluster..." を実行すると、「/var/lib/postgresql/8.4/main/postgresql.conf does not exist」と文句を言われるので、その一つを探してみるが、きっとそれで終わりにはならないだろう。

何か簡単なワンライナー(または2つ)で、完全に燃やしてやり直せるものはないでしょうか?

解決方法は?

オプションA

インストールに問題がない場合、不要なPostgreSQLサーバ(クラスタ)は pg_dropcluster . 新しいPostgreSQLインスタンスで再起動したいだけなら、完全なパージと再インストールよりもこちらを優先してください。

$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
11  main    5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
$ sudo systemctl stop postgresql@11-main
$ sudo pg_dropcluster --stop 11 main
$ sudo pg_createcluster --start 11 main

オプションB

もし本当に完全なパージと再インストールを行う必要があるのなら、まずPostgreSQLが起動していないことを確認してください。 ps -C postgres は結果を表示しないはずです。

では、実行します。

apt-get --purge remove postgresql\*

を使って、システムからすべてのPostgreSQLを削除してください。ただ postgres パッケージは単なる空のメタパッケージなので、十分ではありません。

すべてのPostgreSQLパッケージを削除したら、実行します。

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres

できるようになったはずです。

apt-get install postgresql

または完全インストールの場合。

apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4