如何修复损坏的突触更新:“包装处于非常糟糕的不一致状态”


15

我有一个运行Ubuntu 8.10的Dell Mini9。有一天,我有一个聪明的主意,看我是否可以安装一个LAMP堆栈。我在安装MySQL 5.0时遇到问题。我不记得该错误,但是自从所有运行update-manager,synaptic或apt-get的尝试均因有关mysql-server-5.0的错误而失败:“程序包处于非常糟糕的不一致状态”。

我已经尝试过apt-get remove mysql-server-5.0install但是也没有运气。两者均因以下相同错误而失败。我怎样才能解决这个问题?

$ sudo apt-get删除mysql-server-5.0
正在阅读包装清单...完成
建立依赖树       
正在读取状态信息...完成
以下软件包是自动安装的,不再需要:
  dhcdbd libisc32
使用“ apt-get autoremove”将其删除。
以下软件包将被删除:
  MySQL服务器5.0
0已升级,0新安装,1已删除和164未升级。
1未完全安装或卸下。
完成此操作后,将释放85.4MB磁盘空间。
您要继续[Y / n]吗? 
dpkg:错误处理mysql-server-5.0(-删除):
 包裹处于非常糟糕的不一致状态-您应该
 在尝试删除之前,请重新安装它。
处理时遇到错误:
 MySQL服务器5.0
E:子进程/ usr / bin / dpkg返回错误代码(1)

考虑在不需要语法高亮显示的屏幕输出中使用<pre>。
约翰·奥克斯利

Answers:


19

在Maverick上,没有其他答案对我有用。

就我而言,我发现这可行:

sudo rm /var/lib/dpkg/info/flashplugin-nonfree.prerm

sudo dpkg --remove --force-remove-reinstreq flashplugin-nonfree

(用损坏的程序包的名称替换“ flashplugin-nonfree”,并用失败的脚本类型替换“ prerm”-在我的情况下是“ postrm”,即删除后的脚本。)

他们说Ubuntu易于使用!抱怨


--purge最好掉落破损的
侦探

1
我一直在寻找解决类似问题的方法,这是唯一可行的方法。谢谢。
LukeGT

6

我在安装mysql时遇到了完全相同的问题。您需要清除包装。仅仅删除一个软件包并不会删除它附带的配置文件。

另外,我将参考mysql-server-5.0,但要意识到有一个包装程序包mysql-server始终指向最新版本。即,如果您要求安装mysql-serverapt-get应该告诉您它依赖于mysql-server-5.0并同时安装两者。如果系统上有mysql-server软件包,则在尝试重新安装之前,请确保该软件包也已消失。

  • 确保mysql服务器(mysqld)未运行。如果是,请将其降低:

    sudo /etc/init.d/mysqld停止

  • 检查是否有任何软件包依赖于mysql-server-5.0:

    须藤apt-cache rdepends mysql-server-5.0

    如果这样做,则需要使用--force选项进行卸载。

  • 清除软件包(包括--force选项,具体取决于#2)

    sudo apt-get --purge删除--force mysql-server-5.0

  • 确保通过运行也清除了安装文件

    sudo apt-get autoclean
    sudo apt-get autoremove

  • 重新安装服务器软件包

    须藤apt-get install mysql-server-5.0

这有望解决您的问题。但是,如果您对mysql-common软件包中的文件进行了任何更改,该软件包仍可能被破坏。

mysql-common是客户端和服务器组件都使用的基本软件包。如果仍然无法正常工作,请尝试重新安装此软件包。肯定会有依赖于此的软件包。使用上面的#2检查。在重新安装mysql-common之前清除mysql-server。另外,不要忘记重新安装mysql-common,否则您的系统将非常损坏。


1

您可能想aptitude尝试一下,它可以更好地处理依赖项:

sudo aptitude remove mysql-server-5.0

这里的错误是dpkg,因此我认为aptitude情况不一定会更好。不要误会我的意思,我所有的aptitudeapt-get,但在一天结束的时候,他们俩的手真正的事实真相到dpkg(你会很高兴地听到最初在Perl中实现)。
Telemachus

;-)我只是认为可能值得尝试。
innaM

0

尝试

sudo dpkg -i reconfigure mysql-server-5.0
sudo apt-get remove --force mysql-server-5.0

如果另一个包装坏了,也请尝试apt-get remove --force该包装。


0

出现的dpkg错误表明在dpkg尝试实际删除程序包时会出现此问题。(在这一天结束,apt-getSynaptic等的手从实际的工作dpkg。)

您是否尝试过完全按照消息中的内容进行操作,然后重新安装?

apt-get install --reinstall mysql-server-5.0

听起来可能很愚蠢,如果dpkg在删除过程中令人窒息(因为本应删除的某些文件在此期间丢失了),那么重新安装然后删除有时会有所帮助。mysql按照nagul的建议,在尝试安装或删除它之前,请确保它未运行。


0

dpkg -r --force-remove-reinstreq <package> 删除软件包而不检查是否需要重新安装。

之后,您应该可以使用首选的软件包管理器重新安装该软件包。


0

我有邮递员这个问题。删除/etc/init.d/mailman

rm /etc/init.d/mailman

固定它 :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.