![如何绕过许可证页面,使用 wget 在服务器上下载 Oracle/Sun Java?](https://linux22.com/image/821866/%E5%A6%82%E4%BD%95%E7%BB%95%E8%BF%87%E8%AE%B8%E5%8F%AF%E8%AF%81%E9%A1%B5%E9%9D%A2%EF%BC%8C%E4%BD%BF%E7%94%A8%20wget%20%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%B8%8B%E8%BD%BD%20Oracle%2FSun%20Java%EF%BC%9F.png)
我正在尝试在 Ubuntu Server 12.04 上安装 Liferay,它需要 JRE 并推荐版本 6。
我在权威存储库中找不到 JRE6,也不知道如何绕过手动(wget)下载的许可协议。
我可以向 wget 添加一个值以接受 Oracle 许可协议并下载文件吗?
谢谢
答案1
“自动化” Oracle Java 下载(JRE/JDK 6/7 及其他...)
你会需要sqlite3已安装;这是一个很小的包,
sudo apt-get install sqlite3
如果需要的话可以使用。
打开 Firefox,转到所需版本/变体的 Java 下载页面,然后单击接受许可协议单选按钮。
- 例如,这是Java 6 SE 下载页面:
打开终端,并将其粘贴到 Firefox SQLite cookie 数据库中提取必要的 Oracle 会话 cookie,并将其放入可以使用的
cookies
格式文本文件中wget
(脚本来源):echo ".mode 标签 选择主机,当主机 glob 为 '.*' 时为 'TRUE',否则为 'FALSE' 结束,路径, 情况 isSecure 则为 'TRUE' 否则为 'FALSE' 结束、到期、名称、值 来自 moz_cookies;” | sqlite3 ~/.mozilla/firefox/*.default/cookies.sqlite | grep -i oracle > /tmp/oracle-cookies.txt
现在使用
wget
这些会话 cookie 下载:wget --load-cookies=/tmp/oracle-cookies.txt wget http://download.oracle.com/otn-pub/java/jdk/6u14-b08/jdk-6u14-linux-x64.bin
笔记:
- 您可以使用这些 Cookie 来任何Oracle 下载只要来自
otn-pub
目录 - 您可以将脚本粘贴到 .sh 文件中,以便于使用
- 这些 Cookie 与 IP 无关,因此对于无头/CLI 服务器,只需 SCP 或传输文件
cookies
,即可从任何计算机下载(但 Cookie 的超时时间为 30 分钟,因此请小心) - 有关的: 如何使用 wget/curl 从我登录的网站下载?
- 您可以使用这些 Cookie 来任何Oracle 下载只要来自
答案2
stackoverflow上有一个类似的问题:如何在 Linux 上自动下载和安装 Java JDK?
使用 wget 的答案是:
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz"
最后一个参数是下载的 URL。不同 Java 版本的档案不仅版本不同,扩展名也不同。
答案3
来自的提示mkyong.com:您可以使用wget --header "Cookie: oraclelicense=accept-securebackup-cookie" [link from download page]
下载而不需要从浏览器中提取cookie。
答案4
不使用 Cookie 的快捷方法:
- 在浏览器中开始下载
- 暂停下载
- 复制用于下载的 URL
- 使用 wget 的 URL:
wget --no-check-certificate URL_FOR_DOWNLOAD
该 URL 可能仅在有限的时间内有效(通常为 30 分钟)。