.deb文件怎么安装_aptget f install修复依赖损坏时为什么要把info文件夹下文件移来移去...

    小张同学要在Ubuntu系统下安装Docker,安装第一步:准备相关包:apt-get install packages...就报错啦,详细报错信息如下:

85cf258a838b0921549caa17dcba025e.png

检查红框框里error部分,发现是dpkg报错:curl依赖的一些package配置有问题

小张同学很好奇:为什么执行apt-get却是dpkg报错了呢?

cfafa4c5907e1a0e0c5992178629cca6.png apt-get与dpkg都是Ubuntu系统中安装软件包的工具。其中,dpkg用于离线安装,不解决包的依赖关系。apt-get是建立在dpkg上的软件管理工具,可以解决安装模块的依赖问题。    

    关于dpkg详细的解释:dpkg (Debian package),是为Debian操作系统(Ubuntu是基于Debian的unstable版本)开发的套件管理系统,用来安装、删除、构建和管理系统的软件包。但是dpkg用来离线安装已下载在本地的deb包,如果有deb包依赖其它包,不能自动安装。

小张同学针对报错信息搜索到了解决方案:

eb804e1c36783d17b2d39bba6ef9d12b.png

其中,apt-get -f install命令可以修复包的依赖关系。

那么为什么不直接用apt-get -f install修复? /var/lib/dpkg/info/ 文件夹下的文件移来移去做什么?

cfafa4c5907e1a0e0c5992178629cca6.png  /var/lib/dpkg/info/ 文件夹下存放所有安装包的配置文件列表,需要修复软件包的已有配置文件在info下会阻碍 apt-get -f install 修复,因此需要先清除出错的原配置文件。

清空info文件夹后,apt-get -f install 修复全部配置文件列表吗?

cfafa4c5907e1a0e0c5992178629cca6.png 不是的,apt-get -f install 仅修复损坏的软件包。觉得很神奇,info文件夹下该有的文件都没有了,系统怎么知道修复那个软件呢?婉婉小姐姐告诉我

/var/lib/dpkg/ 下有一个status文件,记录了package的状态,所以系统晓得哪个软件需要修复,不是根据info下的文件决定修复哪个软件的。

用上边apt-get -f install 的方法解决后,发现似乎还有一种方法可以解决,(码住下次试一下这个解决方案):

3160e63056ac751bcbe6e1bbe176a53b.png

收获三颗小豌豆:

cfafa4c5907e1a0e0c5992178629cca6.pngdpkg安装本地软件包,不解决依赖关系。apt-get方法基于dpkg,在线安装,解决安装包的依赖关系。

cfafa4c5907e1a0e0c5992178629cca6.pnginfo文件夹下文件要被移来移去是为了清除出错的原配置文件。

cfafa4c5907e1a0e0c5992178629cca6.png系统通过status文件判断哪些文件需要修复。

感谢婉婉小姐姐用花生和糖左口袋移右口袋的例子形象生动地为我解释info文件夹下文件为什么要移来移去2b9e8613e1e2ccb2e99eae4de06f2153.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值