2016-03-24 37 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选项。