如何解除安裝特定版本的 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

不過我現在似乎有三個版本:

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. 所以你應該刪除你的兩個包:

    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 -->5434, 9.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您可以使用where is your version來卸載其他版本9.x,但是在您的情況下,系統上存在的版本(9.4)被配置為在連接埠 5434 上運行Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?5432沒有的連接埠不再附加任何 postgres。

這裡有兩個解決方案:

  • psql -p 5434在 psql 指令中使用ie 連接埠選項(-p/--port)。
  • 或將您的 postgres 伺服器port設定值配置為/etc/postgresql/9.5/main/postgresql.conf在 5432 上提供服務。

相關內容