我想了解 Linux 在运行 .deb 文件时会做什么。我的意思是,它会查找 .deb 文件中的任何特定文件或文件的默认名称。我对 Linux 还很陌生,所以一个简单、开门见山的答案就太好了!先感谢您!
答案1
文件.deb
是一个存档(通过 提取它ar x package.deb
或仅通过 列出内容dpkg -c package.deb
),包含以下内容:data.tar.xz
, control.tar.gz
,debian-binary
数据.tar.xz
通过提取此存档tar -xvf data.tar.xz
,您将在安装它们的文件夹结构中拥有实际文件。所有程序都已编译(与下载源代码并自行编译相反)。假设一个小包的内容是./usr/bin/program
(二进制文件)和./usr/lib/program/special.so
(程序使用的库),那么安装过程中所做的只是将这些文件复制到目录中/usr
。
控制.tar.gz
通过提取tar -xzvf control.tar.gz
。包含用于控制安装的参考:出于安全原因的哈希值、软件包版本和每个文件版本的准确描述、有关依赖项的信息以及用于配置的文件。
描述版本和依赖关系的需要是显而易见的。文件版本很有趣,即使通过.deb
-files 安装更新,例如某些库文件可能是相同的 - 因此不需要重新安装它们。另一方面,配置文件通常已由用户调整,因此覆盖它们是不行的。
debian 二进制文件
只是告诉系统.deb
使用什么文件标准。 2.0 - 如今。
还有什么事情发生?
使用版本信息dpkg
更新已安装软件包的日志以及在哪里可以找到它们。版本和依赖项检查以及删除包时需要。
答案2
Linux 不直接运行 .deb 文件。如果您单击 .deb 文件,它就会安装,因为系统知道它应该使用可以安装打包在 .deb 文件中的应用程序的程序打开 .deb 文件。通常,这样的程序是dpkg
.dpkg
打开 .deb 文件并解压缩内容。 .deb 文件包含两个压缩档案等(https://fileinfo.com/extension/deb,https://en.wikipedia.org/wiki/Deb_(文件格式))。一个包含安装说明/脚本,另一个包含已安装应用程序的实际文件。通常,安装脚本会将程序复制到指定目录并设置程序可能需要的一些其他设置。如果程序非常简单,则无需进行任何设置,因此安装时只会将程序复制到其目的地,您可以从那里启动它。