debian软件包管理

软件包组成结构

在Debian下,软件包可以分为两类:binary(二进制包)和source(源码包)。

二进制包就是.deb文件,它是由源码经过编译打包后的文件,可以直接用dpkg安装,对于用户来说方便快捷;
源码包是Debian系统中软件的基础,所有的.deb文件都出自对应的源码包,源码包里面包含源代码以及构建二进制包的说明,后面会介绍到。

二进制包的结构

当我们本地有一个deb文件的时候(可以通过apt download xxx下载),如果想要查看它的内容:
以apt软件包为例

$ ar t apt_1.8.2+deepin-1+deepin_amd64.deb       # 查看包内容
debian-binary
control.tar.xz
data.tar.xz
$ ar x apt_1.8.2+deepin-1+deepin_amd64.deb      # 提取包内容
$ ls
apt_1.8.2+deepin-1+deepin_amd64.deb  control.tar.xz  data.tar.xz  debian-binary
$ cat debian-binary 
2.0
$ tar tf control.tar.xz     # 查看包内容
./
./conffiles
./control
./md5sums
./postinst
./postrm
./preinst
./prerm
./shlibs
./triggers
$ tar tf data.tar.xz 
./
./etc/
./etc/apt/
./etc/apt/apt.conf.d/
./etc/apt/apt.conf.d/01autoremove
./etc/apt/auth.conf.d/
./etc/apt/preferences.d/
./etc/apt/sources.list.d/
.....

我们依次查看了下deb包包含的三个文件:
debian-binary 这是一个文本文件,仅指示这个.deb包使用的版本格式为2.0。(2015年:版本2.0)
control.tar.gz 该包包含所有可用的元信息(软件包控制信息),例如control,md5sums,conffiles…。其中一些元信息允许包管理工具(如apt…)去确定是否可以安装或卸载它,例如根据计算机上已经存在的软件包列表。
data.tar.gz 这个包里包含了所有要从软件包中提取的文件。里面包括可执行文件,文档等全部文数据。
其中,在control.tar.gz中,包含的一些文件,这些文件数据是供包管理工具使用的,不属于软件本身,他他本,在元信息中,表述了本软件的基本信息和其他软件包的关系(依赖,冲突,建议等等),还提供了一些脚本,这些脚本在软件包安装或是删除的时候会去执行。

control文件

Package: apt
Version: 1.8.2+deepin-1+deepin
Architecture: amd64
Maintainer: APT Development Team 
Installed-Size: 3925
Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, libapt-pkg5.0 (>= 1.7.0~alpha3~), libc6 (>= 2.15), libgcc1 (>= 1:3.0), libgnutls30 (>= 3.6.6), libseccomp2 (>= 1.0.1), libstdc++6 (>= 5.2)
Recommends: ca-certificates
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), gnupg | gnupg2 | gnupg1, powermgmt-base
Breaks: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~), aptitude (<< 0.8.10)
Replaces: apt-transport-https (<< 1.5~alpha4~), apt-utils (<< 1.3~exp2~)
Provides: apt-transport-https (= 1.8.2+deepin-1+deepin)

你可能感兴趣的:(linux,debian,apt,dpkg,运维)