【问题标题】:Remove broken java installation (linux)删除损坏的 java 安装 (linux)
【发布时间】:2016-02-11 15:08:10
【问题描述】:

我不知何故弄乱了我的 Java 安装,现在我得到了这个:

$ sudo apt-get remove jre1.8.0_66
(Reading database ... 55212 files and directories currently installed.)
Removing jre1.8.0-65 ...
find: `/usr/java/*': No such file or directory
/var/lib/dpkg/info/jre1.8.0-65.postrm: line 586: /usr/sbin/alternatives: No such file or directory
dpkg: error processing jre1.8.0-65 (--remove):
 subprocess installed post-removal script returned error exit status 127
Errors were encountered while processing:
 jre1.8.0-65
E: Sub-process /usr/bin/dpkg returned an error code (1)

如何强制删除它?包含 java 文件的文件夹是空的,但是每次我安装一些东西时都会出现这个...

编辑:Linux 说它已安装/删除了一半:

0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.

【问题讨论】:

    标签: linux apt-get


    【解决方案1】:

    验证您机器中的可用安装:-

     sudo update-alternatives --config java
    
    There are 3 choices for the alternative java (providing /usr/bin/java).  
    
    
         Selection    Path                                     Priority   Status
        ------------------------------------------------------------
          0            /usr/lib/jvm/java-6-oracle/jre/bin/java   3         auto mode
        * 1            /usr/lib/jvm/java-6-oracle/jre/bin/java   3         manual mode
          2            /usr/lib/jvm/java-7-oracle/jre/bin/java   2         manual mode
          3            /usr/lib/jvm/java-8-oracle/jre/bin/java   1         manual mode
    
        Press <enter> to keep the current choice[*], or type selection number:
    

    现在先删除现有的符号链接

    sudo update-alternatives --remove "java" "/usr/lib/jvm/java-8-oracle/jre/bin/java"
    sudo update-alternatives --remove "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java"
    sudo update-alternatives --remove "java" "/usr/lib/jvm/java-6-oracle/jre/bin/java"
    

    -------javac

    sudo update-alternatives --config javac
    There are 3 choices for the alternative java (providing /usr/bin/javac).
    
      Selection    Path                                     Priority   Status
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-oracle/jre/bin/javac   3         auto mode
    * 1            /usr/lib/jvm/java-6-oracle/jre/bin/javac   3         manual mode
      2            /usr/lib/jvm/java-7-oracle/jre/bin/javac  2         manual mode
      3            /usr/lib/jvm/java-8-oracle/jre/bin/javac  1         manual mode
    
    Press <enter> to keep the current choice[*], or type selection number: 
    

    现在删除符号链接

    sudo update-alternatives --remove "javac" "/usr/lib/jvm/java-8-oracle/jre/bin/javac"
    sudo update-alternatives --remove "javac" "/usr/lib/jvm/java-7-oracle/jre/bin/javac"
    sudo update-alternatives --remove "javac" "/usr/lib/jvm/java-6-oracle/jre/bin/javac"
    

    --如果您发现 javaws 有任何问题,请按照相同的步骤来移除

    是时候将符号链接设置到您的位置,下载您喜欢的 linux java 版本并将解压缩的目录移动到 像 /usr/lib/jvm/ 这样的正确位置,这是您从 java-6-oracle 等站点名称获得的通用命名标准中的一个

    sudo update-alternatives --set java /usr/lib/jvm/java-8-oracle/jre/bin/java
    sudo update-alternatives --set javac /usr/lib/jvm/java-8-oracle/jre/bin/javac
    sudo update-alternatives --set javaws /usr/lib/jvm/java-8-oracle/jre/bin/javaws
    

    与您想要在所需位置后在命令上方运行的任何版本相同。

    使用 sudo update-alternatives --config java 更改 java 版本并选择选项。

    如果需要任何帮助,请留下评论。

    【讨论】:

    • 按照这些步骤可以轻松解决损坏的链接,也有助于修复其他符号链接
    【解决方案2】:
    /usr/sbin/alternatives: No such file or directory
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2013-06-04
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多