特定のバージョンの Postgres をアンインストールするにはどうすればよいですか?

特定のバージョンの Postgres をアンインストールするにはどうすればよいですか?

Ubuntu 14.04 では、最新の postgres を取得するために次の操作を実行しました。

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

次にバージョン 9.4 をインストールしました。

sudo apt-get install postgresql-9.4

しかし、現在では 3 つのバージョンがあるようです:

sudo service postgresql stop

 * Stopping PostgreSQL 9.3 database server  [ OK ]
 * Stopping PostgreSQL 9.4 database server  [ OK ]
 * Stopping PostgreSQL 9.5 database server  [ OK ]

9.4だけを残して、他のものをアンインストールするにはどうすればいいでしょうか? よろしくお願いします

アップデート:

コメントで提案されたように、9.3 と 9.5 をアンインストールしました。

しかし、私がこれをすると:

sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down

ここまでは順調ですが、postgres に切り替えると次のようになります。

sudo su postgres

psql を実行すると、エラーが発生します:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

答え1

PostgreSQL のさまざまなバージョンは、パッケージ postgresql-9.* にあります。

  1. したがって、次の 2 つのパッケージを削除する必要があります。

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. 次に、不要な設定フォルダを削除する必要があります。

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. /var/lib/ フォルダーから次のファイルがある場合:

    /var/lib/postgresql/*
    

お役に立てれば幸いです。

答え2

回答を追加するのは非常に遅くなりましたが、ここにいる人々の役に立つかもしれません。

短い答え:エラーは、Postgres が間違った (デフォルトではない) ポートに設定されていることを示します。正しいポートを使用してください。

長い答え:複数のバージョンの Postgresql をインストールすると、それらすべてが異なるポートで postgres クラスターの 実行を開始しました。出力では、次のバージョンの postgres が実行されています: 9.3 --> 5432、、9.4 -->54349.5 --> 5433

sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down

他のバージョンは、お使いのバージョンがsudo apt-get purge postgresql-9.xどこに9.xあるかを使用してアンインストールできますが、この場合、システムに存在していたバージョン (9.4) はポート 5434 で実行するように構成されています。したがって、このエラーは、psql がデフォルトで、postgres が接続されていないIs the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?ポートに接続しようとしていることを完全に示しています。5432

2つの解決策:

  • psql -p 5434psql コマンドで ie port オプション (-p/--port)を使用します。
  • または、postgres サーバーport構成値を/etc/postgresql/9.5/main/postgresql.conf5432 で動作するように構成します。変更後は postgres を再起動することを忘れないでください。

関連情報