【问题标题】:unable to run apt-get -f install on debian无法在 debian 上运行 apt-get -f install
【发布时间】:2022-01-21 01:23:44
【问题描述】:

我有一个系统要升级,但我与apt-get -f install 有冲突:

 apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  login sysvinit-utils util-linux
Suggested packages:
  kbd util-linux-locales
The following packages will be upgraded:
  login sysvinit-utils util-linux
3 upgraded, 0 newly installed, 0 to remove and 106 not upgraded.
13 not fully installed or removed.
Need to get 0 B/1775 kB of archives.
After this operation, 1886 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
E: Sub-process false returned an error code (1)
E: Prior errors apply to /var/cache/apt/archives/sysvinit-utils_2.96-7_arm64.deb
E: Prior errors apply to /var/cache/apt/archives/util-linux_2.36.1-8_arm64.deb
E: Prior errors apply to /var/cache/apt/archives/login_1%3a4.8.1-1_arm64.deb
debconf: apt-extracttemplates failed: No such file or directory
(Reading database ... 9765 files and directories currently installed.)
Preparing to unpack .../sysvinit-utils_2.96-7_arm64.deb ...
Unpacking sysvinit-utils (2.96-7) over (2.88dsf-59) ...
dpkg: error processing archive /var/cache/apt/archives/sysvinit-utils_2.96-7_arm64.deb (--unpack):
 trying to overwrite '/lib/init/vars.sh', which is also in package initscripts 2.88dsf-59
Errors were encountered while processing:
 /var/cache/apt/archives/sysvinit-utils_2.96-7_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

我不明白为什么在我确认安装软件包后它会显示E: Sub-process false returned an error code (1)。谁能帮我解决这个问题?

【问题讨论】:

    标签: apt debian-jessie


    【解决方案1】:

    initscripts 是一个纯粹的虚拟包,所以给 dpkg 权限覆盖它是安全的。打开终端并输入:

    sudo dpkg -i --force-overwrite /var/cache/apt/archives/sysvinit-utils_2.96-7_arm64.deb
    

    如果您不直接使用 dpkg 并使用 apt 前端(如 apt 或 apt-get),则以下命令定义与上一个命令相同的自定义 dpkg 选项。

    sudo apt-get -o Dpkg::Options::="--force-overwrite" install sysvinit-utils
    

    【讨论】:

    • 我如何确定哪些包是“虚拟的”并且可以很容易地被覆盖,我现在遇到了类似的问题 init-system-helpers_1.60_all.deb 但不知道应用相同的方法是否安全如上
    • 我运行了以下命令来显示有关 initscripts 包的信息:apt show sysvinit-utils
    • 我这样做了,但它没有说明它是虚拟的,也没有表明它会像sysvinit-utils 那样包含多个包。所以我想我必须寻找一种替代方法来解决这个冲突,有什么建议吗?
    • @stdcerr 我在 Debian 包搜索中检查了 sysv-rc 2.88dsf-59,它是 Debian 8 (jerssie) 的一个包,它似乎不是一个纯粹的虚拟包。因为它是一个真正的软件包,所以终端会警告您安装 init-system-helpers_1.60_all.deb 会破坏 Debian 8.0 中的软件包管理。 init-system-helpers_1.60_all.deb 仅与 Debian 11 (bullseye) 兼容,因此您必须卸载此软件包并从 http://ftp.debian.org/ 安装 init-system-helpers_1.22_all.deb (这是 jessie 的)。
    • 我还建议您自己确认这一点,通过运行rmadison -u debian init-system-helpers 在 jessie 中找到 init-system-helpers 的包版本,即 1.22 版。 jessie 目前被 Debian 称为 oldoldoldstable。 jessie 目前是非官方的商业扩展 LTS 支持,对 jessie 的 ELTS 支持将于 2022-06-30 结束。 ELTS 不是 Debian 项目。
    【解决方案2】:

    尝试刷新缓存然后重新安装:

    apt autoremove 
    apt clean
    apt autoclean
    apt update
    apt install -f
    

    如果没有帮助,请尝试删除有问题的软件包并正常重新安装。

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多