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
成功标志:输出版权信息及版本号(如 Ruyi 0.41.0)。
若提示命令未找到,请检查
~/.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 使用包管理器演示
一、下载安装步骤:
-
ruyi 的下载安装
-
ruyi update:更新存储库软件包索引到本地
-
(按需) 切换为备用存储库:
ruyi config set repo.remote "https://mirror.iscas.ac.cn/git/ruyisdk/packages-index.git" -
(首次) 遥测设置:
ruyi telemetry consent/ruyi telemetry optout遥测开启/拒绝 (数据已匿名化,建议开启) -
(可选) ruyi news:查看新闻/变更 (可选)
-
ruyi update(建议每次使用前更新)
关注 ruyi changelog,必要时需要重新下载安装ruyi工具
-
ruyi list:查询存储库中的可用软件包
-
ruyi install:安装开发工具(工具链、模拟器)
-
ruyi extract:下载解压demo
-
(可选|推荐)ruyi venv:创建虚拟环境
-
编译
-
(可选) 模拟运行
-
安装 RuyiSDK
下载并安装 Ruyi 开发工具链
- (首次使用)遥测设置
# 同意遥测(推荐)
ruyi telemetry consent
# 或退出遥测
ruyi telemetry optout
遥测数据已匿名化处理,建议开启以帮助改进工具
- (按需)配置备用存储库
ruyi config set repo.remote "https://mirror.iscas.ac.cn/git/ruyisdk/packages-index.git"
如官方源访问较慢,可切换至国内镜像
- 更新软件包索引
ruyi update
将远程存储库的软件包索引同步到本地
建议每次使用前执行此命令
- (可选)查看最新动态
ruyi news
了解 RuyiSDK 的新闻和重要变更
- 浏览可用软件包
ruyi list
查询存储库中所有可用的开发工具和软件包
- 安装开发工具
ruyi install <package-name>
安装所需的工具链、模拟器等开发工具
- (推荐)创建虚拟环境
ruyi venv <environment-name>
创建独立的开发环境,避免依赖冲突
- 获取示例项目
ruyi extract <demo-name>
下载并解压演示项目和示例代码
- 编译项目
在配置好的环境中进行项目编译
- (可选)模拟运行
使用安装的模拟器测试和运行程序
维护建议
-
定期更新:每次使用前执行
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 包)。



