apt及dpkg包管理笔记

1个软件包可能会包含n个二进制(命令),所以软件包名和二进制名并不一定一样,如:net-tools 是软件包名,其中包含了可执行文件 ifconfig 。

起初只有dpkg工具,用于管理软件包,但是dpkg不能自动解决软件的依赖问题,所以后来有了apt命令。apt在dpkg的基础上,引入了在线软件仓库,可以通过配置软件源选择不同的软件仓库,并且apt可以自动解析依赖和安装依赖。

因此在安装deb包时,请使用apt命令而不是dpkg命令。

添加/更新软件源

# 添加软件源,主源
sudo vim /etc/apt/sources.list

# 添加软件源,扩展源
# sudo vim /etc/apt/sources.list.d/

# 更新软件源
sudo apt update

安装软件包

# 安装软件源中的包
sudo apt install <软件包名>

# 安装本地包
sudo apt install ./<软件包名>

# 自动解决存在的依赖问题
sudo apt install -f

# 不推荐的方法
# sudo dpkg -i <软件包名>

卸载软件包

# 卸载软件包,但不卸载配置
sudo apt remove <软件包名>

# 卸载软件包,并且卸载配置
sudo apt purge <软件包名>

# 不推荐的方法
# sudo dpkg -r <软件包名>
# sudo dpkg -P <软件包名>

查看/搜索软件包

# 枚举所有已安装的软件包
dpkg -l

# 查看指定软件包的安装目录
dpkg -L <软件包名>

# 查看已安装的软件包的元信息
dpkg -s <软件包名>

# 解析指定文件所在的软件包名
dpkg -S $(readlink -f <文件名>)

deb 包管理

# 查看deb包的元信息,不需要解压
dpkg-deb --info <deb包名>

# 打包
dpkg-deb -b <已解压的deb包目录>

# 解包
dpkg-deb -R <deb包名> <解压位置>

# 重新配置软件包
sudo dpkg-reconfigure <软件包名>

apt 源管理

# 开启i386架构
sudo dpkg --add-architecture i386

# 查看软件源中的所有软件包版本
apt-cache policy <软件包名>

# 下载软件包
apt download <软件包名>

# 搜索包含指定命令的软件包
apt search <命令>

常见问题

下载软件包依赖

:::warning{title=“注意”}
必须在纯净环境中操作,如chroot或docker。
:::

  1. 清空apt缓存:
sudo apt clean
sudo apt-get --download-only install <包名>
sudo apt-get --download-only dist-upgrade
  1. 拷贝apt缓存路径中的依赖包
cp -R /var/cache/apt/archives/* <目的地> 

i386包和amd64包不匹配

  1. 问题描述

比如这样i386和64位依赖版本不一致:

image.png

  1. 解决方案
  • 先查看源中的最高版本

image.png

  • 然后到ppa中查看编译状态,可以看到i386编译失败了,
  • 将未编译成功的高版本,重新编译成功即可。

image.png

image.png

image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多弗朗强哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值