一个rpm包的艰难诞生

本文档记录了在CentOS 7.5上使用FPM工具创建RPM包的过程,以及遇到的依赖问题和解决方法。在尝试使用checkinstall失败后,作者转向了FPM。通过安装ruby、gem及相关依赖,然后编译spice-server并使用FPM打包。在安装测试中,由于缺少libspice-server.so的多个版本提供,导致qemu-kvm-ev依赖错误。通过分析rpm包的spec文件,作者找到了解决方案,添加了缺失的Provides标签,并重新打包解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


问题背景

环境:CentOS 7.5
本打算使用checkinstall来打包spice-server,奈何CentOS7.5下没法yum install checkinstall
遂去网上找rpm包安装,然后总是报error:

/xx/xx/libxxx.so is not a directory

怀疑是版本问题,然后去 git clone http://checkinstall.izto.org/checkinstall.git
手动装最新版本,结果还是报error:

Building file list… FAILED!
cat: /var/tmp/tmp.wHtVtWP0YZ/newfiles: No such file or directory

自带的log显示:

error: line 11: Unknown tag: Recommends:

查了半天也没解决,没办法了只能想别的办法
rpmbuild 和 dpkg-buildpackage的操作太麻烦,暂不考虑
查到个新玩意儿,FPM
看起来很好吃很好用的样子,哈哈


安装FPM

#安装rugy、gem:
yum -y install ruby rubygems ruby-devel
gem source -l
#添加国内aliyun的源:
gem sources -a http://mirrors.aliyun.com/rubygems/
#移除原生官方源:
gem sources --remove https://rubygems.org/
#更新源:
gem source -u
#安装fpm:
gem install fpm

编译spice-server并打包

获取、修改源码

wget https://www.spice-space.org/download/releases/spice-server/spice-0.14.1.tar.bz2

install deps && config && make,缺啥包你们自己补吧

yum install spice-protocol
yum install glib2 glib2-devel
yum install pixman pixman-devel
yum install celt051 celt051-devel
yum install openssl openssl-devel
yum install libjpeg-turbo libjpeg-turbo-devel
yum install opus opus-devel
yum install cyrus-sasl cyrus-sasl-devel lz4 lz4-devel usbredir*
./configure --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib64 --enable-gtk-doc-pdf=no --enable-gtk-doc-html=no --enable-celt051

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值