RuyiSDK包管理器

RuyiSDK

1 介绍

RuyiSDK是由PLCT Lab发起的开源项目,旨在为RISC-V开发者提供便捷、全面的开发环境。它提供最新的硬件信息和软件支持,例如受支持设备的硬件兼容性详细信息。在软件方面,它提供系统映像(例如 RevyOS、工具链、包管理器等。

最终目标:为RISC-V开发人员创建强大且用户友好的开发环境,推动RISC-V成为主流架构,建立和维护繁荣的开发者协作社区,最终为全球RISC-V开发者提供开发便利。

RuyiSDK核心组件:

  • Ruyi包管理器

  • Ruyi IDE

  • 社区

2 安装RuyiSDK 包管理器

下载链接:https://fast-mirror.isrc.ac.cn/ruyisdk/ruyi/releases/

2.1 安装方式

2.1.1 方式一:预编译二进制安装

推荐新手,环境要求最低

支持最全,环境要求最低

RuyiSDK包管理器工具为Linux系统预编译了三种架构的二进制:

amd64 (即x86_64)

arm64

riscv64

下载地址

GitHub Releases:https://github.com/ruyisdk/ruyi/releases/

ISCAS镜像源:https://mirror.iscas.ac.cn/ruyisdk/ruyi/releases/

安装步骤

 # 检查系统架构
 uname -m 
 ​
 #根据架构选择下载不同架构
 wget https://mirror.iscas.ac.cn/ruyisdk/ruyi/tags/0.41.0/ruyi-0.41.0.riscv64   
 wget https://mirror.iscas.ac.cn/ruyisdk/ruyi/tags/0.41.0/ruyi-0.41.0.amd64
 wget https://mirror.iscas.ac.cn/ruyisdk/ruyi/tags/0.41.0/ruyi-0.41.0.arm64
 ​
 # 添加执行权限
 chmod +x ./ruyi-0.41.0.riscv64
 chmod +x ./ruyi-0.41.0.amd64
 chmod +x ./ruyi-0.41.0.arm64
 ​
 # 复制到系统路径
 sudo cp -v ./ruyi-0.41.0.riscv64 /usr/local/bin/ruyi
 sudo cp -v ./ruyi-0.41.0.amd64 /usr/local/bin/ruyi
 sudo cp -v ./ruyi-0.41.0.arm64 /usr/local/bin/ruyi
 ​
 #验证安装
 ruyi version

下面我将用Ubuntu进行演示,amd64(即x86_64)为例子

卸载方法

 # 删除下载的原始文件,以amd64为例子
 ​
 # 删除下载的原始文件
 rm ~/Desktop/ruyi-0.41.0.amd64
 ​
 # 删除已安装的二进制文件
 sudo rm /usr/local/bin/ruyi
 ​
 # 验证是否完全删除
 ls /usr/local/bin/ruyi
 ls ~/Desktop/ruyi-0.41.0.amd64
 ruyi version  # 应显示"未找到命令"

2.1.2 方式二:系统包管理器安装

用apt或者yum安装,需要使用的 Linux 发行版官方已经收录ruyi软件包

Arch Linux 用户

 # 从AUR安装(以yay为例)
 yay -S ruyi
 ​
 # 从Arch Linux CN软件源安装
 # 添加ISCAS开源镜像站配置:
 [archlinuxcn]
 Server = https://mirror.iscas.ac.cn/archlinuxcn/$arch
 ​
 # 使用pacman安装
 sudo pacman -Sy
 sudo pacman -S ruyi

Gentoo Linux 用户

通过官方提供的 ruyisdk-overlay 安装并配置 Ruyi 包管理器(ruyi)。

 # 安装eselect-repository与Git客户端
 sudo emerge --ask app-eselect/eselect-repository dev-vcs/git
 ​
 # 使用eselect-repository添加ruyisdk-overlay
 sudo eselect repository add ruyisdk git https://github.com/ruyisdk/ruyisdk-overlay.git
 ​
 # 同步仓库
 sudo emaint sync -r ruyisdk

2.1.3 Python 的 pip 工具安装

使用的是x86_64 或 ARM64 架构的 Linux 系统,可以通过pip安装.

RISC-V64 架构的 Linux 系统,建议用预编译的二进制安装方法.

因为RISC-V 作为一种相对较新且快速发展的指令集架构,其软件生态(特别是预编译包仓库)的完善度暂时还无法与已经发展了几十年的 x86_64 和 ARM64 相比。

(1)全局安装 (推荐使用 pipx)

pipx提供 Python CLI 工具的隔离环境安装,并自动将可执行文件加入 PATH

 pipx install ruyi

安装后,ruyi命令将位于 ~/.local/bin目录(默认加入 PATH)。

验证安装

 ruyi version

:white_check_mark: 成功标志:输出版权信息及版本号(如 Ruyi 0.41.0)。

:light_bulb: 若提示命令未找到,请检查 ~/.local/bin是否在 PATH中:

 echo $PATH | grep ~/.local/bin

如果你系统尚未安装 pipx,可以通过以下命令安装它

sudo apt update

sudo apt install pipx

确保 pipx安装的二进制文件在您的 PATH 环境变量中

pipx ensurepath

完成后,您可能需要重新启动终端会话或执行 source ~/.bashrc(或 source ~/.zshrc,如果您使用 Zsh)以使更改生效。

之后,您就可以使用 pipx install ruyi命令来安装 RuyiSDK 了。

演示:

删除:pipx uninstall ruyi

(2)虚拟环境安装

若需在特定虚拟环境(如 /path/to/venv,下面要替换为您的实际环境位置哦)中安装:

 # 使用虚拟环境内的 pip 安装
 /path/to/venv/bin/pip install ruyi

此时 ruyi仅存在于虚拟环境的 bin目录,需通过以下方式运行:

方式一:直接调用绝对路径

 /path/to/venv/bin/ruyi version

方式二:激活环境后运行

 source /path/to/venv/bin/activate  # 激活环境
 ruyi version                       # 直接运行命令
 deactivate                         # 退出环境

成功标志:输出版权信息及版本号。

演示

 #在桌面创建一个名为 ruyi-venv 的虚拟环境
 python3 -m venv ~/Desktop/ruyi-venv
 ​
 使用实际路径(替换为您创建的虚拟环境路径)
 ~/Desktop/ruyi-venv/bin/pip install ruyi
 ​
 # 使用完整路径运行
 ~/Desktop/ruyi-venv/bin/ruyi version
 # 或者先激活环境再运行
 source ~/Desktop/ruyi-venv/bin/activate
 ruyi version
 deactivate  # 完成后退出虚拟环境
 ​
 # 删除整个虚拟环境目录
 rm -rf ~/Desktop/ruyi-venv

2.2 使用包管理器演示

一、下载安装步骤:

  1. ruyi 的下载安装

  2. ruyi update:更新存储库软件包索引到本地

  3. (按需) 切换为备用存储库ruyi config set repo.remote "https://mirror.iscas.ac.cn/git/ruyisdk/packages-index.git"

  4. (首次) 遥测设置ruyi telemetry consent/ ruyi telemetry optout遥测开启/拒绝 (数据已匿名化,建议开启)

  5. (可选) ruyi news:查看新闻/变更 (可选)

  6. ruyi update(建议每次使用前更新)

    关注 ruyi changelog,必要时需要重新下载安装ruyi工具

  7. ruyi list:查询存储库中的可用软件包

  8. ruyi install:安装开发工具(工具链、模拟器)

  9. ruyi extract:下载解压demo

  10. (可选|推荐)ruyi venv:创建虚拟环境

  11. 编译

  12. (可选) 模拟运行

  13. 安装 RuyiSDK

下载并安装 Ruyi 开发工具链

  1. (首次使用)遥测设置
 # 同意遥测(推荐)
 ruyi telemetry consent
 ​
 # 或退出遥测
 ruyi telemetry optout

遥测数据已匿名化处理,建议开启以帮助改进工具

  1. (按需)配置备用存储库
 ruyi config set repo.remote "https://mirror.iscas.ac.cn/git/ruyisdk/packages-index.git"

如官方源访问较慢,可切换至国内镜像

  1. 更新软件包索引
 ruyi update

将远程存储库的软件包索引同步到本地

建议每次使用前执行此命令

  1. (可选)查看最新动态
 ruyi news

了解 RuyiSDK 的新闻和重要变更

  1. 浏览可用软件包
 ruyi list

查询存储库中所有可用的开发工具和软件包

  1. 安装开发工具
 ruyi install <package-name>

安装所需的工具链、模拟器等开发工具

  1. (推荐)创建虚拟环境
 ruyi venv <environment-name>

创建独立的开发环境,避免依赖冲突

  1. 获取示例项目
 ruyi extract <demo-name>

下载并解压演示项目和示例代码

  1. 编译项目
 在配置好的环境中进行项目编译
  1. (可选)模拟运行
  使用安装的模拟器测试和运行程序

维护建议

  • 定期更新:每次使用前执行 ruyi update 确保获取最新软件包

  • 关注变更:定期检查 ruyi changelog,重大更新时可能需要重新安装 Ruyi

  • 环境隔离:为不同项目创建独立的虚拟环境

2.2.1 切换为国内镜像源

ruyi update 执行出错

ruyi update执行出错的主要原因是存储库位于 GitHub,而 GitHub 在国内网络环境下访问不稳定。

检查当前存储库配置 https://github.com/ruyisdk/packages-index.git

 ruyi config get repo.remote

切换为国内镜像源

 ruyi config set repo.remote "https://mirror.iscas.ac.cn/git/ruyisdk/packages-index.git"

2.3 Ruyi 命令使用方法

用法

 ruyi [-h] [-V] [--porcelain] {admin,list,extract,install,i,device,venv,news,update,telemetry,self,config,version} ...

选项:

  • -h, --help 显示此帮助信息并退出

  • -V, --version 显示版本信息

  • --porcelain 以机器友好的格式输出(如果适用)

子命令:

{admin,list,extract,install,i,device,venv,news,update,telemetry,self,config,version}

  • admin (非普通用户使用,忽略即可) 管理 Ruyi 仓库的子命令

  • list 列出已配置仓库中的可用包

  • extract 下载包并解压到当前目录

  • install (i) 从已配置仓库安装包

  • device 设备管理

  • venv 为选定的工具链和配置生成虚拟环境

  • news 列出和阅读已配置仓库的新闻项

  • update 更新 RuyiSDK 仓库和包

  • telemetry 管理您的遥测偏好设置

  • self 管理此 Ruyi 安装

  • config 管理 Ruyi 的配置选项

  • version 显示版本信息

2.3.1 Ruyi子命令使用方法

用法:

 ruyi [子命令] -h

输出(venv为例):

 zxh@zxh-virtual-machine:~/Desktop$ ruyi venv -h
 usage: ruyi venv [-h] [--name NAME] [--toolchain TOOLCHAIN]
                  [--emulator EMULATOR] [--with-sysroot] [--without-sysroot]
                  [--sysroot-from SYSROOT_FROM]
                  [--extra-commands-from EXTRA_COMMANDS_FROM]
                  profile dest
 ​
 positional arguments:
   profile               Profile to use for the environment
   dest                  Path to the new virtual environment
 ​
 options:
   -h, --help            show this help message and exit
   --name NAME, -n NAME  Override the venv's name
   --toolchain TOOLCHAIN, -t TOOLCHAIN
                         Specifier(s) (atoms) of the toolchain package(s) to
                         use
   --emulator EMULATOR, -e EMULATOR
                         Specifier (atom) of the emulator package to use
   --with-sysroot        Provision a fresh sysroot inside the new virtual
                         environment (default)
   --without-sysroot     Do not include a sysroot inside the new virtual
                         environment
   --sysroot-from SYSROOT_FROM
                         Specifier (atom) of the sysroot package to use, in
                         favor of the toolchain-included one if applicable
   --extra-commands-from EXTRA_COMMANDS_FROM
                         Specifier(s) (atoms) of extra package(s) to add
                         commands to the new virtual environment

详细子命令使用

以下是 ruyi命令行工具各子命令的详细用法说明,基于您提供的帮助信息整理而成:


1. admin

功能:管理员专用工具(用于包清单校验、格式化等)

子命令

  • run-plugin-cmd:运行插件定义的命令(需插件支持)。

  • checksum:为清单文件中的分发文件生成校验和(用于包管理)。

  • format-manifest:将包清单文件格式化为标准 TOML 格式。

    示例

 ruyi admin checksum package.toml  # 生成校验和
 ruyi admin format-manifest manifest.txt  # 格式化清单文件

2. list

功能:列出可用包或配置文件

选项

  • --verbose/-v:显示包的详细信息(如版本、描述)。

  • --is-installed [y/n]:过滤已安装(y)或未安装(n)的包。

  • --category-contains STR:按类别名称包含字符串过滤包。

  • --category-is STR:按精确类别名称过滤包。

  • --name-contains STR:按包名包含字符串过滤包。

    子命令

  • profiles:列出所有可用配置文件(如开发环境模板)。

    示例

 ruyi list --name-contains "llvm"  # 列出名称含 "llvm" 的包
 ruyi list profiles  # 列出所有配置文件

3. extract

功能:解压包文件(不安装)

参数

  • atom:包标识符(如 toolchain-llvm),可指定多个。

    选项

  • --host HOST:覆盖主机架构(默认自动检测)。

    示例

 ruyi extract toolchain-llvm  # 解压 LLVM 工具链

4. install/ ruyi i

功能:安装包

参数

  • atom:包标识符(如 sysroot-ubuntu),可指定多个。

    选项

  • -f/--fetch-only:仅下载文件,不安装。

  • --host HOST:覆盖主机架构。

  • --reinstall:强制重新安装已存在的包。

    示例

 ruyi install emulator-qemu --reinstall  # 强制重装 QEMU 模拟器

5. device

功能:设备管理(初始化或刷写)

子命令

  • provision(或 flash):交互式初始化设备(如开发板)。

    示例

 ruyi device provision  # 启动设备初始化向导

6. venv

功能:创建定制化开发环境(虚拟环境)

参数

  • profile:环境配置文件(由 ruyi list profiles获取)。

  • dest:虚拟环境目标路径。

    选项

  • --name NAME:自定义环境名称。

  • --toolchain TOOLCHAIN:指定工具链包(如 gcc)。

  • --emulator EMULATOR:指定模拟器包(如 qemu)。

  • --with-sysroot:包含系统根目录(默认启用)。

  • --without-sysroot:不包含系统根目录。

  • --sysroot-from PKG:使用指定包的 sysroot。

  • --extra-commands-from PKG:添加额外命令包。

    示例

 ruyi venv --toolchain llvm --emulator qemu riscv-dev /path/venv

7. news

功能:查看项目新闻

子命令

  • list:列出新闻条目标题。

  • read:阅读新闻内容(可指定 ID)。

    示例

 ruyi news list  # 列出所有新闻
 ruyi news read 3  # 阅读 ID 为 3 的新闻

8. update

功能:更新 Ruyi 自身或包索引

示例

 ruyi update  # 检查更新

9. telemetry

功能:管理遥测数据收集

子命令

  • consent(或 on):启用数据上传。

  • local:仅本地收集数据(不上传)。

  • optout(或 off):禁用遥测。

  • status:查看当前状态。

  • upload:立即上传数据。

    示例

 ruyi telemetry status  # 检查遥测状态

10. self

功能:管理 Ruyi 自身

子命令

  • clean:清理缓存/临时文件。

  • uninstall:卸载 Ruyi。

    示例

 ruyi self clean  # 清理磁盘空间

11. config

功能:管理配置文件

子命令

  • get KEY:查询配置值。

  • set KEY VALUE:设置配置项。

  • unset KEY:删除配置项。

  • remove-section SECTION:删除整个配置节。

    示例

 ruyi config set cache_dir /new/cache  # 修改缓存路径

12. version

功能:显示 Ruyi 版本信息

示例

 ruyi version  # 输出版本号

使用提示

  • 包标识符(Atom):格式通常为 类别-名称(如 toolchain-llvm),可通过 ruyi list查看。

  • 配置文件(Profile):预定义的环境模板(如 riscv-dev),通过 ruyi list profiles获取列表。

  • 覆盖主机架构--host选项仅在跨平台安装时使用(如 x86 主机安装 ARM 包)。

5 个赞

整理得很详细,期待后续更多分享~

1 个赞

很细致,感谢关注和分享

1 个赞

感谢整理,互联网云笔记 :+1: