apt 升級給予“不允許操作”

apt 升級給予“不允許操作”

在嘗試以 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

相關內容