如何在 ubuntu 上彻底清除并重新安装 postgresql? [关闭]
Posted
技术标签:
【中文标题】如何在 ubuntu 上彻底清除并重新安装 postgresql? [关闭]【英文标题】:How to thoroughly purge and reinstall postgresql on ubuntu? [closed] 【发布时间】:2011-02-14 11:18:24 【问题描述】:不知何故,我设法在 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_clusters 文件。
/etc/passwd 有一个 postgres 用户;清除脚本似乎没有触及它。有一堆症状,我只是为了暴露下一个症状。
就在这一秒,当我运行该命令“pg_createcluster ...”时,它抱怨“/var/lib/postgresql/8.4/main/postgresql.conf 不存在”,所以我会去找其中一个但我相信这不会结束。
难道没有一些简单的(或两个)可以完全烧掉它并让我重新开始的方法吗?
【问题讨论】:
试试一键安装,更简单,它的目录不分散在/etc/和/var中。它们都存储在一个目录中 这不是一般的计算题,postgresql 是标准的*** 题目。应该重新提出问题。 【参考方案1】:选项 A
如果您的安装尚未损坏,您可以使用pg_dropcluster
删除不需要的 PostgreSQL 服务器(“集群”)。如果您只想使用新的 PostgreSQL 实例重新启动,请使用它而不是完全清除并重新安装。
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
11 main 5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
$ sudo systemctl stop postgresql@11-main
$ sudo pg_dropcluster --stop 11 main
$ sudo pg_createcluster --start 11 main
选项 B
如果您确实需要完全清除并重新安装,请首先确保 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
【讨论】:
我已经修改了答案以删除手动编辑/etc/passwd
和 /etc/group
的建议,以支持更安全的 userdel
和 groupdel
。此外,不要使用 dselect
手动选择包,而是使用 apt 通配符来可靠地匹配它们。
为pg_dropcluster
+1!! (用法示例:pg_dropcluster --stop 9.1 main
)
将 libpq5 和 libpq-dev 添加到该清除列表中,该 lib 给了我很多问题,直到我在正确的版本上重新安装它
在 Debian 8 上也可以使用 PostgreSQL 9.4。
我还要添加rm -r /var/log/postgresql
。【参考方案2】:
我在 ubuntu 16.04 中遇到了同样的问题
但我解决了这个问题,而且非常简单,只需按照以下步骤操作,您就可以在系统中安装 postgresql 10:
将此添加到您的sources.list:
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
【讨论】:
【参考方案3】:按照我卸载和重新安装的步骤。这对我有用。
先删除已安装的postgres:-
sudo apt-get purge postgr*
sudo apt-get 自动删除
然后安装“突触”:
sudo apt-get install synaptic
sudo apt-get 更新
然后安装 postgres
sudo apt-get install postgresql postgresql-contrib
【讨论】:
【参考方案4】:我遇到了类似的情况:我需要在 debian wheezy 上清除 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
问题已解决,希望对您有所帮助
【讨论】:
【参考方案5】:我刚刚在 Ubuntu 13.04 上遇到了同样的问题。这些命令删除了 Postgres 9.1:
sudo apt-get purge postgresql
sudo apt-get autoremove postgresql
我突然想到也许只需要第二个命令,但从那里我可以install Postgres 9.2 (sudo apt-get install postgresql-9.2)。
【讨论】:
【参考方案6】:apt-get purge postgresql*
够了。
【讨论】:
apt-get autoremove postgresql*【参考方案7】:我在 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 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
删除以下文件夹
sudo rm -rf /var/lib/postgresql/
sudo rm -rf /var/log/postgresql/
sudo rm -rf /etc/postgresql/
【讨论】:
删除所有与 Postgres 相关的软件包对我有用。我混合了一些 8.4 和 9.1 包。再加上删除所有内容,我终于可以重新安装 9.1 并让一切正常工作。 使用通配符更容易:apt-get --purge remove postgresql\*
【参考方案8】:
我一直在关注回复, 在编辑 /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)
【讨论】:
在删除该行时,您删除了整个“ssl-cert”组,这可能会对 ssl 造成严重破坏。相反,要从 ssl-cert 组中删除 postgres,请从冒号后面删除“postgres”。 建议您手动编辑/etc/passwd
的原始说明非常错误。 永远不要这样做。使用userdel
和groupdel
命令,以后就不会有这个问题了。【参考方案9】:
我知道已经提供了答案,但 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
【讨论】:
这些指令适用于 debian squeeze/sid 使用通配符更容易;查看更新的第一个答案。以上是关于如何在 ubuntu 上彻底清除并重新安装 postgresql? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
cad2012卸载/安装失败/如何彻底卸载清除干净cad2012注册表和文件的方法
maya2014卸载/安装失败/如何彻底卸载清除干净maya2014注册表和文件的方法
maya2013卸载/安装失败/如何彻底卸载清除干净maya2013注册表和文件的方法