1.前言
由于我们的客户端需要支持国产化Linux
,而且主产品是在中标麒麟
以及银河麒麟
上使用,所以上面的两个系统都需要支持。而上面的两个系统是需要rpm
安装包的,所以需要调研rpm
包的支持。闲话少说,书归正传,开始我们的客户端打包rpm
文件。
文章的主旨:主要是在开发过程中遇到的问题及打包方式,并不会详细到具体的细节,比如说打包的配置及属性详解等。因为现在网上这方面的资料很多,但凡懂点网络的都能在网上搜索到一些。因为现在的文章抄袭的很严重,也很相似。我会推荐一些真正有借鉴意义的文章,至少是参考这些文章,我能搞出来。那么我觉得他有用,在开发的过程中应该学会甄别文章。那些拿来即用的文章对你来说未必是好事,参考标准的文档才会让你对某样东西有着更透彻的理解。
2.打包.rpm文件
如果你在网上查找关于rpm文件的打包
,一定会查到很多相关资料,大多是从源码文件开始打包的,还是需要xxxx.tar.gz
的包,然后放到SOURCE
文件中,然后开始去构建,构建的项目会存到BUILD
中。
由于我是用的是Electron-vue
,所以我的build
文件都是用框架自带的build
方式构建的文件,所以这里跳过关于linux下rpm文件的源码编译过程
。
如下图,linux-unpacked
目录下的文件就是我们通过npm run build
命令生成的,主要用于我们此次的打包编译后的文件
,可以直接copy到我们下面制作包的BUILD/opt/driclient
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129145203877.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5xa18xMjM=,size_16,color_FFFFFF,t_70)
这里有比较详细的文档介绍,感兴趣的可以去看看点这里
2.1 创建npmbuild目录
上面的文章中介绍了需要通过Root
去创建一个新的普通账户去创建rpmbuild
文件以及相关文件,这里我就不去创建账户了,因为我只是为了测试在Centeros
系统上能不能正常的安装打包rpm
文件,不把它当做主要的使用环境,所以为了简单,就不去创建新账户了。参考上面的文档连接,上面有很详细的步骤介绍。
切记!不要使用 root 用户来执行打包操作。因为这十分危险,所有二进制文件都会在打包前安装至系统中,因此您应该以普通用户身份打包,以防止系统被破坏。
创建一个新的普通账户,使用该账户去创建rpmbuild
目录
在上面的操作中,你会发现在执行第二步的时候,发现并没有mock
组
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021012914253343.png)
但是这一步可以省略不要,直接给你新创建的用户设置密码即passwd makerdemo
用户创建完事,你可以切换到新的账户登陆,在/home/username
下创建rpmbuild
工作目录
由于我这里已经创建了,我就不在终端执行了,命令执行后会发现创建了如下的工作目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129142939996.png)
文件 | 说明 | 用途 |
---|
SPECS | Spec文件目录 | 保存RPM包配置(.spec文件) |
SOURCE | 源代码目录 | 保存源码包(比如.tar.gz包) |
BUILD | 构建目录 | 源码包压缩之后存放到这里,并在该目录的子目录完成编译 |
BUILDROOT | 最终安装目录 | 保存%install阶段安装的文件 |
RPMS | 标准RPM包目录 | 生成/保存二进制RPM包 |
SRPMS | 源代码RPM包目录 | 生成/保存源码RPM包(SRPM) |
由于我是基于编译后的文件进行的打包,所以我不是很关心BUILID
之前的操作,比如SOURCE
,BUILDROOT
以及SRPM
文件。我所关心的只有SPECS
和BUILD
文件目录。
2.2 将编译后的代码放到BUILD目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/202101291444431.png)
文件还是按照之前deb
打包的目录直接copy过来的。
名称 | 说明 | 用途 |
---|
DEBAIN | 安装程序的说明 | 在安装文件的的一些说明,比如软件名称,版本号等 |
opt | 程序运行的目录 | 这里存放在electron-vue下的build之后的文件,由于其他的依赖文件放到opt下,所以这里也放到opt下,当然你也可以放到预先沟通好的目录 |
usr | 用户目录 | 在usr下主要放置.desktop文件和左面图标文件 |
1. DEBIAN
系统下才需要这个文件,在Centeros
中可能没有用,我还没测试,也没有删除。
2. opt
下的文件如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129145437383.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5xa18xMjM=,size_16,color_FFFFFF,t_70)
3. dirclient
是我代码的目录,该目录对应着.desktop
文件中的EXEC
配置项。其中存放的就是通过npm run build
生成的linux-unpacked
目录下的文件,可以直接copy至此。
4. usr
目录下如下
存放桌面快捷方式的.desktop
文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129145914961.png)
存放桌面快捷方式引用的icon
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129145937558.png)
2.3 制作spec文件
前面的都准备好了,那么我们还需要制作一个spec
文件
创建之后可以打开之后进行一些配置
Name:dynarose
Version:1.0
Release: 1%{?dist}
Summary:Hello
License:GPLv3+
%description -l zh_CN
"Hello world"
%build
%install
cp -R $RPM_BUILD_DIR/opt $RPM_BUILD_ROOT/
cp -R $RPM_BUILD_DIR/usr $RPM_BUILD_ROOT/
%files
/opt/dridclient
/usr/share/
%changelog
%pre
echo -e "pre\n" >> /home/test
%post
echo -e "post\n" >> /home/test
%preun
echo -e "preun\n" >> /home/test
%postun
echo -e "postun\n" >> /home/test
配置的详细属性我就不一一列举出来了,因为源文档的属性比较多,并不是所有的属性都能需要,所以如果你不知道有些属性怎么写,可以直接注释掉,要不然你留着它,在编译的时候就会出问题。
详细属性介绍可以参考我开始的连接点这里
需要注意的是,你需要在安装的时候将usr
下的文件copy到实际usr
目录下,才能在项目启动的时候读取到正确的.desktop
文件和icon
图标。
%install
cp -R $RPM_BUILD_DIR/opt $RPM_BUILD_ROOT/
cp -R $RPM_BUILD_DIR/usr $RPM_BUILD_ROOT/
然后需要依赖的文件也需要在files
中列举出来
%files
/opt/dridclient
/usr/share/
配置之后,使用下面的命令开始打包rpm
文件
然后巴拉巴拉的输出…
如果成功的话在RPMS
包中就会出现你的rpm
包
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129184335659.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5xa18xMjM=,size_16,color_FFFFFF,t_70)
然后双击执行
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129184416305.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5xa18xMjM=,size_16,color_FFFFFF,t_70)
输入密码,然后就可以选择安装了。
安装后在window->所有应用->其他
,就可以看到新安装的应用程序
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210201103621566.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5xa18xMjM=,size_16,color_FFFFFF,t_70)
点击之后就可以启动应用
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021020110374439.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5xa18xMjM=,size_16,color_FFFFFF,t_70)
至此,rpm
文件的打包就完成了,支持在centeros
下的安装使用。关于desktop
的的文件,可以参考我前面的文章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)