当与 Linux 软件一起使用时,术语“安装”或“安装”是什么意思?

当与 Linux 软件一起使用时,术语“安装”或“安装”是什么意思?

我没有编程经验,但我了解 shell 脚本理论上是如何工作的。使脚本可执行只有两个重要步骤,

  1. 我必须告诉 shell 如何通过编写#!/path/to/interpreter,来解释脚本的内容
  2. 我必须授予执行该文件的权限chmod +x filename

到目前为止,我可以理解它,但是包含许多文件并压缩在一个.tar.gz包中的“真实”程序与这种安装有何不同,Linux 需要在幕后执行哪些重要步骤才能制作该程序可执行的?或者简而言之:在 Linux 中安装的真正意义是什么?

答案1

Unix 程序的安装大致由两部分组成。

1)将文件放在合适的位置

2)适当设置文件权限和所有权

关于第一点,Linux 文件层次结构标准 是相关的。这是 Linux 特有的,但很大程度上遵循历史上编纂的 Unix 规则。具体来说,打算由用户运行的二进制文件放置在 中/usr/bin,用于管理等的系统级二进制文件放置在 中/bin,本地安装的二进制文件通常放置在/usr/local/bin等中。这些是系统在运行时查看的位置,基于PATH 变量,在 Debian 上是/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.同样,库也按照类似的规则放置在特定位置、/usr/lib、等。同样,默认情况下,系统设计为在运行时查看这些目录。/lib/usr/local/bin

还有其他指定的位置用于放置文档(包括手册页)和数据文件,但这些对于系统功能并不是那么重要。

对于第二点,系统不同部分的文件具有不同的所有权和权限。虽然大多数文件归 root 所有,但关联的组有所不同。

安装的实际机制各不相同,但通常由构建系统的安装目标处理。对于免费的类 Unix 系统(例如基于 Linux 的系统),最常见的构建系统是 Autotools 和 Cmake。

通常还有一个额外的层。通常 Linux 系统有一个二进制包管理器。这些包通常是通过调用安装目标来构建的,但它们不是将文件安装到系统中,而是作为构建二进制包过程的一部分安装到临时目录中。对于 Debian,这通常是debian/tmp源目录的子目录。

与本地安装相比,将二进制包安装到系统中具有许多优点,特别是跟踪哪些文件属于哪个包/软件,以及以干净可靠的方式处理包/软件删除。虽然构建系统可能有卸载目标,但这并不是处理卸载的可靠方法。

答案2

安装程序是由操作系统的包管理器完成的。所以取决于操作系统(Linux是内核)。

例如Debian是一个Gnu/Linux,它用来apt安装deb软件包。红帽、suse、Freebsd。等使用不同的包管理器。

本质上,他们会将文件复制到需要的位置(普通用户无法更改的位置),并设置适当的权限。它还将调整适当的配置文件。

它没有什么魔力,窗帘后面的东西只是跟踪,以便更容易卸载。

相关内容