打包的问题笔记

在rpm打包的时候,遇到以下几个问题:

  1. 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
  1. 执行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使用技巧

  1. 查看内部已定义的的变量:
    rpmbuild --showrc | less
  2. rpmbuild的帮助文档:
    https://rpm-packaging-guide.github.io/
posted @   bug批发零售  阅读(124)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示