我正在尝试安装和卸载postgres 9.3。 在执行了各种步骤之后,我发现我已经手动删除了一些东西,现在我无法进一步处理。
我想在这里实现的是去除postgres所有痕迹。 我无法删除postgresql93-server-9.3.6-1PGDG.rhel5软件包。
我收到以下错误:
[root(at)ZetaSearch01 ~]# rpm -qa | grep postg postgresql93-server-9.3.6-1PGDG.rhel5 [root(at)ZetaSearch01 ~]# yum remove postgresql93-server-9.3.6-1PGDG.rhel5 Loaded plugins: rhnplugin, security Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package postgresql93-server.x86_64 0:9.3.6-1PGDG.rhel5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================================== Removing: postgresql93-server x86_64 9.3.6-1PGDG.rhel5 installed 15 M Transaction Summary ======================================================================================================================================================================== Install 0 Package(s) Update 0 Package(s) Remove 1 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction error reading information on service postgresql-9.3: No such file or directory Removed: postgresql93-server.x86_64 0:9.3.6-1PGDG.rhel5 Complete! [root(at)ZetaSearch01 ~]# rpm -qa | grep postg postgresql93-server-9.3.6-1PGDG.rhel5 [root(at)ZetaSearch01 ~]#
如何解决这个错误?
任何帮助将不胜感激,因为我完全是新手postgres,这是我第一次,我正在试图做一些postgres。
如何使用rpm命令来代替:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACK-AGE_NAME ...
你可以直接尝试一下,然后使用–nodeps这个参数:
rpm -ev postgresql93-server-9.3.6-1PGDG.rhel5
完整的命令细节在: RPM擦除命令
这种错误很可能是由scriptlet引起的。 删除软件包时,RPM将在删除软件包之前运行“preuninstall”,删除之后运行“postuninstall”。 如果“preuninstall”失败,则该包不会被删除。
你可以使用rpm -q --scripts postgresql93-server来检查你的软件包的scriptlet。 例如,我的机器上的postgresql92-server软件包包含这个(缩写版本只显示preuninstall)
$ rpm -q postgresql92-server --scripts | sed -ne /^preuninstall/,/scriptlet/p preuninstall scriptlet (using /bin/sh): if [ $1 = 0 ] ; then /sbin/service postgresql-9.2 condstop >/dev/null 2>&1 chkconfig --del postgresql-9.2 fi postuninstall scriptlet (using /bin/sh):
我猜你的postgresql93服务器的RPM有类似的东西,最后一个命令( chkconfig --del部分)失败,导致软件包不能被删除。
我可以build议两个选项。
1)不运行脚本删除包:
rpm -e --noscripts postgresql93-server
2)重新安装软件包,希望能够解决任何被破坏的问题,因为那么“preuninstall”将作为parameter passing1,失败的代码将不会运行。
yum reinstall postgresql93-server yum remove postgresql93-server