如何卸载Postgres的特定版本?


11

在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"?

您是如何安装9.3和9.5的?
Rinzwind '16

9.3是默认安装在14.04中的。我在上面添加PPI的那一刻就安装了9.5。它只是安装了最新的服务器。
侯曼

Postgres不是默认Ubuntu的一部分;-)但是我认为sudo apt-get remove postgresql-9.3将删除9.3(在关闭9.3服务器后)
Rinzwind

谢谢我遵循您的建议,请参阅更新的问题。
侯曼

我找到了。解决方案是清除此处所说的所有内容:askubuntu.com/a/334730/58150
Houman '16

Answers:


7

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/*
    

希望对您有帮助。


1

添加答案的时间很晚,但可能会对此处的人有所帮助。

简短的答案:错误表明postgres配置在错误(非默认)端口上。使用正确的端口

长答案: 当您安装多个版本的Postgresql时,所有这些都开始在不同端口上运行postgres集群。在您的输出,下面的Postgres版本正在运行:9.3 --> 54329.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.xwhere 9.x是您的版本来卸载其他版本,但是在您的情况下,系统上存在的version(9.4)配置为在端口5434上运行。因此,该错误Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?完全表明psql默认尝试连接至端口号5432为no的端口。不再附加任何postgres。

这里有两个解决方案

  • 可以psql -p 5434在psql命令中使用ie端口选项(-p /-port)。
  • 或配置您的postgres服务器port配置值/etc/postgresql/9.5/main/postgresql.conf以在5432上使用。不要忘记在更改后重新启动postgres。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.