apt upgrade 给出“操作不允许”

apt upgrade 给出“操作不允许”

尝试以 root 身份运行升级 Ubuntu 21.10 时apt upgrade,出现以下错误:

dpkg: error processing archive /var/cache/apt/archives/login_1%3a4.8.1-1ubuntu9_amd64.deb (--unpack):
 unable to create '/usr/share/man/zh_CN/man1/login.1.gz.dpkg-new' (while processing './usr/share/man/zh_CN/man1/login.1.gz'): Operation not permitted
Errors were encountered while processing:
 /var/cache/apt/archives/login_1%3a4.8.1-1ubuntu9_amd64.deb

进一步检查表明它可能与的扩展属性有关/usr/share/man/zh_CN/man1

运行时lsattr -ld /usr/share/man/zh_CN/man1/输出:

/usr/share/man/zh_CN/man1/   Synchronous_Updates, Immutable, Append_Only, Compression_Requested, Extents

我可以安全地删除这些属性吗(我认为它们存在是有原因的)?还是我需要执行其他升级命令?

答案1

我看你正在使用杀毒软件!禁用杀毒软件并继续。

笔记:我很确定这是由于 McAfee 造成的,因此,请逐步运行每个建议的命令,直到问题得到解决。

  1. 首先,运行以下命令来禁用任何防病毒实例:

    sudo dpkg --purge mfedx 
    sudo dpkg --purge mcafeetp 
    sudo dpkg --purge mcafeeespaac 
    sudo dpkg --purge mcafeeespfileaccess 
    Sudo dpkg --purge mcafeeesp 
    sudo dpkg --purge mcafeert 
    sudo dpkg --purge mfecma 
    sudo dpkg --purge mfert
    
  2. 删除您正在使用的所有防病毒/安全/拦截程序。

  3. 运行以下命令:

    sudo apt --fix-broken install
    sudo apt upgrade  
    

  1. 如果升级仍然显示错误,则运行:

    sudo apt clean 
    sudo apt autoremove 
    sudo dpkg -i ./var/cache/apt/archives*.deb
    sudo dpkg -i --force-overwrite /var/cache/apt/archives/login_1%3a4.8.1-1ubuntu9_amd64.deb
    
  2. 现在更新升级:

    sudo apt update
    sudo apt full-upgrade
    

还是没修复?

  1. 如果仍然显示错误,我建议重新安装软件包。

    sudo rm -r /var/cache/apt/archives/*.deb
    sudo apt update
    sudo apt upgrade
    
  2. 检查是否已安装所有依赖项。

    该软件包login依赖于:

    • libaudit1(>= 1:2.2.1)
      安全审计动态库

    • libc6(>= 2.33)
      GNU C 库:共享库

    • libcrypt1(>= 1:4.1.0)
      libcrypt共享库

    • libpam-modules(>= 1.1.8-1)
      PAM 的可插入身份验证模块

    • libpam-runtime
      PAM 库的运行时支持

    • libpam0g(>= 0.99.7.1)
      可插入身份验证模块库


如果到现在还没有修复,那么请清除并重新安装该login包:

sudo dpkg -P login
sudo apt remove --purge login
sudo apt autoremove
sudo apt install login

欢迎在评论或聊天中向我提问任何问题。

答案2

apt命令需要管理员权限。

您需要在命令前面加上sudo

您还应该sudo apt update在执行任何其他操作之前进行运行,apt以确保您正在使用当前的软件列表。

例如:

sudo apt update
sudo apt upgrade

相关内容