一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于rpm和yum构建根文件系统的方法与流程

2022-04-27 02:52:53 来源:中国专利 TAG:


1.本发明涉及计算机科学技术领域,具体涉及一种基于rpm和yum构建根文件系统的方法。


背景技术:

2.嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的eda研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发。
3.根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。
4.在嵌入式领域,设备存储空间比较小,很难容纳动辄4gb大小的桌面系统或者服务器系统。嵌入式用到的操作系统往往都是极其精简的,最小可以10mb左右。但是嵌入式领域中基本上没有软件包管理的概念,如rpm包和deb包。为了让嵌入式领域的根文件系统也可以使用yum或apt工具,则需要其他的技术途径实现。
5.目前,嵌入式领域的根文件系统的制作主要有以下几种方式:
6.1)使用build root工具,此工具并不能完美的支持rpm或deb包的管理工具;
7.2)使用busy box工具,此工具制作出来的根文件系统空间占用较小,功能较少,同时也不支持rpm或deb包的管理工具;
8.3)使用yocto工具,此工具使用较为繁琐,且也不能较好支持rpm或deb包的管理工具。
9.因此,如何提出一种根文件系统的构建方法,可以使rpm和yum包的管理工具放入到嵌入式操作系统的根文件系统之中,成为目前亟待解决的问题。


技术实现要素:

10.解决的技术问题
11.针对现有技术所存在的上述缺点,本发明提供了一种基于rpm和yum构建根文件系统的方法,该方法可以使rpm和yum包的管理工具放入到嵌入式操作系统的根文件系统之中,并且制作出来的根文件系统在100mb以内。
12.技术方案
13.为实现以上目的,本发明通过以下技术方案予以实现:
14.本发明提供一种基于rpm和yum构建根文件系统的方法,包括如下步骤:
15.s1、使用yum软件在linux系统中制作根文件系统;
16.s2、使用chroot工具进入所述根文件系统,再使用rpm命令删除所述根文件系统中的非必要软件包;
17.s3、退出所述根文件系统,删除非必要文件,所述非必要软件包和所述非必要文件
的删除不影响所述根文件系统运行,生成新的根文件系统;
18.s4、对所述新的根文件系统进行打包和压缩,重启所述linux系统,完成所述新的根文件系统的构建。
19.进一步地,步骤s1具体为:使用yum软件的
“‑‑
install root”参数在linux系统中制作根文件系统。
20.进一步地,所述非必要软件包至少包括:kbd-misc、kbd、grub2-common、grub2-tools-minimal、grub2-tools、grubby、shared-mime-info、libnl3、gettext-libs、gettext、kpartx、libcroco、file、gnupg2-smime、libgomp、memstrack、openssl、openssl-pkcs11trousers、which、libevent、python3-unbound、unbound-libs、xkeyboard-config、libxkbcommon、gpg-pubkey、hwdata、pciutils、rdma-core和libibverbs软件包。
21.进一步地,所述非必要文件至少包括:cracklib相关文件、语言文件、man文件、/usr/share/mime文件夹、/usr/lib/kbd文件夹、/usr/lib/locale/locale-archive*文件和dnf操作日志。
22.进一步地,所述对所述新的根文件系统进行打包具体包括:将所述新的根文件系统的目录使用cpio工具打包,生成initramfs.cpio文件。
23.进一步地,所述对所述新的根文件系统进行压缩具体包括:使用gzip工具对所述initramfs.cpio文件进行压缩,生成initramfs.cpio.gz文件。
24.进一步地,所述重启所述linux系统,完成所述新的根文件系统的构建具体包括:
25.将所述initramfs.cpio.gz文件复制到所述linux系统的/boot/initramfs-test,生成initramfs-test文件;
26.删除所述linux系统的内核grub参数,新增rdinit=/bin/bash;
27.删除所述linux系统的initrd变量后的所有参数,把所述initrd变量设置成所述initramfs-test文件;
28.重启所述linux系统。
29.基于同一发明构想,本发明还提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述任一项所述的方法。
30.基于同一发明构想,本发明还提供了一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的方法。
31.有益效果
32.本发明提供的基于rpm和yum构建根文件系统的方法使用yum工具的制作根文件系统,又删除一些用不到的非必要软件包和非必要文件,从而生成了可以应用到嵌入式领域的集成了rpm和yum功能的根文件系统,从而能够让嵌入式操作系统在空间受限的情况下正常的使用rpm和yum工具,方便开发人员部署和构建更加全面的文件系统。并且制作出来的根文件系统在100mb以内,不会过多增加运行量。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本发明一实施例提供的基于rpm和yum构建根文件系统的方法步骤示意图;
35.图2为本发明一实施例提供的基于rpm和yum构建根文件系统的方法流程示意图。
具体实施方式
36.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.首先,对本发明用到的技术术语进行解释:
38.rpm:rpm是red-hat package manager(红帽软件包管理器)的缩写,这一文件格式名称虽然打上了red hat的标志,但是其原始设计理念是开放式的,包括open linux、s.u.s.e.以及turbo linux等linux的分发版本都有采用,可以算是公认的行业标准。
39.yum:yum(全称为yellow dog updater,modified)是一个在fedora和red hat以及cent os中的shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
40.参阅图1,本发明一实施例提供了一种基于rpm和yum构建根文件系统的方法,包括如下步骤:
41.s1、使用yum软件在linux系统中制作根文件系统;
42.s2、使用chroot工具进入所述根文件系统,再使用rpm命令删除所述根文件系统中的非必要软件包;
43.s3、退出所述根文件系统,删除非必要文件,所述非必要软件包和所述非必要文件的删除不影响所述根文件系统运行,生成新的根文件系统;
44.s4、对所述新的根文件系统进行打包和压缩,重启所述linux系统,完成所述新的根文件系统的构建。
45.在本实施例中,步骤s1具体为:使用yum软件的
“‑‑
install root”参数在linux系统中制作根文件系统。
46.在本实施例中,参阅图2,所述非必要软件包至少包括:kbd-misc、kbd、grub2-common、grub2-tools-minimal、grub2-tools、grubby、shared-mime-info、libnl3、gettext-libs、gettext、kpartx、libcroco、file、gnupg2-smime、libgomp、memstrack、openssl、openssl-pkcs11 trousers、which、libevent、python3-unbound、unbound-libs、xkeyboard-config、libxkbcommon、gpg-pubkey、hwdata、pciutils、rdma-core和libibverbs软件包。所述非必要文件至少包括:cracklib相关文件、语言文件、man文件、/usr/share/mime文件夹、/usr/lib/kbd文件夹、/usr/lib/locale/locale-archive*文件和dnf操作日志。当然,本发明技术领域内的人员应该明白,非必要软件包和非必要文件并不局限于此。
47.在本实施例中,参阅图2,具体操作的时候,先要创建文件夹rootfs-test,rootfs-test作为所述新的根文件系统的目录。完成操作后先打包:所述对所述新的根文件系统进行打包具体包括:将所述新的根文件系统的目录使用cpio工具打包,生成initramfs.cpio文件。之后压缩:所述对所述新的根文件系统进行压缩具体包括:使用gzip工具对所述initramfs.cpio文件进行压缩,生成initramfs.cpio.gz文件。最后重启:所述重启所述linux系统,完成所述新的根文件系统的构建具体包括:将所述initramfs.cpio.gz文件复制到所述linux系统的/boot/initramfs-test,生成initramfs-test文件;删除所述linux系统的内核grub参数,新增rdinit=/bin/bash;删除所述linux系统的initrd变量后的所有参数,把所述initrd变量设置成所述initramfs-test文件;重启所述linux系统。
48.基于同一发明构想,本发明还提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述基于rpm和yum构建根文件系统的方法。
49.所述处理器在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器(例如gpu(graphics processing unit-图形处理器))、或其他数据处理芯片。该处理器通常用于控制所述电子设备的总体操作。本实施例中,所述处理器用于运行所述存储器中存储的程序代码或者处理数据,例如运行所述基于rpm和yum构建根文件系统的方法的程序代码。
50.所述存储器至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器可以是所述电子设备的内部存储单元,例如该电子设备的硬盘或内存。在另一些实施例中,所述存储器也可以是所述电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器还可以既包括所述电子设备的内部存储单元也包括其外部存储设备。本实施例中,所述存储器通常用于存储安装于所述电子设备的操作方法和各类应用软件,例如所述基于rpm和yum构建根文件系统的方法的程序代码等。此外,所述存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
51.基于同一发明构想,本发明还提供一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现分析所述基于rpm和yum构建根文件系统的方法。
52.综上所述,本发明提供的基于rpm和yum构建根文件系统的方法使用yum工具的制作根文件系统,又删除一些用不到的非必要软件包和非必要文件,从而生成了可以应用到嵌入式领域的集成了rpm和yum功能的根文件系统,进而能够让嵌入式操作系统在空间受限的情况下正常的使用rpm和yum工具,方便开发人员部署和构建更加全面的文件系统。并且制作出来的根文件系统在100mb以内,不会过多增加运行量。
53.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者
替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献