我在执行 apt-get 时遇到问题

我在执行 apt-get 时遇到问题

我的 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-45dpkg删除后脚本由于执行过程中发生的错误而退出(可能是由于您删除了某些内容);这也会导致dpkg退出。

一种解决方案是导致删除后脚本在出现错误时不会退出;这可以通过取消设置将要执行的实例e中的属性来实现,即通过删除脚本本身中的行(脚本的路径应该是)。shset -e/var/lib/dpkg/info/jdk1.8.0-45.postrm

完成此操作后,您应该能够sudo apt-get install -f正常运行。

相关内容