目录结构规范

更新时间:
2025-11-26

目录结构规范

为了确保软件包的规范性、可移植性,以及在不同环境中的顺利部署、安装、升级和卸载,软件包应遵循一定的目录结构规范。推荐参考 创建软件包 来自动生成符合规范的目录结构,并将待发布的文件放置在根目录下。此外,您也可以手动创建一个以软件包名称命名的文件夹,该文件夹应包含以下内容:

  • 包含待发布的软件包文件集合,可以是具体的文件或文件夹。如果涉及多平台和多架构,建议将具体的包文件放置在以平台和架构命名的子文件夹中,或在文件名中包含平台和架构信息。
  • 必须包含一个名称为 armory.json 的配置文件,用于发布软件包,并配置待发布软件包的详细信息,如软件包名称、版本、描述、检索标签、包资源路径等。
  • 必须包含 README 文件,用于详细描述软件包的编译、安装、配置、使用指导和更新日志等对用户有用的必要信息,README 文件的后缀必须为“.md”或“.txt”,且必须将其放置在软件包根目录下。
  • 如果 README 文件中有引用图片资源,建议将图片放置在软件包根目录的“assets/image”路径下。
  • 如果软件包有安装卸载脚本,则必须放置在“.arm”文件夹下,并按照以下规范命名。

下面以 armory-cli 软件包为例介绍软件包的目录结构及相关要求:

|-- armory-cli
    |-- .amr 
            |-- preinst.sh     # 安装前执行脚本, 如环境准备
            |-- postinst.sh    # 安装后执行脚本
            |-- prerm.sh       # 卸载前执行脚本, 如条件校验, 是否造成影响
            |-- postrm.sh      # 卸载后执行脚本, 如一些额外的清理工作  
    |-- assets
        |-- image
            |-- macos.png
            |-- windows.png
    |-- armory.json
    |-- README.md
    |-- windows
        |-- x86-64
            |-- armory-win-x64.exe
        |-- arm64
            |-- armory-win-arm64.exe                      
    |-- linux
        |-- x86-64
            |-- armory-linux-x64
    |-- macos
        |-- arm64      
            |-- armory-macos
|-- armory-cli
    |-- .amr
        |-- preinst.sh     # 安装前执行脚本, 如环境准备
        |-- postinst.sh    # 安装后执行脚本,如注册服务、加载配置
        |-- prerm.sh       # 卸载前执行脚本, 如条件校验、 影响评估
        |-- postrm.sh      # 卸载后执行脚本, 如清理缓存、删除残留
    |-- assets
        |-- image
            |-- macos.png
            |-- windows.png
    |-- armory.json
    |-- README.md
    |-- armory-win-x64.zip
    |-- armory-win-arm64.zip
    |-- armory-linux-x64.tar.gz
    |-- armory-macos-arm64.tar.gz
表 1 软件包目录结构说明
文件 / 目录是否必配说明
armory-cli软件包根目录,对应软件包名称,用于存放所有待发布的资源文件。名称支持自定义,但必须遵循 包名规范
.amr 软件包安装与卸载脚本目录。若需定义安装或卸载逻辑,建议配置此目录,并按以下固定命名规范放置脚本:
  • preinst.sh:安装前执行脚本,如环境准备
  • postinst.sh:安装后执行脚本,如注册服务、加载配置
  • prerm.sh:卸载前执行脚本,如条件校验、影响评估
  • postrm.sh:卸载后执行脚本,如清理缓存、删除残留

注意: 若定义了 .amr 目录及相关脚本,则该目录应与 armory.json 位于同级目录

assets/image用于存放 README 文件中引用的图片资源。若有图片资源,建议放置于此;若无,可省略或留空
armory.json发布软件包的核心配置文件,用于定义软件包名称、版本、描述、检索标签及资源路径等。文件名固定为 armory.json,不支持自定义。详细说明请参见 armory.json 规范
README.md 软件包说明文件,用于描述软件的功能、使用方法、安装步骤及更新日志等。要求如下:
  • 文件名必须为 README.mdREADME.txt,放置于软件包根目录
  • 无需在 armory.json 中配置
  • 若引用图片资源,建议放置于 assets/image 目录,便于后续资源维护和离线迁移
windows/x86-64/armory-win-x64.exe
windows/arm64/armory-win-arm64.exe
linux/x86-64/armory-linux-x64
macos/arm64/armory-macos
待发布的软件包文件集合。可包含多个文件或目录,支持以 .tar.gz.tgz 等格式打包发布,也可以直接发布零散的文件或文件夹

注意: 若需在远程 SylixOS 系统中安装软件包,则所有包文件必须位于其默认内置目录下(如 /etc/lib/user 等)。详见 ROOT 文件系统说明SylixOS 安装包配置示例