2.5 KiB
2.5 KiB
openEuler 开源任务赛题 - 使用 Rust 语言实现 rpm 软件包管理工具
rust-dnf 描述:dnf 是 rpm 的软件包管理工具,是 openEuler 操作系统的包管理工具。 dnf 包管理比 yum 提升了开发者体验、内存占用、依赖分析等功能。dnf 包是使用 C 语言开发,代码可读性稍差。业界也有 tndf,microdnf 等项目,希望构建以来更少,性能更强的包管理工具。 本项目主要实现的功能和要求:
- 使用 Rust 语言实现 dnf 包管理工具的基本功能,包括
- 不实用 FFI 模式,避免引入 C 的 Library 实现的基本功能:
| 功能 | 描述 |
|---|---|
| repolist | 显示系统中可用的 DNF 软件库 |
| list | 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 |
| search <包名> | 搜索软件库中的软件包 |
| provides <路径> | 查找某一文件的提供者 |
| info <包名> | 查看软件包详情 |
| install <包名> | 安装软件包 |
| update <包名> | 升级软件包 |
| check-update | 检查系统软件包的更新 |
| update | 升级所有系统软件包 |
| remove | 删除软件包 |
| autoremove | 删除无用孤立的软件包 |
| clean all | 删除缓存的无用软件包 |
| help <命令名> | 获取有关某条命令的使用帮助 |
| help | 查看所有的dnf命令及其用途 |
| history | 查看dnf命令的执行历史 |
| grouplist | 查看所有的软件包组 |
| groupinstall <软件包组名称> | 安装一个软件包组 |
| groupupdate <软件包组名称> | 升级一个软件包组中的软件包 |
| groupremove <软件包组名称> | 删除一个软件包组 |
| distro-sync | 更新软件包到最新的稳定发行版 |
| reinstall <包名> | 重新安装特定软件包 |
| downgrade <包名> | 回滚某个特定软件的版本 |
项目目标: 使用 Rust 语言实现以上 dnf 的 6 个以上功能
参考资料: [1] https://github.com/orgs/rpm-software-management/repositories [2] https://github.com/rpm-software-management/microdnf [3] https://github.com/rpm-software-management/dnf [4] https://github.com/vmware/tdnf
导师:马全一 maquanyi@openeuler.sh
代码提交地址:https://gitee.com/openeuler/opensource-intern 仓库下 rust-dnf 目录,每位参赛的学生建立自己的目录提交代码,目录内包含 .gitignore 文件。
代码提交前需要签署 CLA ,签署地址:https://sourl.cn/SiH39B 签署指引 企业签署 CLA ,正式加入 openEuler 社区