我根本就不明白发生了什么事。
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