包管理工具

在Linux系统中,包管理工具是软件安装、升级、卸载和维护的核心组成部分,它们极大地简化了软件管理过程。不同的Linux发行版采用了不同的包管理体系,比如Debian系用的是apt、RetHat系用的是yun…

dpkg

  • dpkg是Debian系列发行版中最底层的包管理工具,它直接面向本地.deb格式的软件包
  • dpkg的主要职责是对单个软件包进行操作,例如安装、卸载、查看包信息等
  • 它本身并不具备自动解决依赖关系的能力,因此在使用dpkg安装软件时,如果该软件依赖的其他库或组件尚未安装,dpkg只会报错并终止操作,需要用户手动处理依赖问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 安装本地的.deb软件包,如果依赖缺失会报错但不会自动解决
dpkg -i package.deb

# 卸载已安装的软件包(但不删除/etc下的配置文件,适合以后重新安装)
dpkg -r package_name
# 完全卸载软件包(同时删除配置文件)
dpkg -P package_name

# 列出系统中所有已安装的软件包,显示包名、版本、架构和当前状态等信息
dpkg -l
# 查询某个软件包是否已安装及其状态
dpkg -l package_name
# 查看某个已安装软件包的详细信息
dpkg -s package_name

# 列出某个软件包安装到系统中的所有文件(常用于定位程序的可执行文件或配置文件路径)
dpkg -L package_name
# 查看某个文件属于哪个软件包(通过文件路径反查对应的软件包名称)
dpkg -S /path/to/file

# 只执行解包步骤,不运行安装配置脚本,适合调试或分步安装
dpkg --unpack package.deb
# 重新配置已解包或已安装的软件包
dpkg --configure package_name

apt

  • apt是基于dpkg封装的更高层、更智能的包管理解决方案,它解决了dpkg只能安装本地.deb包,不能处理依赖等问题
  • apt支持软件源管理,通过维护软件源列表,系统可以方便地获取官方或第三方仓库中提供的大量软件,并保持整体系统的一致性和安全性
  • apt并不是单一的程序,而是一整套工具和库的统称,常见的命令行工具包括apt、apt-get和apt-cache等
  • apt是较新的统一前端命令,它把过去分散在apt-get、apt-cache等工具中的常用功能整合到了一个命令下,例如apt install、apt search、apt show等。它在输出上更加友好,默认带有进度条、颜色提示以及更易读的信息格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 更新本地软件包索引
apt update

# 升级所有已安装的软件包
apt upgrade
# 允许删除或新增依赖的软件包升级
apt full-upgrade

# 安装指定的软件包
apt install package_name

# 卸载软件包但保留配置文件
apt remove package_name
# 卸载软件包并同时删除配置文件
apt purge package_name

# 在软件源中搜索软件包
apt search keyword

# 查看软件包的详细信息
apt show package_name

# 自动移除不再需要的依赖包
apt autoremove
# 清理所有已下载的软件包缓存
apt clean
# 清理过期的软件包缓存
apt autoclean

apt-get

apt-get和apt用的是同一个软件源,所有功能都一样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 更新本地软件包索引
apt-get update

# 升级所有已安装的软件包但不删除旧包
apt-get upgrade
# 允许删除或新增依赖的软件包升级
apt-get dist-upgrade

# 安装指定的软件包
apt-get install package_name

# 卸载软件包但保留配置文件
apt-get remove package_name
# 卸载软件包并同时删除配置文件
apt-get purge package_name

# 根据关键字搜索软件包
apt-get search keyword

# 显示软件包的详细信息
apt-get show package_name

# 自动移除不再需要的依赖包
apt-get autoremove
# 清理所有已下载的软件包缓存
apt-get clean
# 清理无法再从软件源获取的旧缓存
apt-get autoclean

apt-cache

apt-cache主要用于查询和分析APT的软件包缓存信息,它不直接安装或卸载软件,而是帮助用户了解软件包、依赖关系以及软件源中的内容,在排错、学习包管理机制时非常有用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 根据关键字搜索软件包
apt-cache search keyword

# 显示指定软件包的详细信息
apt-cache show package_name

# 显示软件包的依赖关系
apt-cache depends package_name
# 显示哪些软件包依赖于指定包
apt-cache rdepends package_name

# 显示系统中可安装的软件包统计信息
apt-cache stats

# 显示软件包的策略与可用版本
apt-cache policy package_name

# 列出所有已知的软件包名称
apt-cache pkgnames

# 显示软件包的源代码包信息
apt-cache showsrc package_name