dpkg:处理软件包oracle-java8-installer时出错(-configure参数):

19

我正试图在Ubuntu 16.04上安装sbt。当运行以下命令时,我错误地停止了进程:

sudo apt-get install sbt
现在当我尝试重新安装时,出现了以下错误:
Downloading Oracle Java 8...
--2017-04-24 17:34:33--  http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
Resolving download.oracle.com (download.oracle.com)... 104.80.89.58, 104.80.89.16
Connecting to download.oracle.com (download.oracle.com)|104.80.89.58|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz [following]
--2017-04-24 17:34:35--  https://edelivery.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
Resolving edelivery.oracle.com (edelivery.oracle.com)... 23.200.209.153, 2600:1409:a:183::2d3e, 2600:1409:a:193::2d3e
Connecting to edelivery.oracle.com (edelivery.oracle.com)|23.200.209.153|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz?AuthParam=1493035597_d0396e6a99df9ccfeb3f6d895673df09 [following]
--2017-04-24 17:34:37--  http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz?AuthParam=1493035597_d0396e6a99df9ccfeb3f6d895673df09
Connecting to download.oracle.com (download.oracle.com)|104.80.89.58|:80... connected.
HTTP request sent, awaiting response... 416 Requested Range Not Satisfiable

    The file is already fully retrieved; nothing to do.

Download done.
Removing outdated cached downloads...
sha256sum mismatch jdk-8u131-linux-x64.tar.gz
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of sbt:
 sbt depends on openjdk-8-jdk; however:
  Package openjdk-8-jdk is not installed.
  Package oracle-java8-installer which provides openjdk-8-jdk is not configured yet.

dpkg: error processing package sbt (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 oracle-java8-installer
 sbt
E: Sub-process /usr/bin/dpkg returned an error code (1)

我该如何解决这个问题?

更新 1:

我已经尝试了这个解决方案。但仍然无法帮助我解决这个问题,仍然收到下面相同的错误信息?

After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up oracle-java8-installer (8u131-1~webupd8~2) ...
Installing from local file /var/cache/oracle-jdk8-installer/jdk-8u131-linux-x64.tar.gz
Removing outdated cached downloads...
install: cannot stat 'javaws-wrapper.sh': No such file or directory
dpkg: error processing package oracle-java8-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of sbt:
 sbt depends on openjdk-8-jdk; however:
  Package openjdk-8-jdk is not installed.
  Package oracle-java8-installer which provides openjdk-8-jdk is not configured yet.

dpkg: error processing package sbt (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 oracle-java8-installer
 sbt
E: Sub-process /usr/bin/dpkg returned an error code (1)

可能是重复的问题:Oracle JDK 8未安装。子进程安装后脚本返回错误退出状态1 - Evgeny Veretennikov
@EvgenyVeretennikov 这并不能解决我的问题。请参考我在问题中的更新。 - Galet
嗨@karan,你能否考虑一下我的解决方案?如果有用的话,请将其标记为答案,以帮助其他人更容易地找到它。 - code4f
这个链接解决了我的问题。 - Geek Guy
5个回答

77

很久以前你就询问过了。因为这里没有答案,我给你展示了我的解决方案,对我来说效果很好。

你问题的根本原因可能来自之前安装的Java(不是从任何仓库中获取的,而是手动下载的软件包)。因此,你必须手动删除安装后脚本,可以使用以下命令:

sudo rm /var/lib/dpkg/info/oracle-java8-installer.postinst -f
sudo dpkg --configure oracle-java8-installer
希望它们能帮到您。

2
在修复我的Java-11问题时,这对我很有帮助,因为出现了相同的错误信息 :) - Jordan Mackie
我遇到了一个奇怪的问题,java -version 看起来没问题,但是却出现错误:https://askubuntu.com/questions/1185084/ubuntu-oracle-jdk-issues-but-version-looks-okay - mLstudent33

25

对于 Ubuntu 19.04 和 Oracle JDK 11:

sudo rm /var/lib/dpkg/info/oracle-java11-installer-local.postinst -f
sudo dpkg --configure oracle-java11-installer-local

8

!! 注意 !! 如果Oracle停止从其FTP服务提供文件,则此解决方案可能无效。 他们对旧版Java进行了这样的操作。


当使用ppa:webupd8team/java时,PPA中可能会有已弃用/存档的Oracle链接硬编码。 Oracle正在将旧版本移动到存档中,而PPA具有指向“活动”(在创建PPA时)Oracle下载版本的内部链接。

ppa:webupd8team/java的维护者只有一个人 - Andrew(请参见此处

问题

download failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package oracle-java8-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 oracle-java8-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)

解决方案

cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u151|JAVA_VERSION=8u162|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' oracle-java8-installer.*

Java版本经常变化,因此请更新8u1518u162以反映您的环境。(这些版本适用于Ubuntu 16.04.3 LTS-2018年1月18日)

apt install oracle-java8-installer
apt install oracle-java8-set-default

了解此问题的更多信息

这些链接提供了安装Oracle Java 8在Ubuntu上的PPA方法,您可以通过这些链接了解更多相关信息。

只是想感谢你的回答,因为它帮助我解决了一个难题。这种信息很难找到,我很感激你的分享。干杯! - P Smith
我详细地发布了它,因为昨晚它让我熬夜太久了,我想要节省其他人昨晚所遇到的麻烦。很高兴我能有所帮助 :) - hrvoj3e
对我来说仍然无法工作:/ 我收到以下错误 sed: can't read oracle-java8-installer.*: No such file or directory 有任何想法吗?我尝试了下面的所有解决方案。我正在运行Ubuntu 18.04.2 LTS bionic。 - Newskooler
@Newskooler,你应该使用更新的Java LTS版本。或者更好的选择是使用OpenJDK(例如Zulu OpenJDK Builds)。自2019年4月16日起,Oracle Java需要在登录后进行注册和下载。 - hrvoj3e

1

使用16.0.4的解决方案:

cd /var/lib/dpkg/info
sudo sed -i 's|JAVA_VERSION=8u181|JAVA_VERSION=8u191|' oracle-java8-installer.*
sudo sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/|' oracle-java8-installer.*
sudo sed -i 's|SHA256SUM_TGZ="1845567095bfbfebd42ed0d09397939796d05456290fb20a83c476ba09f991d3"|SHA256SUM_TGZ="53c29507e2405a7ffdbba627e6d64856089b094867479edc5ede4105c1da0d65"|' oracle-java8-installer.*
sudo sed -i 's|J_DIR=jdk1.8.0_181|J_DIR=jdk1.8.0_191|' oracle-java8-installer.*

1
以下内容在Ubuntu 18.10中可行。
cd /var/lib/dpkg/info
sed -i 's|JAVA_VERSION=8u191|JAVA_VERSION=8u201|' oracle-java8-installer.*
sed -i 's|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/|' oracle-java8-installer.*
sed -i 's|SHA256SUM_TGZ="53c29507e2405a7ffdbba627e6d64856089b094867479edc5ede4105c1da0d65"|SHA256SUM_TGZ="cb700cc0ac3ddc728a567c350881ce7e25118eaf7ca97ca9705d4580c506e370"|' oracle-java8-installer.*
sed -i 's|J_DIR=jdk1.8.0_191|J_DIR=jdk1.8.0_201|' oracle-java8-installer.*

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接