Ubuntu 軟體中心安裝軟體時彈出「Debconf 正在運行」視窗並卡住,後續 apt-get 操作提示「有軟體包未完全安裝或移除」,並嘗試連線 edelivery.oracle.com 下載 JDK 逾時失敗。核心原因是 oracle-java7-installer 套件安裝過程中斷,導致 dpkg 狀態不一致。本文提供徹底清理與修復流程。
dpkg: 處理 oracle-java7-installer (--configure) 時出錯:
子程序 已安裝 post-installation 腳本 返回錯誤號 1
Oracle JDK 7 is NOT installed.
處理時有錯誤發生:
oracle-java7-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)
oracle-java7-installer:非直接提供 JDK 二進位,而是下載腳本 (需連線 Oracle 官網接受授權條款)。postinst 腳本失敗。apt 操作優先嘗試修復此套件而卡住。# 移除 oracle-java7-installer 及相關套件
sudo dpkg --remove --force-remove-reinstreq oracle-java7-installer
sudo dpkg --remove --force-remove-reinstreq oracle-java7-set-default
sudo dpkg --remove --force-remove-reinstreq oracle-java7-unlimited-jce-policy
# 清理殘留設定
sudo dpkg --purge oracle-java7-installer oracle-java7-set-default oracle-java7-unlimited-jce-policy
sudo apt-get install synapticjdk、java、oracle。sudo dpkg --configure -a
sudo apt-get install -f
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
# Ubuntu 18.04+
sudo apt-get update
sudo apt-get install openjdk-11-jdk # LTS 版本
# 或
sudo apt-get install openjdk-17-jdk
# 驗證
java -version
# openjdk version "11.0.x" ...
Oracle JDK 7/8 已結束公開更新,建議遷移至 OpenJDK 或 Oracle JDK 11/17/21 (LTS)。若堅持需求:
.tar.gz 手動安裝。linuxuprising/java for Oracle Java 11/17 安裝腳本)。| 環節 | 問題 |
|---|---|
| 軟體中心 | 圖形介面調用 aptdaemon,遇到 Debconf 需互動 (接受 Oracle 授權) 時彈出視窗,若無回應則卡住 |
| oracle-java7-installer | 本質為下載腳本,非二進位套件;依賴外部網路、授權頁面結構、檔案雜湊值,極易失效 |
| dpkg 狀態機 | postinst 失敗 → 套件狀態 "half-installed" → 所有 apt 操作優先修復 → 形成死循環 |
apt-get install default-jdk 一鍵完成。apt-mark hold openjdk-11-jdk 防止意外升級。apt-get install 可看見 Debconf 提示並手動回應。dpkg -l | grep ^iF 偵測半安裝狀態並處理。Ubuntu 軟體中心 Debconf 卡住根因為 oracle-java7-installer 半安裝狀態。解決核心:強制 dpkg 移除問題套件 → 修復套件狀態 → 改用 OpenJDK。徹底清除 Oracle JDK 安裝腳本相關套件,避免外部下載依賴,採用官方倉庫 OpenJDK 獲得穩定、安全、無互動的 Java 執行環境。