赞
踩
Linux系统的软件一般有.deb和.rpm格式的安装包,即Linux系统用的是"Red-Hat Package Manager"红帽软件包管理器,就可以打包.rpm的安装包,下面说的就是.rpm的制作。如需了解.deb包制作 ,点击"Debian Packager"软件包管理器。
制作前,系统环境中需要安装有rpm-build、rpmdevtools,可用下面命令安装:
yum install rpm-build
yum install rpmdevtools
这里制作一个Qt开发软件的rpm包。该功能是开机启动显示当前时间的小程序。(底部有程序代码)
[root@localhost ~]# rpmdev-setuptree
[root@localhost ~]# ls ~/rpmbuild/
BUILD RPMS SOURCES SPECS SRPMS
[root@localhost ~]#
[root@localhost 桌面]# tar -zcvf show-timer-1.0.0.tar.gz show-timer-1.0.0/
show-timer-1.0.0/
show-timer-1.0.0/showTime.pro.user
show-timer-1.0.0/showTime.desktop
show-timer-1.0.0/main.cpp
show-timer-1.0.0/widget.ui
show-timer-1.0.0/widget.cpp
show-timer-1.0.0/widget.h
show-timer-1.0.0/showTime.pro
show-timer-1.0.0/.qmake.stash
[root@localhost 桌面]# mv show-timer-1.0.0.tar.gz ~/rpmbuild/SOURCES/
[root@localhost 桌面]# ls ~/rpmbuild/SOURCES/
show-timer-1.0.0.tar.gz
[root@localhost 桌面]#
[root@localhost rpmbuild]# cd ~/rpmbuild/
[root@localhost rpmbuild]# rpmdev-newspec -o SPECS/show-timer.spec
SPECS/show-timer.spec created; type minimal, rpm version >= 4.15.
[root@localhost rpmbuild]# ls SPECS/
show-timer.spec
[root@localhost rpmbuild]#
[root@localhost rpmbuild]# vim ~/rpmbuild/SPECS/show-timer.spec [root@localhost rpmbuild]# cat ~/rpmbuild/SPECS/show-timer.spec %global debug_package %{nil} #软件包名 Name: show-timer #版本号 Version: 1.0.0 #软件包的发行号 Release: 1%{?dist} #概述 Summary: show-timer #软件授权方式,通常是GPL(自由软件)或GPLv2,BSD License: LGPLv2+ and GPLv2+ #源码压缩包名字 Source0: show-timer-1.0.0.tar.gz #构建编译依赖,如果你写多了,本来没用上但是你写了,那你就得装,不装就编译不过; #如果写少了,当前编译环境上有还是可以编过,没有就编译不过。所以依赖最好还是写清楚。 BuildRequires: qt5-qtbase-devel,qt5-qtx11extras-devel,qt5-qttools-devel,qt5-qtsvg-devel,lightdm-qt5-devel #描述 %description show-timer #安装前执行 %prep %autosetup #编译软件包所要执行的命令, 这一节一般由多个make命令组成。 %build qmake-qt5 make #定义在安装软件包时将执行命令,类似于make install命令。用于定义在软件安装完成后的所需执行的配置工作。 %install mkdir -p %{buildroot}/usr/bin/ install -m 755 showTime %{buildroot}/usr/bin/ mkdir -p %{buildroot}/etc/xdg/autostart/ install -m 755 showTime.desktop %{buildroot}/etc/xdg/autostart/ mkdir -p %{buildroot}/usr/share/applications/ install -m 755 showTime.desktop %{buildroot}/usr/share/applications/ #定义软件包所包含的文件 #%{_bindir}是宏定义 这里是 /usr/bin ;%{_sysconfdir} 是/etc ;%{_datadir} 是 /usr/share #所有的宏都可以在 /usr/lib/rpm/macros 里找到 %files %{_bindir}/showTime %{_sysconfdir}/xdg/autostart/showTime.desktop %{_datadir}/applications/showTime.desktop #每次软件的更新内容可以记录在此到这里,保存到发布的软件包中,以便查询之用。 %changelog * Thu Dec 16 2021 kuangchunhua <kuangchunhua@kylinos.cn> - 1.0.0 - show-timer [root@localhost rpmbuild]#
[root@localhost rpmbuild]# ls SRPMS
show-timer-1.0.0-1.src.rpm
[root@localhost rpmbuild]# ls RPMS/x86_64/
show-timer-1.0.0-1.x86_64.rpm
[root@localhost rpmbuild]#
rpm -ivh show-timer-1.0.0-1.x86_64.rpm 安装
rpm -e show-timer-1.0.0-1.x86_64.rpm 卸载
rpm -ivh show-timer-1.0.0-1.src.rpm 会生成 ~/rpmbuild/SPEC/show-timer.spec,
再执行rpmbuild -bp ~/rpmbuild/SPEC/show-timer.spec 会生成 ~/rpmbuild/BUILD/show-timer-1.0.0,
即程序源码
rpmbuild -bb ~/rpmbuild/SPEC/show-timer.spec 只生成二进制 即show-timer-1.0.0-1.x86_64.rpm包
rpmbuild -bs ~/rpmbuild/SPEC/show-timer.spec 只生成源码包 即show-timer-1.0.0-1.src.rpm源码包
rpmbuild -ba ~/rpmbuild/SPEC/show-timer.spec 生成二进制和源码包
[root@localhost rpmbuild]# ls
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
[root@localhost rpmbuild]#
BUILD:执行 rpmbuild -bp ~/rpmbuild/SPEC/show-timer.spec 生成的源码在此目录下
BUILDROOT:这是临时构建目录,可以不管
RPMS:生成的二进制包在此目录下
SOURCES:压缩源码包和其他源文件在此目录下
SPECS:.spec配置文件在此目录下
SRPMS:生成的源码包在此目录下
上面只用简单标注了一下对应参数的说明,有兴趣可以网上查RPM构建 - SPEC文件参数解析
kch@kch:~/showTime/show-timer-1.0.0$ cat showTime.desktop
[Desktop Entry]
Name=showTimer
Name[zh_CN]=当前时间
Comment=显示当前时间
Comment[zh_CN]=显示当前时间
Exec=/usr/bin/showTime
Terminal=false
Type=Application
NoDisplay=false
kch@kch:~/showTime/show-timer-1.0.0$
git clone 地址 https://gitee.com/kchmmd/qt-test.git
如何配置使用git
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。