dpkg
Debian为了解决软件管理问题,开发了dpkg(Debian Packager)来简化软件的安装,更新和移除,然后又在dpkg的基础上开发了APT(Advanced Packaging Tool)
- Debian首先维护了一个代码仓库,这个仓库中有大量预先基于dpkg处理好的软件和软件依赖
- 软件仓库中的所有软件信息被记录在一张表中,当仓库中的软件发生变动时(例如更新、新增或者移除),该表也会对应变化
- Debian终端用户获取远程仓库的记录表,从而知晓当前软件仓库中软件的情况
选项 | 描述 |
---|---|
-s | 报告指定包的状态信息 |
/var/lib/dpkg/info
在这里保存了各个软件包的配置文件列表
如果把这里的内容全部删除系统并不会崩溃,如果有未完全安装的软件包,那么把这个文件删除后再新建一个info是有效的解决方式
软件包的期望状态
状态 | 全称 | 描述 |
---|---|---|
u | unknown | 软件包未安装且用户未请求安装 |
i | install | 用户请求安装软件包 |
r | remove | 用户请求卸载软件包 |
p | purge | 用户请求卸载软件包并清理配置文件 |
h | hold | 用户请求保持当前软件包版本 |
dpkg --configure -a
如果apt被打断了,包被下载了但解压过程可能没有被完全配置或者安装,就可能出现问题
--configure
让dpkg完成半安装的软件的配置,-a
说明不只是一个特定的包,而是所有的解压过后的,但是没有被配置的软件都应该进行该处理
apt-
- 同步远程仓库中的记录表:
apt-get update
- 将本地所有软件包更新至远程仓库最新版本:
apt-get upgrade
- 在软件仓库中搜索某一软件包:
apt-cache search <package>
- 安装某个包:
apt-get install <package>
附加选项 | 描述 |
---|---|
-f ,--fix-missing |
有时候会因为网络问题得不到一些包,这时候需要做 |
- 清除不必要的包,这些包是为了满足其他软件包的依赖而安装的,但是现在不再需要:
apt-get autoremove
- 把已经安装的软件包的安装包删除掉:
apt-get clean
- 删除已经安装的软件包(保留配置文件):
apt-get remove
附加选项 | 描述 |
---|---|
--purge |
删除安装包,不保留配置文件,同时删除相应依赖软件包 |