管理 Ruyi 软件包
刷新本地软件包缓存
获取远程软件源的内容并刷新本地软件包缓存,默认使用托管在 GitHub 上的镜像:
软件包缓存将存放在用户目录中,通常为 ~/.cache/ruyi/packages-index/
;在 XDG_CACHE_HOME
环境变量被设置时,目录为 $XDG_CACHE_HOME/ruyi/packages-index/
。
ruyi update
拉取失败
由于目前软件包索引信息托管于 GitHub 仓库,若出现仓库访问不稳定的情况,可以使用 ruyi config
子命令来配置使用备用仓库。
阅读新闻
在上 一节运行 ruyi update
刷新本地软件源时,您大概已经看到 Ruyi 包管理器列出了未读新闻(news item(s))。从这里您可以及时了解到 ruyi 软件包的更新信息或发出的其他重要通知。
运行 ruyi news list
同样可以调出这个页面,不同的是它将显示所有新闻,而未读新闻在被支持的终端上会以绿色高亮显示。
您可以使用下面的命令来浏览、阅读新闻和标记已读:
Ruyi 通过在 ~/.local/state/ruyi/news.read.txt
中存储新闻标题来标记已读新闻,在 XDG_STATE_HOME
被配置时文件路径为 $XDG_STATE_HOME/ruyi/news.read.txt
。
列出软件包
Ruyi 软件包大致分为几个分区:
- toolchain 工具链
- source 源码包
- emulator 模拟器
- board-image 系统镜像
- analyzer 分析工具
- extra 其他
软件包的版本号严格遵循 Semver 的规范,这使它们和上游版本可能有一些差别。
软件包分为正式发布的软件包和预发布的软件包(prerelease),预发布的软件包的释出会比上游正式发布该版本要早,但是修复了最新已发布版本的 bug。
一些发布时间较早的 Ruyi 软件包还引入了 slug 来标记版本,这是一个被废弃的特性,会在未来彻底删除。
使用 ruyi list
命令列出所有可用的软件包,注意即使某个软件包/版本并不支持当前架构的系统,它依然会被列出。
这是在 x86_64
机器上的一个示例,实际的列表会更长:
list
命令还提供了 --verbose
或 -v
参数来输出更详细的信息,这将会打印软件源中几乎所有信息。由于全部输出将会很长,建议给 --name-contains
传入非空的查找字段,或添加其他限定参数,或将完整输出重定向到文件或 less
等工具。
类似于 toolchain/llvm-plct
的行表示了一个软件包名,这在使用 install
命令安装时需要指定该名称。大多数情况下仅仅指定 /
后的名称也是可以的,在该示例中就是 llvm-plct
。
在软件包名后跟随了一个版本号列表。版本号可以用于指定安装某个软件包的某个版本或符合给出表达式的版本。版本号后面括号中的内容则标记了该版本的一些信息。
latest
用于标记某个软件包的最新版本,这也是 install
命令默认安装的版本。
prerelease
预发布的版本。这意味着该软件包先于上游发布了这一版本,新版本往往修复了旧版本的 bug,特别当一个预发布版本被认为有必要时。
默认情况下 Ruyi 包管理器会忽略预发布版本。您可以配置 Ruyi 包管理器安装预发布版本,但是需要自行承担其中隐含的风险。