一. What's package?
相比使用开源的软件代码自己编译生成应用程序而言,使用预编译的,开源的应用程序更受用户的欢迎,并且其拥有更好的统一性,一致性,以及对目标系统极低的敏感性。通常上,这个预编译的,开源的应用程序就是package.
package主要包含了执行应用程序所依赖的所有的二进制程序,数据,配置文件,同时也包含了部署程序到目标系统的所有步骤,通常上是一个或多个脚本。这些脚本可能还会包含产生数据,启动或停止服务,操作文件和目录,升级应用程序等。
由于每个操作系统都有其特性,因此软件包通常是针对特定系统量身定制的。此外,每个操作系统都提供了自己的包管理器,这是一个特殊的实用程序,用于在系统中添加和删除包。 RedHat Linux 系统使用 RPM Package Manager。包管理器通过原子地添加和删除包中的文件来排除部分和错误的安装和“卸载”。 包管理器还维护系统上安装的所有包的清单,并且可以预先验证先决条件和并存条件的存在。
使用package来安装,更新,维护应用程序对开发人员和系统管理员来说更容易。
目前也有相对于package的另外一种程序管理方式以tar,zip等形式存在, 这种方式解压之后无需安装,直接可以运行.
缺点:
1. 用户下载使用的软件,可能无法被其他用户使用.
<