不知怎的,我已经成功完成了在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不存在',所以我会找到其中一个但我相信不会结束它。
是不是有一些简单的单线(或两个)可以完全烧掉它让我重新开始?
答案 0 :(得分:419)
首先:如果您的安装尚未损坏,您可以使用pg_dropcluster
在Ubuntu中删除不需要的PostgreSQL服务器(“群集”)。如果您只想从新的initdb
'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
答案 1 :(得分:40)
我遇到了类似的情况:我需要在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
解决了这个问题,希望这有帮助
答案 2 :(得分:14)
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/
答案 3 :(得分:12)
我知道答案已经提供,但是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
答案 4 :(得分:12)
apt-get purge postgresql*
就够了。
答案 5 :(得分:7)
按照以下步骤卸载并重新安装。这对我有用。
首先删除已安装的帖子: -
sudo apt-get purge postgr *
sudo apt-get autoremove
然后安装'突触'
sudo apt-get install synaptic
sudo apt-get update
然后安装postgres
sudo apt-get install postgresql postgresql-contrib
答案 6 :(得分:2)
我刚刚遇到了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)。
答案 7 :(得分:0)
我跟着回复, 编辑/ 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)
在/ etc / group中放回“ssl-cert:x:112:postgres”行似乎可以修复它(所以我能够安装postgresql)
答案 8 :(得分:-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