如何删除/安装未完全安装的软件包?

如何删除/安装未完全安装的软件包?

前几天我去安装bsnes,但不知什么原因,安装失败了。现在,我无法更新、安装新软件包,或者执行任何 apt-get 命令,因为它们都试图处理这个损坏的软件包,但都失败了。尝试安装新软件包也注定会遭遇同样的命运。

我收到的错误是:

Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 google-chrome-stable
 bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)

我一直在 Google 和 Ask Ubuntu 上搜索,但没有找到可行的解决方案。

通常建议的修复方法是运行以下命令:

sudo apt-get clean && sudo apt-get autoremove
sudo apt-get -f install
sudo dpkg --configure -a

但是这不管用。apt-get 命令都失败,并出现与上述相同的错误,dpkg 命令也无济于事。他们经常建议的另一件事是通过 Synaptic 或命令行清除它,但这也失败了。

答案1

对于高级用户,请自行承担使用风险。

根据以下错误信息:

subprocess installed post-installation script returned error exit status 127

您可能想要编辑/var/lib/dpkg/info/[package_name].postinst和评论所有内容(或者更好的是,尝试理解并识别问题),然后apt-get重试。

请注意,虽然在这个特定的问题中,消息涉及“安装后”,但它可以提到例如“删除前”或“删除后”(在这种情况下,要编辑的文件的扩展名将是.prerm.postrm)。

答案2

除了您已经发布的命令之外,还有一些其他有用的命令。

  • 自动清理会清除已检索到的包文件的本地存储库。

    sudo apt-get autoclean
    
  • 强制安装/删除软件包。☠谨慎使用

    sudo apt-get --force-yes install <pkgname>
    

    sudo apt-get --force-yes remove <pkgname>
    

与往常一样,您可以使用dpkg来安装、删除和清除包。

  • 安装

    sudo dpkg -i <pkgname>
    
  • 消除

    sudo dpkg -r <pkgname>
    
  • 清除

    sudo dpkg -P <pkgname>
    

答案3

您可以删除该路径中的包文件/var/lib/dpkg/info/并更新源。

sudo rm /var/lib/dpkg/info/[package_name].*
sudo dpkg --configure -a
sudo apt-get update

然后重新安装你的包sudo apt-get install [package_name]

文件

答案4

如果其他方法都失败了。我首先将目录更改为:

cd /var/lib/dpkg/info

然后我删除了所有内容.postinst

sudo rm *.postinst

然后更新存储库

sudo apt-get update

然后当我这样做时一切都恢复正常:

sudo apt-get --force-yes install openjdk-7-jre-headless

相关内容