在 Ubuntu 執行 sudo apt install vim 時遇到 vim-common 版本衝突導致無法安裝,是經典的套件依賴地獄。本文提供標準解決流程、原理分析與預防技巧。
vim : Depends: vim-common (= 2:7.4.52-1ubuntu3) but 2:7.4.52-1ubuntu3.1 is to be installed
E: Unable to correct problems, you have held broken packages.
核心原因:**已安裝的 vim-common 版本比 vim 要求的版本更新**,導致依賴不滿足。
sudo apt remove vim-commonsudo apt updatesudo apt install vim完成上述步驟,vim 即可正常安裝。
apt policy vim vim-common
dpkg -l | grep vim
# 查看可用版本
apt-cache madison vim-common
# 強制安裝特定版本
sudo apt install vim-common=2:7.4.52-1ubuntu3 vim=2:7.4.52-1ubuntu3
sudo dpkg --configure -a
sudo apt install -f
若啟用了第三方 PPA (如 jonathonf/vim),可能導致版本不匹配:
# 查看啟用的源
grep -r "^deb" /etc/apt/sources.list.d/
# 停用問題 PPA
sudo add-apt-repository --remove ppa:xxx/xxx
sudo apt update
vim 套件宣告 Depends: vim-common (= 版本),**嚴格鎖定版本** (等號 = 而非 >=)。vim-common 為較新版本 (如來自 PPA 或手動升級),vim 拒絕安裝,因為「相依關係無法滿足」。apt remove vim-common 會同時標記 vim 等反向依賴套件為「將移除」,但因 vim 未安裝,實際僅移除 vim-common,隨後 apt install vim 會從預設源拉取匹配版本的 vim-common 作為依賴自動安裝。apt update:保持本地索引與源同步。sudo apt-mark hold vim vim-common 防止意外升級 (需解鎖才能升級)。aptitude 解決複雜依賴:其解決器比 apt 更智能,可嘗試 sudo aptitude install vim 交互式選擇方案。延伸:同樣邏輯適用於
vim-gtk、vim-nox、neovim等衍生套件。若需最新版 Vim,建議改用 Neovim AppImage 或官方 PPA,而非混用源導致系統套件庫污染。