前几天我去安装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