登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
8
Star
0
Fork
34
src-anolis-os
/
rpm
代码
Issues
0
Pull Requests
3
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
32
support and switch to sqlite backend rpmdb
已合并
forrest_ly:a8
src-anolis-os:a8
forrest_ly
创建于 2023-07-14 15:50
克隆/下载
HTTPS
SSH
复制
下载 Email Patch
下载 Diff 文件
Anolis OS 8 rpmdb 使用的是 berkeley-db 5.x,已经超过 10 年没有进行过版本升级,原因是因为 berkeley-db 被 oracle 收购后修改了 license,5.x 之后的版本用于商业用途需要购买商业授权,所以 rpm 上游社区拒绝更新 rpmdb 版本。开启了新 rpmdb 的选型,历史上支持过 lmdb,后被放弃,目前 rpm 新版本支持 ndb 和 sqlite db,fedora 33 / rhel 9 开始默认使用 sqlite db。目前 使用的 berkeley-db 5.x 版本非常不可靠,没有事务性原子保证和一致性校验,在 db 操作期间进程如果被 kill 很容易出现 rpmdb 损坏和锁残留,导致 rpm 命令不可用。 https://fedoraproject.org/wiki/Changes/Sqlite_Rpmdb https://rpm.org/user_doc/db_recovery.html 问题复现方法,在 alinux 3 上 root 账号执行如下测试,基本上毕现 for i in {0..10}; do rpm -qa --queryformat '%{NAME}#%{EPOCH}#%{VERSION}#%{RELEASE}#%{ARCH}#%{BUILDHOST}#%{BUILDTIME}#%{INSTALLTIME}#%{SIZE}#%{LICENSE}|' >/dev/null 2>&1 & pid=$! sleep 0.1 kill -9 $pid 2>/dev/null done rpmdb 默认从 bdb 切换到 sqlite db 方案简要描述: 1、从upstream回合 sqlite 支持补丁; 2、升级前自动 exportdb 并保存备份; 3、升级后自动 rebuilddb 从 bdb 切换到 sqlite。 自验证 rpm 升级,直接yum安装,容器环境安装正常。 升级后 rpm 相关命令正常。
此 Pull Request 需要通过一些审核项
类型
指派人员
状态
审查
Meredith
已审查通过
已完成
(1/0人)
怎样手动合并此 Pull Request
git checkout a8
git pull https://gitee.com/forrest_ly/rpm.git a8
git push origin a8
评论
8
提交
1
文件
2
检查
代码问题
0
批量操作
展开设置
折叠设置
审查
Code Owner
审查人员
gongwen2021
gongwen2021
happy_orange
happy_orange
geliwei
geliwei
casparant
casparant
ZhouWeitao
yunqi-zwt
jiangbo.jacob
jiangbojacob
forrest_ly
forrest_ly
Meredith
yueeranna
未设置
最少人数
0
测试
gongwen2021
gongwen2021
happy_orange
happy_orange
geliwei
geliwei
casparant
casparant
ZhouWeitao
yunqi-zwt
jiangbo.jacob
jiangbojacob
forrest_ly
forrest_ly
Meredith
yueeranna
未设置
最少人数
0
优先级
不指定
严重
主要
次要
不重要
标签
anolis_cla_pass
anolis_test_fail
关联 Issue
未关联
Pull Request 合并后将关闭上述关联 Issue
里程碑
未关联里程碑
参与者
(3)
1
https://gitee.com/src-anolis-os/rpm.git
git@gitee.com:src-anolis-os/rpm.git
src-anolis-os
rpm
rpm
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册