どういうわけか私は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ライナー)はありませんか?
私は同じような状況を持っていました。私は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
これで問題は解決しました。
最初:あなたのインストールがまだ損傷していなければ、pg_dropcluster
を使ってUbuntuに不要なPostgreSQLサーバ( "クラスタ")を落とすことができます。 initdb
nameからPostgreSQLインスタンスを新たに起動したい場合は、完全削除よりもこれを優先して使用し、再インストールしてください。
あなたが本当に完全なパージと再インストールをする必要があるなら、まずPostgreSQLが実行されていないことを確認してください。 ps -C postgres
は結果を表示しません。
今すぐ実行します。
apt-get --purge remove postgresql\*
あなたのシステムから全てのPostgreSQLを削除します。 postgres
name__パッケージを削除するだけでは十分ではありません。空のメタパッケージにすぎないからです。
すべての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
Ubuntu 8.04.2
を削除するためにpostgres 8.3
上で私のために働いたステップ
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
上記のすべてを削除
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
以下のフォルダを削除してください
Sudo rm -rf /var/lib/postgresql/
Sudo rm -rf /var/log/postgresql/
Sudo rm -rf /etc/postgresql/
apt-get purge postgresql*
十分です。
私は答えがすでに提供されているのを知っています、しかし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を編集します。
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
私はちょうど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)をすることができました。
私は/ 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をインストールすることができました)