代码之家  ›  专栏  ›  技术社区  ›  John Mee

如何在Ubuntu上彻底清除和重新安装PostgreSQL?[关闭]

  •  207
  • John Mee  · 技术社区  · 14 年前

    不知怎么的,我已经成功地在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-cluster文件。

    /etc/passwd有一个postgres用户;purge脚本似乎没有接触到它。有一系列的症状,我一直在努力,只为了暴露下一个。

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

    有没有简单的一个(或两个)班轮会完全烧毁它,让我重新开始?

    9 回复  |  直到 6 年前
        1
  •  415
  •   Craig Ringer    12 年前

    首先:如果您的安装还没有损坏,您可以使用 pg_dropcluster . 如果您只想从一个全新的 initdb 'd PostgreSQL实例。

    如果您真的需要进行完全的清除和重新安装,首先要确保PostgreSQL没有运行。 ps -C postgres 不应显示任何结果。

    现在运行:

    apt-get --purge remove 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
    
        2
  •  38
  •   Mark Berry    10 年前

    我也遇到过类似的情况:我需要清除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是空的,正在运行 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
    

    解决了这个问题,希望能有所帮助

        3
  •  13
  •   Mithun Sreedharan Kuldeep Modi    13 年前

    对我有用的步骤 Ubuntu 8.04.2 删除 postgres 8.3

    1. 列出所有与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
      
    2. 删除上面列出的所有内容

      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
      
    3. 删除以下文件夹

      sudo rm -rf /var/lib/postgresql/
      sudo rm -rf /var/log/postgresql/
      sudo rm -rf /etc/postgresql/
      
        4
  •  12
  •   Klaas van Schelven    13 年前

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

        5
  •  11
  •   Anish Menon    11 年前
    apt-get purge postgresql*
    

    就够了。

        6
  •  7
  •   Gurudath BN    8 年前

    按照我卸载和重新安装的步骤,执行AE。这对我很有用。

    首先移除已安装的Postgres:

    sudo apt获取purge postgr*

    sudo apt获取自动移动

    然后安装“synaptic”:

    sudo-apt-get安装synaptic

    更新源

    然后安装Postgres

    sudo apt get安装postgresql postgresql contrib

        7
  •  2
  •   Jeromy French    11 年前

    我刚刚为Ubuntu13.04遇到了同样的问题。这些命令删除了Postgres 9.1:

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

    我突然想到也许只有第二个命令是必要的,但从那里我能够 install Postgres 9.2 (sudo apt get安装postgresql-9.2)。

        8
  •  0
  •   nivniv    13 年前

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

        9
  •  -1
  •   User    6 年前

    我在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
    

    之后,将这些链接添加到pdg.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