2016-03-24 80 views
4

在這種情況下,如何解決未滿足的依賴關係?我跟着很多文章要求我做以下事情。但沒有任何作品!我不明白如何手動修復問題。libstdC++ 6-armhf-cross未能滿足依賴性錯誤。如何解決它?

sudo apt-get clean 
sudo apt-get autoclean 
sudo apt-get -f install 

什麼都沒有發生!我仍然得到錯誤。

sudo dpkg --configure -a 
sudo apt-get -f install 

還是一樣的錯誤!

The following extra packages will be installed: 
     libstdc++6-armhf-cross 
    The following packages will be upgraded: 
     libstdc++6-armhf-cross 
    1 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. 
    4 not fully installed or removed. 
    Need to get 0 B/210 kB of archives. 
    After this operation, 77.8 kB of additional disk space will be used. 
    Do you want to continue? [Y/n] Y 
    (Reading database ... 519436 files and directories currently installed.) 
    Preparing to unpack .../libstdc++6-armhf-cross_4.8.4-2ubuntu1~14.04.1cross0.11.1_all.deb ... 
    Unpacking libstdc++6-armhf-cross (4.8.4-2ubuntu1~14.04.1cross0.11.1) over (4.8.2-16ubuntu4cross0.11) ... 
    dpkg: error processing archive /var/cache/apt/archives/libstdc++6-armhf-cross_4.8.4-2ubuntu1~14.04.1cross0.11.1_all.deb (--unpack): 
    trying to overwrite '/usr/share/gcc-4.8/python/libstdcxx/__init__.py', which is also in package libstdc++6:i386 4.8.4-2ubuntu1~14.04.1 
    Errors were encountered while processing: 
    /var/cache/apt/archives/libstdc++6-armhf-cross_4.8.4-2ubuntu1~14.04.1cross0.11.1_all.deb 
    E: Sub-process /usr/bin/dpkg returned an error code (1) 

任何人都可以幫我弄清楚如何解決這個問題嗎?我需要安裝一些軟件包,這個錯誤不允許我安裝它!

回答

1

使用下面的命令

sudo dpkg --remove --force-remove-reinstreq <package_name> 

強行取出具有未滿足的依賴包。

然後列出所有已安裝的軟件包:

dpkg --get-selections | grep -v deinstall 

現在,當我檢查包造成的問題;在這種情況下,用於arm交叉編譯工具的cpp庫。

有4.6-4.9的gcc版本有各自的arm交叉編譯器!更不用說amd64和i386的gcc了!

這些安裝在舊項目的不同時間,所以我刪除了所有舊版本。

這解決了問題,我可以更新到最新的ARM交叉編譯器

+0

這不是未滿足的依賴關係,它是一個文件衝突。 – Curt

9

我碰到了同樣的問題。根據this bug report,這似乎是一個確認的錯誤和一個臨時的解決辦法是

$ sudo apt-get -o Dpkg::Options::="--force-overwrite" install -f

這給底層dpkg命令--force-overwrite選項。