本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是程序包 URL?
程序包 URL 或 PURL
PURL 结构
PURL 结构类似于 URL,由多个部分组成:
-
pkg– 文本前缀 -
type– 程序包类型 -
namespace– 分组 -
name– 程序包名称 -
version– 程序包版本 -
qualifiers– 额外的键值对 -
subpath– 程序包中的文件路径
PURL 示例
以下是 PURL 可能呈现形式的示例。
pkg:<type>/<namespace>/<name>@<version>?<qualifiers>#<subpath>
通用 PURL
通用 PURL 用于表示不属于已建立程序包生态系统的软件程序包和组件,例如 npm、pypi 或 maven。它可以识别软件组件,并捕获可能与特定程序包管理系统不一致的元数据。通用 PURL 可用于各种软件项目,从已编译的二进制文件到平台,不一而足,例如 Apache 和 WordPress。可将其应用于各种使用案例,包括编译后的二进制文件、Web 平台和自定义软件发行版。
关键使用案例
-
支持编译后的二进制文件,对 Go 和 Rust 很有用
-
支持 Web 平台,例如 Apache 和 WordPress,其中程序包可能与传统程序包管理器无关联。
-
通过允许组织参考内部开发的软件或缺少正式程序包的系统,从而支持自定义旧版软件。
格式示例
以下是通用 PURL 格式的示例。
pkg:generic/<namespace>/<name>@<version>?<qualifiers>
通用 PURL 格式的其他示例
以下是通用 PURL 格式的其他示例。
编译后的 Go 二进制文件
以下表示使用 Go 编译的 inspector-sbomgen binary。
pkg:generic/inspector-sbomgen?go_toolchain=1.22.5
编译后的 Rust 二进制文件
以下表示使用 Rust 编译的 myrustapp 二进制文件。
pkg:generic/myrustapp?rust_toolchain=1.71.0
Apache 项目
以下指的是 Apache 命名空间下的一个 http 项目。
pkg:generic/apache/httpd@1.0.0
WordPress 软件
以下指的是核心 WordPress 软件。
pkg:generic/wordpress/core/wordpress@6.0.0
WordPress 主题
以下指的是自定义 WordPress 主题。
pkg:generic/wordpress/theme/mytheme@1.0.0
WordPress 插件
以下指的是自定义 WordPress 插件。
pkg:generic/wordpress/plugin/myplugin@1.0.0