Skip to content

TIP

此文档适用于 1.14.x , 请使用 ll-cli --version 检查您的玲珑程序版本。


仓库

仓库是如意玲珑存储和分发应用程序及运行环境的远程服务。客户端从仓库查询软件包元数据,并在安装时拉取所需内容。安装如意玲珑后,系统会预置默认仓库;用户也可以同时配置来自官方的、社区的或者自托管的多个仓库。

仓库配置项

执行以下命令可以查看当前配置:

bash
ll-cli repo show

输出包含默认仓库以及每个仓库的名称、URL、别名和优先级。

配置项说明
名称(Name)远程仓库的名称,即执行 repo add 时提供的第一个参数。
URL仓库服务地址。修改 URL 不会改变仓库名称或别名。
别名(Alias)仓库在当前系统中的本地标识。未设置别名时使用仓库名称。removeupdateset-defaultset-priority--repo 均通过别名指定仓库。
优先级(Priority)多仓库解析时的顺序。数值越大,优先级越高;可以使用负数。搜索和安装的具体选择规则见多仓库使用逻辑
默认仓库(Default)配置中标记的默认仓库(现已弃用,推荐使用仓库优先级)。切换默认仓库时,该仓库的优先级也会提升到当前最高优先级之上。

别名在本机必须唯一。建议使用简短且含义明确的别名,例如 stabletestingcompany,后续操作均使用同一个别名。

管理仓库

仓库配置由 ll-cli repo 管理。以下示例使用 company 作为仓库名称,使用 corp 作为本地别名。

添加仓库

bash
ll-cli repo add company https://repo.example.com --alias corp

如果不需要单独设置别名,可以省略 --alias

bash
ll-cli repo add testing https://testing-repo.example.com

添加仓库只会把远程地址注册到本机,不会创建远程仓库,也不会自动将其设为默认仓库。

更新仓库地址

仓库服务迁移到新地址后,可以保留原有别名并更新 URL:

bash
ll-cli repo update corp https://new-repo.example.com

调整仓库优先级

bash
ll-cli repo set-priority corp 200
ll-cli repo set-priority testing 100

优先级数值只用于比较大小,不要求连续。为了方便后续插入新的优先级,建议预留一定间隔。

设置默认仓库(已弃用)

bash
ll-cli repo set-default corp

该操作同时将 corp 的优先级提高到当前所有仓库之上。因此,后续未使用 --repo 的安装操作会优先从该仓库查找。

删除仓库

bash
ll-cli repo remove corp

删除操作只移除本机的仓库配置,不会删除远程仓库中的内容。系统必须至少保留一个仓库,因此不能删除唯一的仓库。如果删除的是默认仓库,客户端会从剩余仓库中选择优先级最高的仓库作为新的默认仓库。

多仓库使用逻辑

配置多个仓库后,搜索与安装采用不同的处理方式。

搜索

未指定仓库时,ll-cli search 会搜索所有已配置仓库,结果中的“仓库”列用于标识软件包来源:

bash
ll-cli search org.deepin.calculator

只搜索指定仓库时,使用仓库别名:

bash
ll-cli search org.deepin.calculator --repo corp

安装

未指定仓库时,客户端按优先级从高到低对仓库分组:

  1. 查询最高优先级的一组仓库。
  2. 如果该组存在匹配的软件包,则在该组的候选项中选择最新版本,不再查询更低优先级的仓库。
  3. 如果该组没有匹配项,则继续查询下一优先级组。

因此,仓库优先级高于跨仓库的版本新旧关系。例如,优先级为 200 的仓库中存在目标应用时,即使优先级为 100 的仓库提供了更新版本,未指定仓库的安装操作仍会选择优先级为 200 的仓库。

若要绕过优先级并从确定的仓库安装,使用 --repo

bash
ll-cli install org.deepin.calculator --repo testing

当多个仓库具有相同优先级时,它们属于同一优先级组。客户端会查询这一组中的所有仓库,并从匹配项中选择最新版本。需要完全可预测的软件包来源时,应显式指定 --repo,不要只依赖相同优先级下的自动选择。

推荐配置方式

  • 稳定仓库和测试仓库并存时,将稳定仓库设为默认仓库并赋予更高优先级;临时测试软件包时使用 --repo testing
  • 企业仓库需要覆盖公共仓库中的同名应用时,为企业仓库设置更高优先级。
  • 只想扩大搜索范围、不希望改变默认安装来源时,添加仓库后保持其优先级低于默认仓库。
  • 修改配置后再次执行 ll-cli repo show,确认默认仓库、别名和优先级符合预期。

仓库命令参考见 ll-cli repo