更新“libsolv-tools-0.3.2-2.14.1”的OpenSuse 12.3错误

时间:2013-11-20 17:44:57

标签: linux updates opensuse zypper

我似乎在OpenSuSe 12.3上破坏了我的更新系统。每当我尝试更新时,我都会收到此消息:

( 1/23) Installing: libsolv-tools-0.3.2-2.14.1 .....................................[error]
Installation of libsolv-tools-0.3.2-2.14.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed on file /usr/bin/dumpsolv: cpio: rename failed - Input/output error
error: libsolv-tools-0.3.2-2.14.1.x86_64: install failed
error: libsolv-tools-0.3.2-2.10.1.x86_64: erase skipped


Abort, retry, ignore? [a/r/i] (a):

/usr/bin查看程序dumpsolv时,我得到了这个:

# ls | grep "dumpsolv"
dumpsolv
dumpsolv;528134c9
dumpsolv;528134d2
dumpsolv;528134da
dumpsolv;528134ec
dumpsolv;5281350e
dumpsolv;52813523
dumpsolv;52828c89
dumpsolv;52880d1a
dumpsolv;52880d44...

接着是更多像这样的行。每个libsolv-tools-0.3.2-2.14.1

的安装失败

在查看dumpsolv时,我收到了以下错误:

# stat /usr/bin/dumpsolv
stat: cannot stat ‘/usr/bin/dumpsolv’: Input/output error

和(原因)

# lsattr /usr/bin/dumpsolv
lsattr: Input/output error while trying to stat /usr/bin/dumpsolv

我已经尝试过以下命令:

zypper ve
rpm --rebuilddb

这个: https://joshua.hoblitt.com/rtfm/2013/05/dealing_with_rpm_cpio_rename_package_installupdate_errors/

以下是导致更新问题的工具: http://rpmfind.net//linux/RPM/opensuse/updates/12.3/x86_64/libsolv-tools-0.3.2-2.14.1.x86_64.html

我的uname

# uname -a
Linux linux-3hbw.site 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux

我真的很茫然。我已经在论坛上发帖了,但没有任何运气,他们似乎像我一样困惑:

另外,我无法重新安装当前安装的libsolv-tools,因为我在尝试升级时遇到了同样的错误。

1 个答案:

答案 0 :(得分:0)

好的,我修好了,我的文件系统出了问题。这是我做的:

首先我看到stat返回输入/输出错误。这对我来说很奇怪,所以我检查了整个目录:

# stat /usr/bin/* | grep "Input/output error"

得到了一整套错误。因此我知道这不是dumpsolv的问题,而是具有更多影响的东西。这导致我搜索网络,我发现它实际上可能是文件系统中的错误。 要在OpenSuse中修复根文件系统,他们提供了一些非常好的建议: http://www.novell.com/documentation/suse91/suselinux-adminguide/html/ch12s05.html

因此,我启动了安装DVD,取消了安装,以root身份获取命令提示符,并在我的根分区上使用e2fsck/dev/sdb1就像这样:

# e2fsck /dev/sdb1

在此之后,我得到了一个很长的不同inode错误列表,我仔细阅读并修复了可以修复的内容(我想这就是一切)。在此之后,我从硬盘重新启动了我的系统,问题解决了。我可以安装我的更新,现在一切正常。

但如果你试试这个:非常小心!你在这里弄乱你的根分区,你应该阅读它告诉你的一切并验证它。最好有第二台计算机运行检查,以防你不确定的事情。如果你得到一个坏的超级块(我没有),你可以使用dumpe2fs <partition>来查看它是哪个块,然后使用e2fsck -b <block> <partition>从备份恢复文件系统。

我在上面发布的链接中解释了一切,加上互联网上有很多网站包含有关使用e2fsckdumpe2fs的信息,如果您有任何问题,请先咨询这些网站疑惑。

我希望这可以帮助别人。