我的 Ubuntu 版本是 14.04 Kylin。当我尝试删除 Java 时,我错误地删除了一些东西。从那以后,我在执行时遇到了问题apt-get
。
kael@ASUS:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
jdk1.8.0-45
0 to upgrade, 0 to newly install, 1 to remove and 65 not to upgrade.
1 not fully installed or removed.
After this operation, 245 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 258011 files and directories currently installed.)
Removing jdk1.8.0-45 (1.8.045-1) ...
/var/lib/dpkg/info/jdk1.8.0-45.postrm: line 586: /usr/sbin/alternatives: No such file or directory
/var/lib/dpkg/info/jdk1.8.0-45.postrm: line 598: /usr/sbin/alternatives: No such file or directory
dpkg: error processing package jdk1.8.0-45 (--remove):
subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
jdk1.8.0-45
E: Sub-process /usr/bin/dpkg returned an error code (1)
答案1
如果所有其他选项都失败了,请按照我的做法做。其他信息,我是在尝试在 linux mint 17(ubuntu)上安装 rpm jdk8 pachage 时遇到此问题的
sudo rm -ri /usr/java/
它会要求输入密码,然后询问您是否要删除该目录。按“y”并输入/返回
然后以 root 身份打开 /var/lib/dpkg/info/ 并删除所有带有“jdk1.8.0-xx.xxxx”的文件,删除完成后运行
sudo dpkg -r --force-all jdk1.8.0-45
如果您尝试安装 jdk 8,此页面将会有所帮助,因为它对我有用。(linux mint 17 cinnamon 64bit) http://tecadmin.net/install-oracle-java-8-jdk-8-ubuntu-via-ppa/
答案2
尝试按照建议创建丢失的文件这里。 跟随:
sudo mkdir -p /usr/java
sudo touch /usr/java/aa
sudo touch /usr/sbin/alternatives
sudo apt-get remove jdk1.8.0-40
echo "" | sudo tee /var/lib/dpkg/info/jdk1.8.0-40.postrm
然后通过以下方式卸载 Java:
sudo dpkg --purge --force-all jdk1.8.0-45
答案3
问题是jdk1.8.0-45
的dpkg
删除后脚本由于执行过程中发生的错误而退出(可能是由于您删除了某些内容);这也会导致dpkg
退出。
一种解决方案是导致删除后脚本在出现错误时不会退出;这可以通过取消设置将要执行的实例e
中的属性来实现,即通过删除脚本本身中的行(脚本的路径应该是)。sh
set -e
/var/lib/dpkg/info/jdk1.8.0-45.postrm
完成此操作后,您应该能够sudo apt-get install -f
正常运行。