创建 Fuchsia 软件包代码库

ffx repository 命令可用于创建和管理 主机上的 Fuchsia 软件包代码库。

概念

当 Fuchsia 设备需要运行新软件或更新现有软件时, 设备从 Fuchsia 软件包服务器,这是一项服务 可在宿主机上启动(和停止)的容器。Fuchsia 软件包服务器 然后从 已配置 Fuchsia 软件包代码库 在主机上运行。

Fuchsia 软件包代码库会映射到主机上的目录。 处理来自 Fuchsia 设备的请求时,Fuchsia 软件包服务器会 此目录中的 Fuchsia 软件包,并且当它们被找到时,它会提供 软件包因此,该目录通常是 用来生成和存储与自己商家相关的 开发。

创建新的 Fuchsia 软件包代码库后,您需要注册 您的 Fuchsia 设备(或多台设备)中,这样允许该设备 从此软件包代码库中下载 Fuchsia 软件包。Fuchsia 设备可以 仅从其注册的 Fuchsia 软件包代码库中下载 Fuchsia 软件包。

最后,您可以将 Fuchsia 软件包服务器设置为从多个 Fuchsia 传送 多个软件包代码库,您可以将每个软件包专用于 存储库用于特定用途(例如,分离稳定的软件包) )。

创建软件包代码库

如需在主机上创建新的 Fuchsia 软件包代码库,请执行以下操作: 执行以下操作:

  1. 创建新仓库:

    ffx repository add-from-pm <PM_REPO_PATH> [-r <REPO_NAME>]
    

    替换以下内容:

    • PM_REPO_PATH:存储 Fuchsia 软件包的目录的路径。
    • REPO_NAME:新代码库的用户定义名称。
      • 如果未指定此标志,该命令会将新代码库命名为 devhost 默认情况。

    以下示例命令将创建一个名为 my-repo 的新代码库:

    $ ffx repository add-from-pm ~/my-fuchsia-packages -r my-repo
    

    创建新代码库后,此命令将静默退出,没有输出。

  2. 验证新代码库是否已创建:

    ffx repository list
    

    此命令会输出类似于以下内容的输出:

    $ ffx repository list
    +----------+------+--------------------------------------------------------+
    | NAME     | TYPE | EXTRA                                                  |
    +==========+======+========================================================+
    | my-repo* | pm   | /usr/alice/my-fuchsia-packages                         |
    +----------+------+--------------------------------------------------------+
    
  3. 将新代码库设置为默认代码库:

    ffx repository default set <REPO_NAME>
    

    REPO_NAME 替换为代码库的名称。

    以下示例命令将 my-repo 设置为默认代码库:

    $ ffx repository default set my-repo
    

    设置默认代码库后,此命令将静默退出,不会输出。

    对于 Fuchsia 设备,用于从此新软件包下载 Fuchsia 软件包的统计信息 您需要 将此代码库注册到设备

将软件包代码库注册到 Fuchsia 设备

使 Fuchsia 设备能够从 Fuchsia 软件包代码库下载软件包 执行以下操作:

  1. 启用 Fuchsia 设备以连接到新代码库:

    ffx target repository register [-r <REPO_NAME>] --alias fuchsia.com --alias chromium.org
    

    REPO_NAME 替换为您想要 Fuchsia 设备的代码库的名称 资源。如果未指定此标志,该命令会选择默认代码库。

    以下示例将您当前的 Fuchsia 设备设置为连接到默认值 fuchsia.com 的代码库 (my-repo):

    $ ffx target repository register --alias fuchsia.com --alias chromium.org
    

    注册代码库后,此命令会静默退出,没有输出。

  2. 验证新代码库已注册:

    ffx target repository list
    

    此命令会输出类似于以下内容的输出:

    $ ffx target repository list
    +---------+------------------------+
    | REPO    | TARGET                 |
    +=========+========================+
    | my-repo | fuchsia-f80f-f974-a123 |
    |         |   alias: chromium.org  |
    |         |   alias: fuchsia.com   |
    +---------+------------------------+
    

取消注册软件包代码库

如需从设备中取消注册 Fuchsia 软件包代码库,请执行以下操作: 运行以下命令:

ffx target repository deregister [-r <REPO_NAME>]

REPO_NAME 替换为已注册代码库的名称。如果此标记是 未指定代码库,则该命令会选择默认代码库。

以下示例命令演示了如何取消注册 my-repo 代码库:

$ ffx target repository deregister -r my-repo

取消注册代码库后,此命令将静默退出,没有输出。

移除软件包代码库

如需移除 Fuchsia 软件包代码库,请运行以下命令:

ffx repository remove <REPO_NAME>

REPO_NAME 替换为代码库的名称。

以下示例命令会移除 my-repo 代码库:

$ ffx repository remove my-repo

移除代码库后,此命令将静默退出,没有输出。

启动 Fuchsia 软件包服务器

为了能够从 Fuchsia 软件包代码库提供软件包 则 Fuchsia 软件包服务器必须正在运行 文件。

如需启动 Fuchsia 软件包服务器,请运行以下命令:

ffx repository server start

此命令会输出类似于以下内容的输出:

$ ffx repository server start
server is listening on [::]:8083

停止 Fuchsia 软件包服务器

如需停止 Fuchsia 软件包服务器,请运行以下命令:

ffx repository server stop

此命令会输出类似于以下内容的输出:

$ ffx repository server stop
server stopped