微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【Electron-vue】构建桌面应用27-rpm文件打包

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

在这里插入图片描述

这里有比较详细的文档介绍,感兴趣的可以去看看点这里

2.1 创建npmbuild目录

上面的文章中介绍了需要通过Root去创建一个新的普通账户去创建rpmbuild文件以及相关文件,这里我就不去创建账户了,因为我只是为了测试在Centeros系统上能不能正常的安装打包rpm文件,不把它当做主要的使用环境,所以为了简单,就不去创建新账户了。参考上面的文档连接,上面有很详细的步骤介绍。

切记!不要使用 root 用户来执行打包操作。因为这十分危险,所有二进制文件都会在打包前安装至系统中,因此您应该以普通用户身份打包,以防止系统被破坏。

@H_502_79@

创建一个新的普通账户,使用该账户去创建rpmbuild目录

 # sudo /usr/sbin/useradd makerpm
 # usermod -a -G mock makerpm
 # passwd makerpm

在上面的操作中,你会发现在执行第二步的时候,发现并没有mock

在这里插入图片描述

但是这一步可以省略不要,直接给你新创建的用户设置密码passwd makerdemo

用户创建完事,你可以切换到新的账户登陆,在/home/username下创建rpmbuild工作目录

# rpmdev-setuptree

由于我这里已经创建了,我就不在终端执行了,命令执行后会发现创建了如下的工作目录

在这里插入图片描述

文件说明用途
SpecsSpec文件目录保存RPM包配置(.spec文件)
SOURCE代码目录保存源码包(比如.tar.gz包)
BUILD构建目录源码包压缩之后存放到这里,并在该目录的子目录完成编译
buildrOOT最终安装目录保存%install阶段安装的文件
RPMS标准RPM包目录生成/保存二进制RPM包
SRPMS代码RPM包目录生成/保存源码RPM包(SRPM)

由于我是基于编译后的文件进行的打包,所以我不是很关心BUILID之前的操作,比如SOURCE,buildrOOT以及SRPM文件。我所关心的只有SpecsBUILD文件目录。

2.2 将编译后的代码放到BUILD目录

在这里插入图片描述

文件还是按照之前deb打包的目录直接copy过来的。

名称说明用途
DEBAIN安装程序的说明在安装文件的的一些说明,比如软件名称,版本号等
opt程序运行的目录这里存放在electron-vue下的build之后的文件,由于其他的依赖文件放到opt下,所以这里也放到opt下,当然你也可以放到预先沟通好的目录
usr用户目录在usr下主要放置.desktop文件和左面图标文件

1. DEBIAN系统下才需要这个文件,在Centeros中可能没有用,我还没测试,也没有删除
2. opt下的文件如下:

在这里插入图片描述

3. dirclient是我代码的目录,该目录对应着.desktop文件中的EXEC配置项。其中存放的就是通过npm run build生成linux-unpacked目录下的文件,可以直接copy至此。

4. usr目录下如下
存放桌面快捷方式的.desktop文件

在这里插入图片描述


存放桌面快捷方式引用的icon

在这里插入图片描述

2.3 制作spec文件

前面的都准备好了,那么我们还需要制作一个spec文件

# cd Specs
# rpmdev-newspec dynarose.spec

创建之后可以打开之后进行一些配置

Name:dynarose
Version:1.0	
Release:	1%{?dist}
Summary:Hello

#Group:		
License:GPLv3+	
#URL:		
#Source0:

#buildrequires:	
#Requires:	

%description -l zh_CN
"Hello world"

#%prep
#%setup -q


%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文件

# rpmbuild -ba dynarose.spec

然后巴拉巴拉的输出

如果成功的话在RPMS包中就会出现你的rpm

在这里插入图片描述


然后双击执行

在这里插入图片描述


输入密码,然后就可以选择安装了。

安装后在window->所有应用->其他,就可以看到新安装的应用程序

在这里插入图片描述


点击之后就可以启动应用

在这里插入图片描述


至此,rpm文件的打包就完成了,支持centeros下的安装使用。关于desktop的的文件,可以参考我前面的文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐