大多数 Unix&Linux 软件都支持 x-copy 部署,这是否正确?如果我下载安装包并将文件解压缩到特定目录中 - 这是否足以开始使用该软件?
答案1
对于包的二进制构建来说也是如此。通常:
.rpm
适用于基于 Red Hat 的发行版.deb
适用于基于 Ubuntu/Debian 的发行版- 有时 .tar.gz 文件(仅当它们是二进制版本时)
通常,当您下载.tar.gz
、.tar.bz2
等时,这些是源发行版,因此需要进行配置和编译。一旦完成这些步骤,它们通常会从特定目录(例如/usr/bin
或 )运行/usr/local/bin
。
它们可以移动,但随后$PATH
需要$LD_LIBRARY_PATH
动态更改以反映它们的新位置,以便可以找到它们依赖的任何共享库。
二进制构建?
两者.deb
都.rpm
提供二进制形式的源码包,以便您可以更轻松地构建自定义二进制包。在基于 Red Hat 的发行版上,这些软件包通常被命名为.srpm
,并且它们的工具可以帮助.rpm
更轻松地将它们构建到软件包中。 Ubuntu/Debian 上也有类似的东西。
答案2
部署程序的正常方式是为每个发行版量身定制软件包:Red Hat、CentOS 和 SuSE 等为 rpm 格式,Debian、Ubuntu 和 Mint 等为 deb 格式等。
除了提供文件之外,此类包还提供许多其他服务,例如:
- 记录软件包的安装位置并跟踪版本和更新。
- 确保存在依赖项(例如程序所需的库)。
- 跟踪哪些文件属于哪个包。
- 注册并编译插件、模块、库等(如果适用)。
- 在文档索引中注册文档。
- 为交互式软件注册菜单项。
- 注册守护进程的启动脚本。
- 为包中提供的可以编辑或查看文件的应用程序注册文件类型。
- ETC。
基本档案如.tar.gz
工作也是如此,但它们不提供这些服务,因此您需要手动完成所有这些工作。它们足以手动运行大多数程序(如果您注意安装它们的依赖项),但仅此而已。