最後一次更新於 2019/08/05
html
我大概是半年沒用 Ubuntu 了, 今天剛想升級 Java JDK 就獲得了下方的報錯:java
正在鏈接 download.oracle.com (download.oracle.com)|23.196.196.76|:443... 已鏈接。 已發出的 HTTP 請求, 正在等待迴應... 404 Not Found 2019-08-05 18:03:51 錯誤 404: Not Found. download failed Oracle JDK 8 is NOT installed. dpkg: 處理軟件包 oracle-java8-installer (--configure)時出錯: 子進程 已安裝 post-installation 腳本 返回錯誤狀態 1
我尋思半天,通過反覆嘗試,最終確認是 Oracle 爸爸要坑我。不知道爲啥 Google 搜索裏沒搜到這個錯誤出現的緣由,因此我今天跟你們解釋一下,幫助你們避一下坑。linux
首先得從 wget
提及。簡單來講它是個 HTTP GET 請求,在之前個大網站不設安全驗證的時期至關高效好用。Oracle 爸爸告訴你: 不,你之後想都別想。
那麼"想都別想"的這一天從何時開始呢?確定跟這一天有關係:
json
Oracle 爲了確保 JDK 不被濫用,強制要求下載前必須登陸 Oracle 帳戶。給不瞭解 HTTP 請求的朋友們稍微科普一下, GET 請求是直接訪問對應 URL 的,處於無帳戶狀態。而 POST 請求在訪問對應 URL 的同時,會附帶 json 數據,在這裏指的就是 Oracle 帳戶的用戶名和密碼。瀏覽器
所以 Oracle 根本就不讓用戶經過 wget
下載資源,纔會報出 404
。經過從瀏覽器點擊本來要訪問的下載地址肯定了 Oracle 不讓未登入我的帳號的用戶獲取資源,如下是經過匿名形式訪問 Oracle 得到的截圖:
安全
首先進入 /var/lib/dpkg/info
目錄oracle
cd /var/lib/dpkg/info
更改 Java 版本工具
去官網下載 JDKpost
sudo sed -i 's|JAVA_VERSION=在wget裏下載失敗的版本|JAVA_VERSION=在 Oracle 官網手動下載成功的版本|' 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.*
有人會問 e758a0de34e24606bca991d704f6dcbf
和 0da788060d494f5095bf8624735fa2f1
都是從哪裏來的呢?
第一串字符是從 wget
的下載 URL 裏得到的:
可是第二串字符來歷就有點講究了,要去官網打開開發者工具得到。這個操做,有點騷:
更改安裝包的 sha256sum 值
不用管從 wget
的下載的版本的 sha256sum 值, 直接填 .*
(不區分的意思)就行。
可是獲取咱們手動下載的 .tar.gz 文件的 sha256sum 值仍是很簡單的:
首先定位到文件下載的地址:
cd 安裝包存放的絕對地址
輸入計算命令:
sha256sum 你下載的安裝包的名稱
最後根據獲取到的值填寫下方相應的參數:
sudo sed -i 's|SHA256SUM_TGZ=".*"|SHA256SUM_TGZ="你得到的值"|' oracle-java8-installer.*
更改 JDK 版本
這個比較簡單了:
sudo sed -i 's|J_DIR=jdk1.8.0_(wget安裝失敗的版本號)|J_DIR=jdk1.8.0_(手動下載成功的版本號))|' oracle-java8-installer.*
刪除安裝失敗的文件,將手動下載的安裝包放入 /var/cache/oracle-jdk8-installer
文件夾下
sudo rm jdk-8u(安裝失敗的版本號)-linux-x64.tar.gz
sudo mv jdk-8u(手動下載的版本號)-linux-x64.tar.gz /var/cache/oracle-jdk8-installer/
從新安裝 oracle-java8-installer
sudo apt-get install oracle-java8-installer
完成這 7 步纔算搞定了。由於 Oracle 爸爸, 用 PPA 還不如手動安裝省事呢。
若是個人文章能夠幫到您,勞煩您點進源碼點個 ★ Star 哦!
https://hexang.org/miaocai/or...