Ubuntu 14.04卸载PostgreSQL 9.1报错,已尝试方案无效求解决
搞定Ubuntu 14.04卸载PostgreSQL 9.1报错的问题
别急,我来帮你一步步解决这个卸载报错的问题!通常这类问题要么是服务没停、残留文件干扰,要么是依赖或dpkg状态出了问题,咱们挨个排查:
第一步:先停掉PostgreSQL服务
如果服务还在运行,卸载时大概率会报错,先把它停掉:
sudo service postgresql stop
如果只想停9.1版本的服务:
sudo service postgresql stop 9.1
要是提示服务不存在,直接跳过这步就行。
第二步:彻底卸载所有相关包
用purge代替remove,这样会连配置文件一起删掉,避免残留干扰:
sudo apt-get --purge remove postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1
如果你确认系统里只有9.1版本的PostgreSQL,也可以用更宽泛的命令一次性清掉所有相关包:
sudo apt-get --purge remove postgresql*
执行完后,清理无用的依赖包:
sudo apt-get autoremove
再清理apt缓存:
sudo apt-get clean
第三步:手动删除残留的数据和配置文件
有时候apt的purge命令可能没删干净所有文件,手动清理这些目录:
# 删除9.1版本的数据目录 sudo rm -rf /var/lib/postgresql/9.1/ # 删除9.1版本的配置目录 sudo rm -rf /etc/postgresql/9.1/ # 删除对应的日志文件(如果存在) sudo rm -rf /var/log/postgresql/postgresql-9.1-main.log
第四步:处理dpkg状态损坏的情况
如果之前卸载过程中断过,可能导致dpkg状态损坏,先修复它:
sudo dpkg --configure -a
修复完成后,再重新执行第二步的卸载命令。
第五步:强制清理残留进程
如果还是报错提示“进程正在运行”,先找到PostgreSQL的进程并杀死:
# 查看postgres相关进程 ps aux | grep postgres # 杀死所有postgres进程 sudo pkill -9 postgres
然后再重新尝试卸载。
要是你之前试过某几步没效果,可以从第一步重新来一遍,确保每一步都执行到位。
内容的提问来源于stack exchange,提问作者OddDev




