【问题标题】:Apt-get can't install anything due to broken dependencies由于依赖关系损坏,apt-get 无法安装任何东西
【发布时间】:2017-11-23 18:04:05
【问题描述】:

每当我为任何软件包运行 apt-get install 时都会收到此错误

➜  ~ sudo apt-get install clang-5.0

Reading package lists... Done

Building dependency tree       

Reading state information... Done

You might want to run 'apt --fix-broken install' to correct these.

The following packages have unmet dependencies:

 gcc-7-multilib : Depends: libc6-dev-i386 (>= 2.11) but it is not going to be installed

 libc6-dev-x32 : Depends: libc6-dev-i386 (= 2.25-2) but it is not going to be installed

E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

当我运行 sudo apt --fix-broken install 我得到这个错误

Unpacking libc6-dev-i386 (2.25-2) ...

dpkg: error processing archive /var/cache/apt/archives/libc6-dev-i386_2.25-2_amd64.deb (--unpack):
 trying to overwrite '/usr/include/bits', which is also in package libc6-dev-amd64:i386 2.25-2

Errors were encountered while processing:

 /var/cache/apt/archives/libc6-dev-i386_2.25-2_amd64.deb

E: Sub-process /usr/bin/dpkg returned an error code (1)

【问题讨论】:

  • 第一个建议,试试aptitude命令,它会自动为你寻找解决方案。
  • cat /etc/apt/souces.listcat /etc/apt/sources.list.d/* 的输出是什么?

标签: debian apt libc dpkg


【解决方案1】:

我通过第一次运行修复它

sudo dpkg -r libc6-dev-i386

然后通过运行 sudo apt-get install libc6-dev-i386.

【讨论】:

  • 对我不起作用 dpkg:警告:忽略删除未安装的 libpng12-0:am​​d64 的请求
  • 处理时遇到错误:/var/cache/apt/archives/libpng12-0_1.2.54-1ubuntu1_amd64.deb
【解决方案2】:

我已经尝试了以下

  • sudo dpkg --configure -a
  • sudo apt-get -f install
  • sudo apt-get -u dist-upgrade
  • sudo apt --fix-broken
  • sudo apt-get -f install

但问题仍然存在,然后这种方法对我有用。 第一: 将 /etc/apt/ 文件夹移动到临时位置 [您需要管理员权限 (sudo)] 然后运行

  • sudo apt-get 更新
  • sudo apt 全面升级

删除自动生成的 /etc/apt/ 文件夹 然后我将以前的 /etc/apt/ 文件夹返回到其原始位置 并运行

  • sudo apt-get 更新
  • sudo apt 全面升级

【讨论】:

    【解决方案3】:

    这通常是由于“未满足已安装包的依赖项”而发生的

    打开终端并按以下顺序运行这些命令:

    • sudo apt-get update
    • sudo apt --fix-broken install
    • sudo dpkg --configure -a
    • sudo apt-get clean

    【讨论】:

      【解决方案4】:

      你必须这样做:

      $ sudo apt purge libc6-dev-x32
      

      然后在同一命令之后添加apt purge 显示的任何其他包,直到不再显示包。这对我有用。这是一个例子:https://askubuntu.com/a/1312145/165324

      【讨论】:

        【解决方案5】:

        其实apt --fix-broken install这个命令需要稍微修改一下就可以了。

        以下内容对我有用:

        sudo apt install --fix-broken
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-19
          • 2015-09-22
          • 2017-12-18
          • 2022-10-15
          • 1970-01-01
          • 2022-12-16
          • 1970-01-01
          • 2016-02-26
          相关资源
          最近更新 更多