介绍

在GNU操作系统中。RPM 和 DPKG 为最常见的两类软件包管理工具。
分别为两种,为RPM和DEB
以下操作在ubuntu下使用

dpkg

dpkg - package manager for Debian (debian系统的包管理工具)。

文件介绍

在etc目录下的dpkg目录下能找到其配置文件

ming@ming-pc-xiao:/etc/dpkg$ ls
dpkg.cfg  dpkg.cfg.d  origins  shlibs.default  shlibs.override
ming@ming-pc-xiao:/etc/dpkg$ 

其中信息如下

/etc/dpkg/dpkg.cfg dpkg包管理软件的配置文件【Configuration file with default options】

/var/log/dpkg.log dpkg包管理软件的日志文件【Default log file (see /etc/dpkg/dpkg.cfg(5) and option --log)】

/var/lib/dpkg/available 存放系统所有安装过的软件包信息【List of available packages.】

/var/lib/dpkg/status 存放系统现在所有安装软件的状态信息

/var/lib/dpkg/info 记安装软件包控制目录的控制信息文件

dpkg数据库

dpkg使用文本文件来作为数据库,包括文件清单, 依赖关系, 软件状态
在/var/lib/dpkg 目录下
例如,查询已经安装的所有的包

ming@ming-pc-xiao:/var/lib/dpkg$ dpkg -l 

ii  zlib1g-dev:amd 1:1.2.11.dfs amd64        compression library - development

i为期望值,表示用户请求安装
第二列,表示软件包安装完成并完成配置。

第三个字符为错误状态,表示空表示没有问题。

使用dpkg安装命令

ming@ming-pc-xiao:/var/lib/dpkg$ sudo dpkg -i package-name.deb 

安装命令的时候,分为解包和配置

dpkg --unpack package-name.deb

二进制包进行解包

dpkg --configure package-name.deb

即,使用上方命令对包进行配置

关于apt

apt是用于解决安装dpkg包的依赖关系的。
linux distribution 先将软件放置到对应的服务器中,然后分析软件的依赖关系,并且记录下来,然后当客户端有安装软件需求时,通过清单列表与本地的dpkg以存在的软件数据相比较,就能从网络端获取所有需要的具有依赖属性的软件了。

工作原理

Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(Reposity)

ubuntu镜像仓库 需要修改/etc/apt/sources.list 文件

apt更新过程

执行apt-get update

程序分析/etc/apt/sources.list

自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录
然后 apt-get install 相应的包 ,下载并安装。