在Linux实例中执行yum命令失败,提示“error: unpacking of archive failed on file /usr/bin/xxxx: cpio: open Failed”错误怎么办?

本文介绍在Linux系统的ECS实例中执行yum命令(如yum -y install XXXyum listyum search XXX等)失败,提示“error: unpacking of archive failed on file /usr/bin/xxxx: cpio: open Failed”错误时的解决方案。

问题现象

在Linux系统的ECS实例中执行yum命令(如yum -y install XXXyum listyum search XXX等)失败,提示error: unpacking of archive failed on file /usr/bin/xxxx: cpio: open Failed错误。

问题原因

该问题可能是因为ECS实例中/usr/bin文件属性配置错误,例如配置了i、a属性(表示不能删除、修改数据),导致在使用yum install命令时报错。

文件常见属性说明如下:

属性

说明

i

  • 对文件设置i属性,不允许对文件进行删除、重命名,也不能添加和修改数据。

  • 对目录设置i属性,只能修改目录下文件中的数据,但不允许新建和删除文件。

a

  • 对文件设置a属性,只能在文件中新增数据,但是不能删除和修改数据。

  • 对目录设置a属性,只能在目录中新增和修改文件,但是不允许删除文件。

u

对文件或目录设置u属性,在删除时,其内容会被保存,以保证后期能够恢复,一般用来防止意外删除文件或目录。

s

对文件或目录设置s属性,在删除文件或目录时,会被彻底删除,不可恢复。

e

Linux中绝大多数的文件都默认拥有e属性,表示该文件是使用ext文件系统进行存储的。

解决方案

您可以参考以下步骤,根据实际需要修改/usr/bin文件属性,来解决执行yum命令失败问题。

  1. 使用root用户远程连接ECS实例。

    具体操作,请参见连接方式概述

  2. 运行如下命令,查看并确认/usr/bin目录属性是否有误。

    lsattr /usr

    返回类似如下图所示,表示/usr/bin目录属性为i(不允许在该目录下新建和删除文件),请继续执行步骤3移除目录i属性。

    lsattr
  3. 执行如下命令,移除/usr/bin目录i属性。

    chattr -i /usr/bin
    说明
    • +:为文件或目录添加属性。

    • -:移除文件或目录已有的某些属性。

    • =:为文件或目录设定一些属性。

  4. 再次执行yum命令,确保可以正常运行。