在Linux上安装JDK

时间:2014-04-01 12:51:36

标签: java centos

我正在尝试在Centos上安装JDK,但是我收到了一个错误:

[root@www opt]# rpm -ivh /opt/jdk-7u51-linux-x64.rpm
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
error: unpacking of archive failed on file /usr/java/jdk1.7.0_51/db/lib/derbyLocale_zh_CN.jar;533ab42a: cpio: read

哪里有问题? 感谢

3 个答案:

答案 0 :(得分:1)

请按照这些值检查下载文件的md5sum:http://www.oracle.com/technetwork/java/javase/downloads/java-se-binaries-checksum-1956892.html

如果md5sum没有检查,则必须是一个损坏的下载。

答案 1 :(得分:1)

简短回答:尝试下载并重新安装。

更长的回答: 即使你得到这个,jdk正在安装。有点。这似乎是包装中的错误,但它不是致命的。这是我机器的输出。在示例中,我捕获了发布文件,以便您可以看到我正在使用的CentOS并在我正在使用的rpm上执行了md5sum。您会注意到它与Oracle site link(由Kristof上面提供)中的md5sum不匹配。

接下来,我在jdk / usr / java /的目标目录上做了一个ls,所以你可以看到它是空的。然后运行rpm安装并执行另一个ls以显示某些文件存在。

output from test

当然,这违背了使用rpm的目的,因为安装信息不会进入rpm数据库。如果我查询数据库它没有出现,并且它缺少通常安装指向“最新”和“默认”的链接

not in rpm db

所以我猜测可能有一个可能转速不好的镜像,然后去了Oracle网站并再次下载了该文件。我给它一个不同的名字,以便我可以比较这两个文件。这一次成功了。

在下面的屏幕截图中,您可以看到这两个文件。最新的下载是我称之为jdk-7u51-linux-x86_64.rpm的下载。您可以看到md5sum显示文件不同,但在新文件中,md5与Oracle站点匹配。我删除了由失败的安装创建的目录,然后运行rpm -ivh命令并成功完成。 / usr / java目录中的ls显示所有正确的东西,查询rpm数据库显示它已安装。希望这有帮助!

enter image description here

答案 2 :(得分:0)

您可以使用简单的脚本来完成此操作,该脚本可以找到here

它用于Centos rpm,但是例如,您可以编辑脚本并将rpm更改为tar.gz 您还可以在下面的变量中更改版本或环境

BASE_URL="technetwork/java/javase/downloads"
BASE_URL_OUTPUT="$(curl -s  -L0 http://www.oracle.com/${BASE_URL}/)"
JAVA_ENVIRONMENT="JDK"
JAVA_BASE_VERSION=8
DOWNLOAD_SITE="$(echo $BASE_URL_OUTPUT | grep -m 1 -io "${JAVA_ENVIRONMENT}${JAVA_BASE_VERSION}-downloads-[0-9]*.html" -- | tail -1)"
echo "DOWNLOAD_SITE="$DOWNLOAD_SITE
DOWNLOAD_LINK_OUTPUT="$(curl -s -L -j -H "Cookie: oraclelicense=accept-securebackup-cookie" http://www.oracle.com/${BASE_URL}/${DOWNLOAD_SITE} |  grep -io "filepath.*${JAVA_ENVIRONMENT}-[${JAVA_BASE_VERSION}].*linux[-_]x64[._].*\(rpm\)" -- | cut -d '"' -f 3 | tail -1)"
echo "DOWNLOAD_LINK_OUTPUT="$DOWNLOAD_LINK_OUTPUT
curl -L -o java_rpm_packet.rpm -b "oraclelicense=a" $DOWNLOAD_LINK_OUTPUT

并使用

安装
yum localinstall -y java_rpm_packet.rpm