由于无法启动服务而无法卸载 postgresql 包?

由于无法启动服务而无法卸载 postgresql 包?

我根本就不明白发生了什么事。

sudo apt-get remove postgresql

结果是:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'postgresql' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 35 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up postgresql-9.1 (9.1.10-0ubuntu13.04) ...
 * Starting PostgreSQL 9.1 database server                                                                                                                                                            * The PostgreSQL server failed to start. Please check the log output:
2013-11-05 12:40:58 PST FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
                                                                                                                                                                                              [fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing postgresql-9.1 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 postgresql-9.1
E: Sub-process /usr/bin/dpkg returned an error code (1)

我的意思是,为什么它要尝试启动服务器。是的,我有点不懂 unix,也不懂 postgres,所以请耐心听我说,但在我尝试卸载服务器时随机启动服务器似乎很随机。我不明白。

我怎样才能彻底卸载 postgresql?

答案1

您的第一次安装仍不确定,这将使其失效:

sudo dpkg --purge postgresql-9.1

现在您可以重新安装该包:

sudo apt-get -f install
sudo apt-get install postgresql-9.1

答案2

我设法通过先清除其他 2 个包来清除 postgres (apt-get purge):contrib 包和 postgresql 包(似乎是一个小的“虚拟”包)。至少,我是这么认为的……

然后我可以清除 postgresql-9.1 包(大约 11 MB)

答案3

我遇到了类似的问题并使用 aptitude 完全删除以前的安装(apt-get 没有删除所有依赖项)解决了它。

接下来,我将提供如何在 shell 终端中执行此操作的描述(GUI 超出了此答案的范围)。

首先启动交互式包管理器:

sudo aptitude

将会打开一个友好的纯文本用户界面。您可以使用键盘的“向上”和“向下”键进行导航,使用 Enter 键打开项目。也可以使用鼠标进行导航。

您将看到一个顶部菜单(操作 / 撤消 / ...),您可以从中命令 aptitude。如果没有鼠标,请按 CTRL+T 打开菜单。菜单还显示您可以使用的键盘快捷键。

如果您知道要删除什么,请转到“已安装的软件包”并导航到该软件包。例如,要删除 PostgreSQL,请转到“已安装的软件包 \ main”,您将看到 postgresql* 软件包。已安装的软件包左侧有字母 i。例如,使用 Down 键突出显示第一个软件包,然后按 - 键将其标记为要删除。您可以通过 Undo 菜单或按 + 键撤消该操作。

请注意,按下未安装包中的 + 键,它将被标记为要安装。

当所有要删除的软件包都标记为要删除时,转到“操作”菜单并选择命令“安装/删除软件包”。它将显示将要执行的操作的预览。损坏的软件包和未使用的软件包也将被自动选中。使用 + 和 - 键添加/保留或删除软件包。注意颜色的变化以反映操作(洋红色 = 删除软件包,绿色 = 安装软件包)。

当您对选择满意时,再次转到“操作”菜单并选择命令“安装/删除包”来执行操作。

完成后,按 Enter 返回用户界面。您可以搜索软件包(请参阅搜索菜单,其中还显示了键盘快捷键)。

按 ? 键获取在线帮助。

按 q 退出。

答案4

我遇到了同样的问题,结果发现是权限问题/var/run/postgresql。它归 拥有root,但需要归postgres

sudo chown -R postgres:postgres /var/run/postgresql解决了它,然后sudo service postgresql restart

谢谢https://stackoverflow.com/a/23645981/648176

相关内容