web-dev-qa-db-ja.com

ubuntu上でpostgresqlを完全にパージして再インストールするにはどうすればいいですか?

どういうわけか私は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ユーザーがいます。削除スクリプトはそれには触れていないようです。次の症状を明らかにするためだけに私が作業している一連の症状がありました。

この2番目のコマンド「pg_createcluster ...」を実行すると、「/var/lib/postgresql/8.4/main/postgresql.confが存在しません」というエラーメッセージが表示されます。それが終わりではないことを確認してください。

それを完全に燃やして最初からやり直すことができる簡単な1ライナー(または2ライナー)はありませんか?

211
John Mee

私は同じような状況を持っていました。私はdebian wheezyでpostgresql 9.1を削除する必要がありました(以前は8.4から移行していてエラーが出ていました)。

私がしたこと:

まず、設定とデータベースを削除しました

$ Sudo pg_dropcluster --stop 9.1 main

その後postgresqlを削除しました

$ Sudo apt-get remove --purge postgresql postgresql-9.1 

その後再インストール

$ Sudo apt-get install postgresql postgresql-9.1

私の場合、/etc/postgresql/9.1が空で、service postgresql startを実行しても何も返されないことに気付きました。

それで、もっとグーグルした後、私はこのコマンドを手に入れました:

$ Sudo pg_createcluster 9.1 main

これでサーバーを起動できましたが、今ではログ関連のエラーが発生していました。もっと検索した後、私は/ var/log/postgresqlディレクトリへのパーミッションを変更しました

$ Sudo chown root.postgres /var/log/postgresql
$ Sudo chmod g+wx /var/log/postgresql

これで問題は解決しました。

40
user1183098

最初:あなたのインストールがまだ損傷していなければ、pg_dropclusterを使ってUbuntuに不要なPostgreSQLサーバ( "クラスタ")を落とすことができます。 initdbnameからPostgreSQLインスタンスを新たに起動したい場合は、完全削除よりもこれを優先して使用し、再インストールしてください。

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

今すぐ実行します。

apt-get --purge remove postgresql\*

あなたのシステムから全てのPostgreSQLを削除します。 postgresname__パッケージを削除するだけでは十分ではありません。空のメタパッケージにすぎないからです。

すべての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
419
John Mee

Ubuntu 8.04.2を削除するためにpostgres 8.3上で私のために働いたステップ

  1. Postgres関連のパッケージをすべてリスト

    dpkg -l | grep postgres
    
    ii  postgresql                            8.3.17-0ubuntu0.8.04.1           object-relational SQL database (latest versi
    ii  postgresql-8.3                        8.3.9-0ubuntu8.04                object-relational SQL database, version 8.3
    ii  postgresql-client                     8.3.9-0ubuntu8.04                front-end programs for PostgreSQL (latest ve
    ii  postgresql-client-8.3                 8.3.9-0ubuntu8.04                front-end programs for PostgreSQL 8.3
    ii  postgresql-client-common              87ubuntu2                        manager for multiple PostgreSQL client versi
    ii  postgresql-common                     87ubuntu2                        PostgreSQL database-cluster manager
    ii  postgresql-contrib                    8.3.9-0ubuntu8.04                additional facilities for PostgreSQL (latest
    ii  postgresql-contrib-8.3                8.3.9-0ubuntu8.04                additional facilities for PostgreSQL
    
  2. 上記のすべてを削除

    Sudo apt-get --purge remove postgresql postgresql-8.3  postgresql-client  postgresql-client-8.3 postgresql-client-common postgresql-common  postgresql-contrib postgresql-contrib-8.3
    
  3. 以下のフォルダを削除してください

    Sudo rm -rf /var/lib/postgresql/
    Sudo rm -rf /var/log/postgresql/
    Sudo rm -rf /etc/postgresql/
    
14
apt-get purge postgresql*

十分です。

12
Anish Menon

私は答えがすでに提供されているのを知っています、しかしdselectは私のために働きませんでした。これが削除するパッケージを見つけるために働いたものです:

# search postgr  | grep ^i
i   postgresql                      - object-relational SQL database (supported 
i A postgresql-8.4                  - object-relational SQL database, version 8.
i A postgresql-client-8.4           - front-end programs for PostgreSQL 8.4     
i A postgresql-client-common        - manager for multiple PostgreSQL client ver
i A postgresql-common               - PostgreSQL database-cluster manager       

# aptitude purge postgresql-8.4 postgresql-client-8.4 postgresql-client-common postgresql-common postgresql

rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/

最後に、/ etc/passwdと/ etc/groupを編集します。

12

Aeに続いて私がアンインストールして再インストールするために従ったステップ。これは私のために働きました。

最初にインストールしたpostgresを削除してください: -

Sudo apt-get purge postgr *

Sudo apt-get autoremove

それから 'synaptic'をインストールしてください:

Sudo apt-get install synaptic

Sudo apt-getアップデート

それからpostgresをインストールしてください

Sudo apt-get install postgresql postgresql-contrib

7
Gurudath BN

私はちょうどUbuntu 13.04のために同じ問題に遭遇しました。これらのコマンドはPostgres 9.1を削除しました:

Sudo apt-get purge postgresql
Sudo apt-get autoremove postgresql

たぶん2番目のコマンドだけが必要であると私には思いますが、そこから私は Postgres 9.2をインストールする (Sudo apt-get install postgresql-9.2)をすることができました。

2
Jeromy French

私は/ etc/groupを編集するとき私はまたこのラインを削除したとき、私は答えに従っていました:

ssl-cert:x:112:postgres

その後、postgresqlをインストールしようとすると、私はこのエラーを得ました

Preconfiguring packages ...
dpkg: unrecoverable fatal error, aborting:
 syntax error: unknown group 'ssl-cert' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

"ssl-cert:x:112:postgres"という行を/ etc/groupに戻すことで修正されるようです(だから私はpostgresqlをインストールすることができました)

0
nivniv