我正在尝试升级虚拟机中的某些软件包,但由于以下原因,我 dpkg 拒绝应用升级:
dpkg: error processing /var/cache/apt/archives/ifupdown_0.7.5ubuntu2.2_amd64.deb (--unpack):
unable to make backup link of `./sbin/ifquery' before installing new version: No such file or directory
Preparing to replace unzip 6.0-8ubuntu1 (using .../unzip_6.0-8ubuntu2_amd64.deb) ...
Unpacking replacement unzip ...
dpkg: error processing /var/cache/apt/archives/unzip_6.0-8ubuntu2_amd64.deb (--unpack):
unable to make backup link of `./usr/bin/unzip' before installing new version: No such file or directory
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
这是什么意思?权限很好并且文件确实存在:
ls -l /sbin/ifquery
-rwxr-xr-x 1 1500000 1500000 58496 dic 12 2012 /sbin/ifquery
答案1
ls -lsa /sbin/ifquery
还不够,请检查文件属性lsattr
,您很可能会看到类似以下内容的内容:
$ lsattr /sbin/ifquery
----ia-------e- /sbin/ifquery
只e
为需要和想要;删除其他人。就我而言:
sudo chattr -ia /sbin/ifquery
$ sudo chattr -ia /sbin/ifquery
$ sudo lsattr /sbin/ifquery
-------------e- /sbin/ifquery
就我而言i
, 和a
分别意味着该文件无法修改,只能附加。现在,再次尝试升级。
答案2
这意味着出于某种动机,您无法在文件系统中移动二进制文件:
sudo mv /sbin/ifquery{,.bk}
[sudo] password for braiam:
mv: cannot move ‘/sbin/ifquery’ to ‘/sbin/ifquery.bk’: Input/output error
您应该检查文件系统是否存在问题或询问系统管理员。