打包的问题笔记
在rpm打包的时候,遇到以下几个问题:
- make dist-gzip时,发生错误:
tar: xxx: file name is too long (max 99); not dumped
这是因为xxx文件的路径字符串长度超过了99个字符,从前面输出的tar命令中可以看到tar chof,其中o表示打包的格式是--format=V7
其中V7是一种很古老的打包格式,但是有路径长度限制为99个字符,可以参考:
https://man7.org/linux/man-pages/man1/tar.1.html
https://www.gnu.org/software/automake/manual/html_node/List-of-Automake-options.html
解决方式:
打包格式改为ustar或者pax格式,在AM_INIT_AUTOMAKE中加入tar-ustar或者tar-pax
- 执行rpmbuild命令的时候,报错:
illegal char '-' in version rpmbuild
这是因为rpmbuild的配置文件中指定VERSION的值的字符串中有-字符,不满足rpm的规范,不能包含- / ~ .. 这4类字符串,对于减号、斜杠、波浪号、两个连续点号:
https://stackoverflow.com/questions/35053495/what-characters-are-not-allowed-in-the-rpm-release
https://twiki.cern.ch/twiki/bin/view/Main/RPMAndDebVersioning
解决方式:
将VERSION中的这种字符串替换为满足规范的字符串
rpmbuild使用技巧
- 查看内部已定义的的变量:
rpmbuild --showrc | less - rpmbuild的帮助文档:
https://rpm-packaging-guide.github.io/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能