2.5. 安装任意工件
与 UNIX 类似的系统使用文件系统层次结构标准(FHS)指定适合特定文件的目录。
从 RPM 软件包安装的文件按照 FHS 放置在其中。例如,可执行文件应进入一个位于系统 $PATH 变量中的目录。
在本文档的上下文中,Arbitrary Artifact(任意工件) 代表从 RPM 安装到系统的项。对于 RPM 和系统,它可以是脚本、从软件包的源代码编译的二进制代码、预编译二进制文件或任何其他文件。
这部分论述了将 Arbitrary Artifacts 放置到系统的两个常用方法:
2.5.1. 使用 install 命令 复制链接链接已复制到粘贴板!
在构建自动化工具(如 GNU make )进行构建自动化工具时,打包程序通常使用 install 命令;例如,打包程序不需要额外的开销。
install 命令由 coreutils 向系统提供,后者将工件放置在文件系统中具有指定权限集的文件系统中。
以下流程使用之前作为此安装方法创建的任意工件的 bello 文件。
步骤
运行
install命令,将bello文件放入/usr/bin目录中,权限为可执行脚本:sudo install -m 0755 bello /usr/bin/bello
$ sudo install -m 0755 bello /usr/bin/belloCopy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,
stllo位于$PATH变量中列出的目录中。从任何目录中执行
bello,而不指定其完整路径:cd ~ bello
$ cd ~ $ bello Hello WorldCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. 使用 make install 命令 复制链接链接已复制到粘贴板!
使用 make install 命令是自动安装构建软件到系统的方法。在这种情况下,您需要指定如何在由开发人员编写的 Makefile 中向系统安装任意工件。
此流程演示了如何将构建工件安装到系统中所选位置。
步骤
将
install部分添加到Makefile中:MakefileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,
cello:,clean:, andinstall:下的行需要以一个 tab 空间开头。注意$(DESTDIR) 变量是一个 GNU make 内置变量,通常用于将安装指定到与根目录不同的目录中。
现在,您只能使用
Makefile来构建软件,也可以将其安装到目标系统。构建并安装
cello.c程序:make sudo make install
$ make gcc -g -o cello cello.c $ sudo make install install -m 0755 cello /usr/bin/celloCopy to Clipboard Copied! Toggle word wrap Toggle overflow 因此,
cello现在位于$PATH变量中列出的目录中。从任何目录中执行
cello,而不指定其完整路径:cd ~ cello
$ cd ~ $ cello Hello WorldCopy to Clipboard Copied! Toggle word wrap Toggle overflow