通過apt-get安裝軟體時碰到某個依賴包的版本和已有版本衝突的解決方法
阿新 • • 發佈:2018-12-26
本文的背景是需要樹莓派上安裝音效卡陣列,為了驗證音效卡陣列的可用,需要在樹莓派安裝OSDA,然後另外找伺服器安裝ODSA_Web,然後通過OSDA傳送監聽到的聲音到OSDA_Web作為呈現。
當安裝ODSA時碰到以下問題,原因是libasaound2-dev當前是依賴於libasound2這個庫的1.0.28-1版本,但樹莓派上已經有了另一個更新的版本1.0.28-1+rpi2
[email protected]:~ $ sudo apt-get install libasound2-dev
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關係樹
正在讀取狀態資訊... 完成
有一些軟體包無法被安裝。如果您用的是 unstable 發行版,這也許是
因為系統無法達到您要求的狀態造成的。該版本中可能會有一些您需要的軟體
包尚未被建立或是它們已被從新到( Incoming)目錄移出。
下列資訊可能會對解決問題有所幫助:
下列軟體包有未滿足的依賴關係:
libasound2-dev : 依賴: libasound2 (= 1.0.28-1)
E: 無法修正錯誤,因為您要求某些軟體包保持現狀,就是它們破壞了軟體包間的依賴關係。
解決思路是使用aptitude這個命令安裝,他可以智慧地分析庫之間的依賴關係,並給出調整建議。如下面的日誌所示,按他的建議把libasound2這個庫從1.0.28-1-rpi2版本降級到1.0.28-1版,即可成功安裝libasaound2-dev(請注意11及15行的輸入)
[email protected]:~/odas/build $ sudo aptitude install libasound2-dev
下列“新”軟體包將被安裝。
libasound2-dev{b}
0 個軟體包被升級,新安裝 1 個,0 個將被刪除, 同時 2 個將不升級。
需要獲取 94.9 kB 的存檔。解包後將要使用 389 kB。
下列軟體包存在未滿足的依賴關係:
libasound2-dev : 依賴: libasound2 (= 1.0.28-1) 但是 1.0.28-1+rpi2 已安裝。
下列動作將解決這些依賴關係:
保持 下列軟體包於其當前版本:
1) libasound2-dev [未安裝的]
是否接受該解決方案?[ Y/n/q/?] n // **在這裡否決維持現狀的方案**
下列動作將解決這些依賴關係:
降級 下列軟體包:
1) libasound2 [1.0.28-1+rpi2 (now) -> 1.0.28-1 (oldstable)]
是否接受該解決方案?[Y/n/q/?] Y // **在這裡選擇降級的方案**
下列軟體包將被“降級”:
libasound2
下列“新”軟體包將被安裝。
libasound2-dev
0 個軟體包被升級,新安裝 1 個,1 個被降級,0 個將被刪除, 同時 2 個將不升級。
需要獲取 411 kB 的存檔。解包後將要使用 329 kB。
您要繼續嗎?[Y/n/?] Y
讀取: 1 https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie/main libasound2 armhf 1.0.28-1 [316 kB]
讀取: 2 https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie/main libasound2-dev armhf 1.0.28-1 [94.9 kB]
已下載 411 kB,耗時 0秒 (440 kB/s)
dpkg:警告:即將把 libasound2:armhf 從 1.0.28-1+rpi2 降級到 1.0.28-1
(正在讀取資料庫 ... 系統當前共安裝有 119680 個檔案和目錄。)
正準備解包 .../libasound2_1.0.28-1_armhf.deb ...
正在將 libasound2:armhf (1.0.28-1) 解包到 (1.0.28-1+rpi2) 上 ...
正在選中未選擇的軟體包 libasound2-dev:armhf。
正準備解包 .../libasound2-dev_1.0.28-1_armhf.deb ...
正在解包 libasound2-dev:armhf (1.0.28-1) ...
正在處理用於 libc-bin (2.19-18+deb8u10) 的觸發器 ...
正在設定 libasound2:armhf (1.0.28-1) ...
正在設定 libasound2-dev:armhf (1.0.28-1) ...
正在處理用於 libc-bin (2.19-18+deb8u10) 的觸發器 ...
最後檢查一下是否成功安裝
[email protected]:~ $ dpkg -s libasound2-dev
Package: libasound2-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 380
Maintainer: Debian ALSA Maintainers <[email protected]>
Architecture: armhf
Multi-Arch: same
Source: alsa-lib
Version: 1.0.28-1
Provides: libasound-dev
Depends: libasound2 (= 1.0.28-1)
Suggests: libasound2-doc
Description: shared library for ALSA applications -- development files
This package contains files required for developing software
that makes use of libasound2, the ALSA library.
.
ALSA is the Advanced Linux Sound Architecture.
Homepage: http://www.alsa-project.org/