如何在ubuntu上彻底清除并重新安装postgresql?

如何在ubuntu上彻底清除并重新安装postgresql?,postgresql,ubuntu,uninstallation,apt-get,Postgresql,Ubuntu,Uninstallation,Apt Get,不知何故,我设法在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 (configu

不知何故,我设法在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_集群文件

/etc/passwd有一个postgres用户;清除脚本似乎没有触及它。我经历了一系列的症状,只是为了暴露下一个症状

就在这一秒,当我运行命令“pg_createcluster…”时,它会抱怨“/var/lib/postgresql/8.4/main/postgresql.conf不存在”,所以我会去找其中一个,但我确信这不会结束

难道没有简单的一层(或两层)可以完全烧掉它,让我重新开始吗?

选项A 如果您的安装尚未损坏,您可以使用
pg_dropcluster
删除不需要的PostgreSQL服务器(“群集”)。如果您只想使用新的PostgreSQL实例重新启动,请优先使用该选项,而不是完全清除并重新安装

$pg\lsu集群
版本群集端口状态所有者数据目录日志文件
11 main 5432在线postgres/var/lib/postgresql/11/main/var/log/postgresql/postgresql-11-main.log
$sudo systemctl stoppostgresql@11-主要
$sudo pg_dropcluster--停止11 main
$sudo pg_createcluster--启动11主
方案B 如果您确实需要执行完全清除并重新安装,请首先确保PostgreSQL没有运行<代码>ps-C postgres不应显示结果

现在运行:

apt-get——清除删除postgresql\*
从系统中删除所有PostgreSQL。仅仅清除
postgres
包是不够的,因为它只是一个空的元包

删除所有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

我知道已经提供了答案,但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

我在跟踪回复, 编辑/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)

在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 rm -rf /var/lib/postgresql/
    sudo rm -rf /var/log/postgresql/
    sudo rm -rf /etc/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
    
  • 删除以下文件夹

    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 rm -rf /var/lib/postgresql/
    sudo rm -rf /var/log/postgresql/
    sudo rm -rf /etc/postgresql/
    

  • 够了。

    我刚刚在Ubuntu 13.04上遇到了同样的问题。这些命令删除了Postgres 9.1:

    sudo apt-get purge postgresql
    sudo apt-get autoremove postgresql
    

    我突然想到,也许只需要第二个命令,但从那以后我就可以(sudo apt get install postgresql-9.2)。

    我遇到了类似的情况:我需要在debian喘息时清除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是空的,运行
    servicepostgresqlstart
    没有返回任何内容

    所以,在更多的谷歌搜索之后,我得到了这个命令:

    $ sudo pg_createcluster 9.1 main
    
    这样我就可以启动服务器了,但是现在我遇到了与日志相关的错误。经过更多的搜索,我最终更改了对/var/log/postgresql目录的权限

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

    这解决了问题,希望这有助于遵循我卸载和重新安装所遵循的步骤。这对我很有用

    首先删除已安装的postgres:-

    sudo容易得到净化postgr*

    sudo易于自动删除

    然后安装“synaptic”:

    sudo易于安装synaptic

    sudoapt获得更新

    然后安装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 rm -rf /var/lib/postgresql/
    sudo rm -rf /var/log/postgresql/
    sudo rm -rf /etc/postgresql/
    
    sudo apt get安装postgresql postgresql contrib


    我在ubuntu 16.04中也遇到了同样的问题

    但我解决了这个问题,非常简单,只需按照以下步骤操作,您就可以在系统中安装postgresql 10:

    将此添加到您的源。列表:

    sudo vim /etc/apt/sources.list
    
    deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib
    
    deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib
    
    之后,将这些链接添加到pgdg.list文件中,如果该文件不存在,则必须创建并添加链接并保存它

    sudo vim /etc/apt/sources.list.d/pgdg.list
    
    deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
    
    deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
    
    然后更新你的系统

    sudo apt-get update
    
    sudo apt-get upgrade
    
    并安装未满足的依赖项:

    apt-get install ssl-cert
    
    就这样。现在使用以下命令安装postgresql

    sudo apt-get install postgresql-10
    

    试试一键式安装程序,它更简单,它的目录不分散在/etc/和/var中。它们都存储在一个目录中。这不是一般的计算问题,postgresql是标准的stackoverflow主题。问题应该重新打开。在删除该行时,您删除了整个“ssl证书”组,这可能会对ssl造成严重破坏。相反,要从ssl证书组中删除postgres,请从冒号后面删除“postgres”。最初的说明错误地建议您手动编辑
    /etc/passwd
    。永远不要那样做。使用
    userdel
    groupdel
    命令,以后就不会有这个问题了;请参阅更新后的第一个答案。删除所有与Postgres相关的软件包对我很有效。我把一些8.4和9.1的软件包搞混了。这与删除所有内容相结合,使我最终能够重新安装9.1,并使所有内容都能正常工作。使用通配符更容易:
    apt-get--purge-remove-postgresql\*
    我修改了答案,删除了手动编辑
    /etc/passwd
    /etc/group
    的建议,以支持更安全的
    userdel
    groupdel
    。还有,而不是