AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1501116
Accepted
laur
laur
Asked: 2019-11-12 08:20:55 +0800 CST2019-11-12 08:20:55 +0800 CST 2019-11-12 08:20:55 +0800 CST

损坏的 debian 软件包并使用 apt-get -f 修复

  • 772

当我们安装一个安装失败的软件包时究竟会发生什么deb,以及如何apt-get -f补救这种情况(而不是在安装开始时发生这种情况)?

例子:

1)我们安装从https://github.com/getferdi/ferdi/releases/tag/v5.3.3下载的 ferdi 包:

$ dpkg -i ferdi.deb
Selecting previously unselected package ferdi.
(Reading database ... 180829 files and directories currently installed.)
Preparing to unpack .../ferdi_5.3.3_amd64.deb ...
Unpacking ferdi (5.3.3-157) ...
dpkg: dependency problems prevent configuration of ferdi:
 ferdi depends on gconf2; however:
  Package gconf2 is not installed.
 ferdi depends on gconf-service; however:
  Package gconf-service is not installed.
 ferdi depends on libappindicator1; however:
  Package libappindicator1 is not installed.

dpkg: error processing package ferdi (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.64) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Errors were encountered while processing:
 ferdi

正如我们所见,由于缺少依赖项,包没有正确安装。

2)然而修复损坏的包很容易成功:

$ apt-get --fix-broken --yes install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  gconf-service gconf2 libappindicator1 libdbusmenu-gtk4 libindicator7
Suggested packages:
  gconf-defaults-service
The following NEW packages will be installed:
  gconf-service gconf2 libappindicator1 libdbusmenu-gtk4 libindicator7
0 upgraded, 5 newly installed, 0 to remove and 53 not upgraded.
1 not fully installed or removed.
Need to get 993 kB of archives.
After this operation, 1,539 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian unstable/main amd64 gconf-service amd64 3.2.6-6 [415 kB]
Get:2 http://deb.debian.org/debian unstable/main amd64 gconf2 amd64 3.2.6-6 [426 kB]
Get:3 http://deb.debian.org/debian stable/main amd64 libdbusmenu-gtk4 amd64 18.10.20180917~bzr490+repack1-1 [45.7 kB]
Get:4 http://deb.debian.org/debian stable/main amd64 libindicator7 amd64 0.5.0-4 [53.0 kB]
Get:5 http://deb.debian.org/debian stable/main amd64 libappindicator1 amd64 0.4.92-7 [53.3 kB]
Fetched 993 kB in 1s (1,071 kB/s)          
Selecting previously unselected package gconf-service.
(Reading database ... 181193 files and directories currently installed.)
Preparing to unpack .../gconf-service_3.2.6-6_amd64.deb ...
Unpacking gconf-service (3.2.6-6) ...
Selecting previously unselected package gconf2.
Preparing to unpack .../gconf2_3.2.6-6_amd64.deb ...
Unpacking gconf2 (3.2.6-6) ...
Selecting previously unselected package libdbusmenu-gtk4:amd64.
Preparing to unpack .../libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_amd64.deb ...
Unpacking libdbusmenu-gtk4:amd64 (18.10.20180917~bzr490+repack1-1) ...
Selecting previously unselected package libindicator7:amd64.
Preparing to unpack .../libindicator7_0.5.0-4_amd64.deb ...
Unpacking libindicator7:amd64 (0.5.0-4) ...
Selecting previously unselected package libappindicator1:amd64.
Preparing to unpack .../libappindicator1_0.4.92-7_amd64.deb ...
Unpacking libappindicator1:amd64 (0.4.92-7) ...
Setting up libindicator7:amd64 (0.5.0-4) ...
Setting up gconf-service (3.2.6-6) ...
Setting up libdbusmenu-gtk4:amd64 (18.10.20180917~bzr490+repack1-1) ...
Setting up libappindicator1:amd64 (0.4.92-7) ...
Setting up gconf2 (3.2.6-6) ...
Setting up ferdi (5.3.3-157) ...
Processing triggers for man-db (2.9.0-1) ...
Processing triggers for libc-bin (2.29-2) ...
  1. 为什么在 期间没有安装缺少的依赖项dpkg -i?
  2. 为什么apt-get -f能够轻松解决?
  3. 这是可以做的事情,还是会导致系统损坏?

编辑: 请参阅下面的@thorian93 答案。另请参阅https://askubuntu.com/a/795048/1002165

debian package-management
  • 1 1 个回答
  • 373 Views

1 个回答

  • Voted
  1. Best Answer
    Thorian93
    2019-11-12T08:27:51+08:002019-11-12T08:27:51+08:00

    据我所知dpkg,没有依赖解析。这就是为什么您最终会收到损坏的包裹。无论如何都会安装该软件包,但它在该状态下不起作用。

    入口apt:apt读取dpkg数据库,找到损坏的包和丢失的依赖项。与依赖项解析apt 一样,它会扫描其配置的镜像以查找依赖项并安装它们。

    回答你的第三个问题:这样做是可以的,尽管我建议apt首先安装包,或者至少使用gdebi,它也能够进行依赖解析。

    • 2

相关问题

  • 使用 docker 获取 http://deb.debian.org/debian/dists/jessie-updates/InRelease 的问题

  • 根分区变成2个分区

  • Pixelbook 安装 r-base 依赖项时出现 held broken packages 错误

  • 重启 Debian 服务器后目录丢失

  • 如何在 freeBSD 发行版上安装包管理器 (PKG)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve