无法删除 JDK – /usr/sbin/alternatives:没有此文件或目录

无法删除 JDK – /usr/sbin/alternatives:没有此文件或目录

当我尝试删除 Java 时,sudo apt-get remove jdk1.8.0-40 出现以下信息:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  jdk1.8.0-40
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
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 ... 231488 files and directories currently installed.)
Removing jdk1.8.0-40 (1.8.040-1) ...
find: `/usr/java/*': No such file or directory
/var/lib/dpkg/info/jdk1.8.0-40.postrm: line 586: /usr/sbin/alternatives: No such file or directory
/var/lib/dpkg/info/jdk1.8.0-40.postrm: line 598: /usr/sbin/alternatives: No such file or directory
dpkg: error processing package jdk1.8.0-40 (--remove):
 subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 jdk1.8.0-40
E: Sub-process /usr/bin/dpkg returned an error code (1)

输出 ls -1 /var/cache/apt/archives/*jdk*

openjdk-7-jre_7u75-2.5.4-1~trusty1_amd64.deb
openjdk-7-jre-headless_7u75-2.5.4-1~trusty1_amd64.deb

输出sudo dpkg --purge --force-all jdk1.8.0-40

(Reading database ... 231488 files and directories currently installed.)
removing jdk1.8.0-40 (1.8.040-1) ...
/var/lib/dpkg/info/jdk1.8.0-40.postrm: line 586: /usr/sbin/alternatives: No such file or directory
/var/lib/dpkg/info/jdk1.8.0-40.postrm: line 598: /usr/sbin/alternatives: No such file or directory
dpkg: error processing package jdk1.8.0-40 (--purge):
subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 jdk1.8.0-40

当我尝试编辑时,我得到了这个:

(Reading database ... 231488 files and directories currently installed.)
Removing jdk1.8.0-40 (1.8.040-1) ...
/var/lib/dpkg/info/jdk1.8.0-40.postrm: line 586: /usr/sbin/alternatives: Permission denied
/var/lib/dpkg/info/jdk1.8.0-40.postrm: line 598: /usr/sbin/alternatives: Permission denied
dpkg: error processing package jdk1.8.0-40 (--remove):
 subprocess installed post-removal script returned error exit status 126
Errors were encountered while processing:
 jdk1.8.0-40
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

/usr/sbin/alternatives: No such file or directory

/usr/sbin/alternativesDebian、Ubuntu 等 Debian 克隆版本中没有。取而代之的是/usr/bin/update-alternatives

我建议使用临时的符号链接来解决转换错误的 RPM 包:

mkdir -p /usr/sbin
ln -sT -- /usr/bin/update-alternatives /usr/sbin/alternatives

来源

答案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

答案3

这是由于错误“E:需要重新安装软件包 jre1.8.0-51,但我找不到它的存档。”

sudo dpkg --remove --force-remove-reinstreq jre1.8.0-51

相关内容