Java

在 Debian 上安裝 JDK 8

  • March 10, 2017

我正在嘗試在 Debian 上安裝 JDK 8。我發現了很多類似的主題,但沒有一個能解決我的問題。在大多數主題中,解決方案是這個命令

sudo apt-get install software-properties-common
sudo apt-get install python-software-properties

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

但我得到了這個錯誤

正在讀取包列表…完成建構依賴關係樹正在讀取狀態資訊…完成某些包無法安裝。這可能意味著您請求了一種不可能的情況,或者如果您使用的是不穩定的發行版,一些必需的軟體包尚未創建或已從 Incoming 中移出。以下資訊可能有助於解決這種情況:

以下軟體包具有未滿足的依賴關係: openjdk-8-jdk :依賴:openjdk-8-jre (= 8u111-b14-2~bpo8+1) 但不會安裝依賴:openjdk-8-jdk-headless ( = 8u111-b14-2~bpo8+1) 但它不會被安裝 E: 無法糾正問題,你持有損壞的包。

我還檢查了更新

sudo update-alternatives --config java

輸出是

連結組 java 中只有一種選擇(提供 /usr/bin/java): /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 無需配置。

第一件事是始終查看 Debian PTS 以了解您可以使用哪些選項。例如,如果我去 -

https://tracker.debian.org/pkg/openjdk-8

在左邊你有一個叫做版本的東西——你能看到嗎,它顯示了——

 stable-bpo: 8u121-b13-1~bpo8+1
    testing: 8u121-b13-3
   unstable: 8u121-b13-4

現在 stable-bpo 意味著它在後端。backports 頁面很好地描述了它的功能,請參閱https://backports.debian.org/

因此,您需要將@Reto 共享的地址以及反向移植地址添加到您已經擁有的軟體包列表中 -

deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free
deb http://ftp.us.debian.org/debian/ jessie-backports main contrib non-free

現在更新索引,它應該在最後說這樣的話 -

Reading package lists... Done
Building dependency tree       
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.

看不到可以升級的包數量,因為這是我有多少包,我更新包的頻率等的函式。如果四行與上面相似,則意味著索引更新順利,沒有錯誤。

一旦完成,你可以簡單地做 -

$ aptitude search openjdk-8

獲取列出或未列出多少個不同的 openjdk-8 包的列表。例如,我正在測試,這裡有很多。我們也有 openjdk-9。

一旦你得到它,就像你之前嘗試安裝的那樣安裝 -

$ sudo aptitude install openjdk-8 

並讓 aptitude 處理所有依賴關係解決方案。如果您仍有問題,請在此處告知我們。

openjdk-8 在我的預設 Jessie/stable 安裝中可用 - 只需要 apt-get 安裝它(openjdk-8-jdk 以及它推薦或依賴的任何其他您想要/需要的東西)

當然,它可能取決於您的 /etc/apt/sources.list 文件,包括 contrib 和非免費儲存庫

/etc/apt/sources.list 應該類似於

deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free
deb http://ftp.us.debian.org/debian/ jessie-backports main contrib non-free

引用自:https://unix.stackexchange.com/questions/326377