2.8. Software Collection Macros
Software Collection 打包宏
scl
定义在哪里重新定位软件集合的文件结构。重新定位的文件结构是由 Software Collection 只使用的文件系统。
%scl_package
宏定义 Software Collection 的 metapackage 的文件所有权,并提供额外的打包宏以便在 Software Collection 环境中使用。
要能够使用单个 spec 文件构建传统软件包和 Software Collection 软件包,请为 Software Collection 宏添加前缀
%{?scl:macro}
,如下例所示:
%{?scl:Requires: %scl_runtime}
在上例中,
%scl_runtime
宏是 Requires
标签的值。宏和标签都使用 %{?scl:
前缀。
2.8.1. 特定于 Software Collection 的宏
下表显示了特定于特定软件集合的所有宏的列表。所有宏都有默认值,在大多数情况下,您不需要更改它们。
Macro
|
描述
|
示例值
|
---|---|---|
%scl_name
|
Software Collection 的名称
| software_collection_1
|
%scl_prefix
|
Software Collection 的名称,在末尾附加一个短划线
| software_collection_1-
|
%pkg_name
|
原始软件包的名称
| perl
|
%_scl_prefix
|
Software Collection 的根(而不是软件包的根)
| /opt/provider/
|
%_scl_scripts
|
Software Collection 的 scriptlet 的位置
| /opt/provider/software_collection_1/
|
%_scl_root
|
软件包的安装根(install-root)
| /opt/provider/software_collection_1/root/
|
%scl_require_package software_collection_1 package_2
|
依赖于特定 Software Collection 中的特定软件包
| software_collection_1-package_2
|
2.8.2. 宏不特定于软件集合
下表显示了不特定于特定 Software Collection 的宏列表。由于这些宏没有被重新定位且不指向 Software Collection 文件系统,所以它们允许您指向系统根文件系统。这些宏使用
_root
作为前缀。
所有宏都有默认值,在大多数情况下,您不需要更改它们。
Macro
|
描述
|
relocated
|
示例值
|
---|---|---|---|
%_root_prefix
|
Software Collection 的
%_prefix 宏
|
否
| /usr/
|
%_root_exec_prefix
|
Software Collection 的
%_exec_prefix 宏
|
否
| /usr/
|
%_root_bindir
|
Software Collection 的
%_bindir 宏
|
否
| /usr/bin/
|
%_root_sbindir
|
Software Collection 的
%_sbindir 宏
|
否
| /usr/sbin/
|
%_root_datadir
|
Software Collection 的
%_datadir 宏
|
否
| /usr/share/
|
%_root_sysconfdir
|
Software Collection 的
%_sysconfdir 宏
|
否
| /etc/
|
%_root_libexecdir
|
Software Collection 的
%_libexecdir 宏
|
否
| /usr/libexec/
|
%_root_sharedstatedir
|
Software Collection 的
%_sharedstatedir 宏
|
否
| /usr/com/
|
%_root_localstatedir
|
Software Collection 的
%_localstatedir 宏
|
否
| /usr/var/
|
%_root_includedir
|
Software Collection 的
%_includedir 宏
|
否
| /usr/include/
|
%_root_infodir
|
Software Collection 的
%_infodir 宏
|
否
| /usr/share/info/
|
%_root_mandir
|
Software Collection 的
%_mandir 宏
|
否
| /usr/share/man/
|
%_root_initddir
|
Software Collection 的
%_initddir 宏
|
否
| /etc/rc.d/init.d/
|
%
_root_libdir
|
Software Collection 的
%_libdir 宏,如果 Software Collection 的 metapackage 是独立于平台的,则这个宏无法正常工作
|
否
| /usr/lib/
|
2.8.3. nfsmountable Macro
使用 Software Collection 宏
nfsmountable
可让您更改 _sysconfdir
、_sharedstatedir
和 _localstatedir
宏的值,以便软件集合可以将其状态文件和配置文件位于 Software Collection 的 /opt
文件系统层次结构之外。这使得文件更易于管理,在通过 NFS 使用软件集合时也需要。
如果您不需要通过 NFS 支持 Software Collections,请使用
nfsmountable
是可选的,但推荐使用。如需更多信息,请参阅 第 3.1 节 “通过 NFS 使用 Software Collections”。