如何在Ubuntu上彻底清除并重新安装PostgreSQL? [关闭
-
02-10-2019 - |
题
不知何故,我设法完全错误地在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不存在'确保这不会结束。
是否没有一些简单的单线(或两个)会完全燃烧并让我重新开始?
解决方案
我也有类似的情况:我需要在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
解决这个问题,希望这会有所帮助
其他提示
选项A。
如果您的安装尚未损坏,则可以使用不需要的PostgreSQL服务器(“ clusters”)使用 pg_dropcluster
. 。如果您只想使用新的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\*
要删除系统中的所有内容。只是清除 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
对我有用的步骤 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/
我知道已经提供了一个答案,但是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
apt-get purge postgresql*
足够。
遵循AE,我遵循的步骤卸载并重新安装。这对我有用。
首先删除已安装的邮政: -
sudo apt-get Purge Postgr*
sudo apt-get autoremove
然后安装“突触”:
sudo apt-get安装
sudo apt-get更新
然后安装Postgres
sudo apt-get安装postgresql postgresql-contrib
我只是遇到了Ubuntu 13.04的同一问题。这些命令删除了Postgres 9.1:
sudo apt-get purge postgresql
sudo apt-get autoremove postgresql
在我看来,也许只有第二个命令是必要的,但是从那里我就可以 安装Postgres 9.2 (sudo apt-get安装postgresql-9.2)。
我正在遵循答复,当编辑 /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 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