CN113961234A - 一种Linux发行版本的构建方法及相关装置 - Google Patents

一种Linux发行版本的构建方法及相关装置 Download PDF

Info

Publication number
CN113961234A
CN113961234A CN202111151125.0A CN202111151125A CN113961234A CN 113961234 A CN113961234 A CN 113961234A CN 202111151125 A CN202111151125 A CN 202111151125A CN 113961234 A CN113961234 A CN 113961234A
Authority
CN
China
Prior art keywords
linux distribution
distribution version
target
version
linux
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111151125.0A
Other languages
English (en)
Inventor
倪俊超
周勃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Semiconductor Chengdu Co Ltd
Original Assignee
Spreadtrum Semiconductor Chengdu Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spreadtrum Semiconductor Chengdu Co Ltd filed Critical Spreadtrum Semiconductor Chengdu Co Ltd
Priority to CN202111151125.0A priority Critical patent/CN113961234A/zh
Publication of CN113961234A publication Critical patent/CN113961234A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种Linux发行版本的构建方法及相关装置,涉及计算机操作系统技术领域。该方法包括:获取配置信息,其中,配置信息包括Linux发行版本、Linux发行版本的类型、Linux发行版本运行的平台架构;根据配置信息,获得包列表;确定与Linux发行版本对应的构建工具,以及确定与包列表对应的一个或多个软件源;根据包列表、构建工具以及一个或多个软件源,输出目标Linux发行版本,目标Linux发行版本为满足配置信息的Linux发行版本。本方法可以定制Linux发行版本的功能特性,降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。

Description

一种Linux发行版本的构建方法及相关装置
技术领域
本申请涉及计算机操作系统技术领域,尤其涉及一种Linux发行版本的构建方法及相关装置。
背景技术
Linux系统是一种免费使用和自由传播的类UNIX操作系统,通常由成百上千的软件包组成,这些软件包之间存在错综复杂的依赖关系,由世界各地不同程序员进行开发和维护。Linux发行版本为用户集成了Linux操作系统及各种应用软件的版本,用户不需要重新编译,直接安装到目标平台上之后,只需要做小幅度更改设置就可以使用。Linux发行版本通常包括桌面环境、媒体播放器、数据库等各类应用软件,通常使用软件包管理系统来对应用软件进行管理。因此Linux发行版本的形式多种多样,从功能齐全的桌面系统以及服务器系统到小型系统,通过安装指定功能特性的软件包就可以满足用户对特定Linux发行版本的需求。
目前,构建Linux发行版本的方法大多采用通过获取官网镜像包的形式,或者通过命令行的形式来一步一步构建Linux发行版本。
但是,上述Linux发行版本的构建方法无法定制Linux发行版本的功能特性,并且,Linux发行版本的开发难度较大,周期过长,效率较低。
发明内容
本申请实施例提供了一种Linux发行版本的构建方法及相关装置,可以定制Linux发行版本的功能特性,降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
第一方面,本申请实施例提供了一种Linux发行版本的构建方法,该方法包括:
获取配置信息,所述配置信息包括Linux发行版本、所述Linux发行版本的类型、所述Linux发行版本运行的平台架构;
根据所述配置信息,获得包列表,所述包列表包括构成所述Linux发行版本的一个或多个包;
确定与所述Linux发行版本对应的构建工具,以及确定与所述包列表对应的一个或多个软件源;
根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,所述目标Linux发行版本为满足所述配置信息的Linux发行版本。
本申请实施例中,提供了一种Linux发行版本的构建方法,应用于计算机操作系统技术领域。具体为,获取配置信息,其中,该配置信息可以是用户在配置页面对Linux发行版本、Linux发行版本的类型、Linux发行版本运行的平台架构信息的配置;然后根据该配置信息获得包列表,该包列表由构成上述Linux发行版本的一个或多个包组成;再确定与上述Linux发行版本对应的构建工具,以及与上述包列表对应的一个或多个软件源,最后根据得到的包列表、构建功能以及一个或多个软件源,输出目标Linux发行版本,该目标Linux发行版本为满足配置信息的Linux发行版本。通过本申请实施例,用户只需要通过配置页面进行简单的信息配置,就可以得到期望的目标Linux发行版本,可以实现定制Linux发行版本的功能特性,并且,与采用通过获取官网镜像包的形式,或者通过命令行的形式来一步一步构建Linux发行版本的方法相比,本申请实施例可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
在一种可能的实施方式中,所述根据所述配置信息,获得包列表,包括:
根据所述配置信息中的所述Linux发行版本,从官网获取所述Linux发行版本对应的包,得到所述包列表。
在本申请实施例中,提供了一种根据配置信息获得包列表的可能的具体实施方式,具体为,根据配置信息中对Linux发行版本的配置,从官网获取与该Linux发行版本对应的包,得到该包列表。这些包列表可以从指定的Linux发行版本官网获取,为了防止初始Linux发行版本的稳定性受到影响,在本申请实施例中禁止自行构建包列表,必须与官方的包列表保持同步。
在一种可能的实施方式中,所述方法还包括:
根据接收到的删除指令,对所述包列表中的一个或多个包进行删除;或者,根据接收到的添加指令,往所述包列表中添加一个或多个包。
在本申请实施例中,还提供了一种对包列表的增删的可能的具体实施方式,具体为,在根据配置信息获得包列表之后,用户可以对包列表中的包进行添加或删除,即根据接收到的删除指令,对包列表中的一个或多个包进行删除,根据接收到的添加指令,往包列表中的添加一个或多个包,实现对Linux发行版本进行功能的增加或者裁剪,从而定制Linux发行版本的功能特性。
在一种可能的实施方式中,所述根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,包括:
获取构建指令,所述构建指令用于指示所述构建工具和所述一个或多个软件源根据所述包列表构建得到所述目标Linux发行版本;
输出所述目标Linux发行版本。
在本申请实施例中,提供了一种根据包列表、构建工具以及一个或多个软件源,输出目标Linux发行版本的可能的具体实施方式,具体为,获取构建指令,根据该构建指令指示构建工具和一个或多个软件源根据包列表构建得到目标Linux发行版本,然后输出目标Linux发行版本,其中,该构建指令可以是用户发出的。通过本申请实施例,可以得到期望功能特性的目标Linux发行版本。
在一种可能的实施方式中,所述输出所述目标Linux发行版本之前,所述方法还包括:
确定目标位置,所述目标位置用于存储所述目标Linux发行版本;
所述输出所述目标Linux发行版本,包括:
输出所述目标Linux发行版本至所述目标位置。
在本申请实施例中,还提供了一种确定目标Linux发行版本的存储位置的可能的具体实施方式,具体为,在输出目标Linux发行版本之前,先确定用于存储目标Linux发行版本的目标位置,然后输出目标Linux发行版本至该目标位置。以便从指定的目标位置中读取构建的目标Linux发行版本文件,这些构建好的文件需要被制作成指定的文件系统,最后才能被烧写到目标平台运行。
第二方面,本申请实施例提供了一种Linux发行版本的构建装置,该装置包括:
获取单元,用于获取配置信息,所述配置信息包括Linux发行版本、所述Linux发行版本的类型、所述Linux发行版本运行的平台架构;
所述获取单元,用于根据所述配置信息,获得包列表,所述包列表包括构成所述Linux发行版本的一个或多个包;
确定单元,用于确定与所述Linux发行版本对应的构建工具,以及确定与所述包列表对应的一个或多个软件源;
构建单元,用于根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,所述目标Linux发行版本为满足所述配置信息的Linux发行版本。
在一种可能的实施方式中,所述获取单元,具体用于根据所述配置信息中的所述Linux发行版本,从官网获取所述Linux发行版本对应的包,得到所述包列表。
在一种可能的实施方式中,所述装置还包括:
删除单元,用于根据接收到的删除指令,对所述包列表中的一个或多个包进行删除;或者,
添加单元,用于根据接收到的添加指令,往所述包列表中添加一个或多个包。
在一种可能的实施方式中,所述获取单元,还用于获取构建指令,所述构建指令用于指示所述构建工具和所述一个或多个软件源根据所述包列表构建得到所述目标Linux发行版本;
所述构建单元,用于输出所述目标Linux发行版本。
在一种可能的实施方式中,所述确定单元,还用于确定目标位置,所述目标位置用于存储所述目标Linux发行版本;
所述构建单元,具体用于输出所述目标Linux发行版本至所述目标位置。
关于第二方面以及任一项可能的实施方式所带来的技术效果,可参考对应于第一方面以及相应的实施方式的技术效果的介绍。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器和存储器;所述存储器用于存储计算机执行指令;所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述电子设备执行如上述第一方面以及任一项可能的实施方式的方法。可选的,所述电子设备还包括收发器,所述收发器,用于接收信号或者发送信号。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储指令或计算机程序;当所述指令或所述计算机程序被执行时,使得第一方面以及任一项可能的实施方式所述的方法被实现。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括指令或计算机程序;当所述指令或所述计算机程序被执行时,使得第一方面以及任一项可能的实施方式所述的方法被实现。
第六方面,本申请实施例提供一种芯片,该芯片包括处理器,所述处理器用于执行指令,当该处理器执行所述指令时,使得该芯片执行如第一方面以及任一项可能的实施方式所述的方法。可选的,该芯片还包括通信接口,所述通信接口用于接收信号或发送信号。
第七方面,本申请实施例提供一种系统,所述系统包括至少一个如第二方面所述的Linux发行版本的构建装置或第三方面所述的电子设备或第六方面所述的芯片。
此外,在执行上述第一方面以及任一项可能的实施方式所述的方法的过程中,上述方法中有关发送信息和/或接收信息等的过程,可以理解为由处理器输出信息的过程,和/或,处理器接收输入的信息的过程。在输出信息时,处理器可以将信息输出给收发器(或者通信接口、或发送模块),以便由收发器进行发射。信息在由处理器输出之后,还可能需要进行其他的处理,然后才到达收发器。类似的,处理器接收输入的信息时,收发器(或者通信接口、或发送模块)接收信息,并将其输入处理器。更进一步的,在收发器收到该信息之后,该信息可能需要进行其他的处理,然后才输入处理器。
基于上述原理,举例来说,前述方法中提及的发送信息可以理解为处理器输出信息。又例如,接收信息可以理解为处理器接收输入的信息。
可选的,对于处理器所涉及的发射、发送和接收等操作,如果没有特殊说明,或者,如果未与其在相关描述中的实际作用或者内在逻辑相抵触,则均可以更加一般性的理解为处理器输出和接收、输入等操作。
可选的,在执行上述第一方面以及任一项可能的实施方式所述的方法的过程中,上述处理器可以是专门用于执行这些方法的处理器,也可以是通过执行存储器中的计算机指令来执行这些方法的处理器,例如通用处理器。上述存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(Read Only Memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
在一种可能的实施方式中,上述至少一个存储器位于装置之外。
在又一种可能的实施方式中,上述至少一个存储器位于装置之内。
在又一种可能的实施方式之中,上述至少一个存储器的部分存储器位于装置之内,另一部分存储器位于装置之外。
本申请中,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。
本申请实施例中,通过获取与Linux发行版本相关的配置信息,可以根据该配置信息得到期望的目标Linux发行版本,实现定制Linux发行版本的功能特性,并且,可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种构建Linux发行版本的架构示意图;
图2为本申请实施例提供的一种构建Linux发行版本的界面示意图;
图3为本申请实施例提供的一种Linux发行版本的构建方法的流程示意图;
图4为本申请实施例提供的一种Linux发行版本的构建方法的流程示意图;
图5为本申请实施例提供的一种Linux发行版本的构建方法的流程示意图;
图6为本申请实施例提供的一种Linux发行版本的构建方法的流程示意图;
图7为本申请实施例提供的一种构建装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图对本申请实施例进行描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
本申请提供了一种Linux发行版本的构建方法,为了更清楚地描述本申请的方案,下面先介绍一些与Linux发行版本相关的知识。
图形用户界面(graphical user interface,GUI):又称图形用户接口。
Log:文件日志的输出形式。
rootfs:根文件系统(root file system,rootfs)。
Linux:全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多处理器的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
Linux发行版本:指的是用户集成了Linux操作系统及各种应用软件的版本,用户不需要重新编译,直接安装到目标平台上之后,只需要做小幅度更改设置就可以使用。Linux发行版本通常包括桌面环境、媒体播放器、数据库等各类应用软件,通常使用软件包管理系统来对应用软件进行管理。
目前,构建Linux发行版本的方法大多采用通过获取官网镜像包的形式,或者通过命令行的形式来一步一步构建Linux发行版本。但是,上述Linux发行版本的构建方法均存在弊端,第一种方式直接使用官网的镜像包存在无法定制Linux发行版本的功能特性的问题,也无法控制Linux发行版本的大小,对镜像的功能也无法裁剪。第二种方式对研发用户的技术要求较高,需要花费较多时间学习镜像搭建的过程,这会导致Linux发行版本的开发难度较大,周期过长,效率较低,无法提高基于Linux发行版本的产品市场竞争力。
针对目前Linux发行版本的构建方法中存在的上述问题,本申请实施例提出了一种新的构建Linux发行版本的架构,并基于该架构相应的提出一种新的Linux发行版本的构建方法,本申请实施例所提出的Linux发行版本的构建方法,基于GUI获取与Linux发行版本相关的配置信息,可以根据该配置信息得到期望的目标Linux发行版本,实现定制Linux发行版本的功能特性,并且,可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参阅图1,图1为本申请实施例提供的一种构建Linux发行版本的架构示意图。
如图1所示,本架构分为了三层,最底层为Linux工具类,即Linux基础工具组成的类,由于构建的是Linux发行版本,所以会用到基于Linux的各类构建工具。最上层是用户界面(user interface,UI)控制层,用户构建得到目标Linux发行版本在图形化的基础上即可实现,即用户只需要在该层对构建的Linux发行版本进行信息配置,无需采用通过获取官网镜像包的形式,或者通过命令行的形式来一步一步构建Linux发行版本,就可以得到具有期望功能特性的目标Linux发行版本。中间层为实现细节封装层,该层会将最上层的配置信息进行解析,然后按照Linux发行版本的构建流程,使用Linux提供的工具来创建用户指定的目标Linux发行版本。需要注意的是,这些层能够正常运行都是基于统一的运行环境,因为如果操作系统环境不一致,会导致缺少工具而无法执行本申请实施例提供的构建Linux发行版本的方法。可以使用如:docker,Source-To-Image,Jib,Bazel等容器类工具,来搭建一个统一的运行环境,从而可以在该环境下执行本申请实施例提供的构建Linux发行版本的方法。
请参阅图2,图2为本申请实施例提供的一种构建Linux发行版本的界面示意图。
如图2所示,展示了上述图1中的UI控制层为用户提供的信息配置界面的一种可能的界面示意图。基于本图形化的Linux发行版本快速构建方法中的UI界面,用户首先需要在界面中对期望得到的目标Linux发行版本进行信息配置,该配置信息具体包括了选择使用的Linux发行版本,选择Linux发行版本的类型和运行的平台架构。具体的,选择使用的Linux发行版本可以是Debian,Fedora,SUSE,Gentoo,Ubuntu等,选择Linux发行版本的类型可以是base,minimal,server,desktop等,选择Linux发行版本运行的平台架构可以是基于x86_64,arm,sparc,mips,powerpcmips,alpha,sparc,RISCV等架构的芯片。
然后,实现细节封装层会对接收到的配置信息进行解析,通过用户所配置的信息从对应Linux发行版本的官网下载构成该Linux发行版本的包列表文件。这些功能包会被展示在包列表框中,用户还可以选择删除某些功能包,或者新添加功能包,以达到定制Linux发行版本的功能特性的目的,确定最终的包列表。并且,实现细节封装层还会根据得到的配置信息和包列表,选择Linux发行版本的构建工具和使用的软件源(软件源1、软件源2、软件源3、……、软件源n),其中,构建工具用于构建对应的Linux发行版本,软件源用于安装最终确定的功能包。需要注意的是,若基于本申请实施例的内容采用软件源扩展或缩减,并不影响本申请实施例的实质内容,均视为本申请实施例的保护范围。
最后对构建的Linux发行版本进行打包,需要对文件系统进行选择,指定Log和构建文件的输出位置。其中,Linux发行版本的文件系统类型包括但不限于ext2,ext3,ext4,xfs,brtfs,zfs等所有Linux支持的文件系统类型。用户在UI界面点击开始构建,则实现细节封装层将开始执行本申请实施例所提供的构建方法,按照设置的流程对所选择的Linux发行版本进行构建。输出的构建信息在Log信息窗口中可以看到,输出的Linux发行版本存储在指定位置供用户调用。若点击停止构建,则整个流程会终止并进行初始化。
以上述图1所示的Linux发行版本的构建架构和图2所示的Linux发行版本的UI界面为例,基于该构建架构和UI界面,本申请实施例还提供了一种Linux发行版本的构建方法,下面结合图3对该构建方法进行说明。
请参阅图3,图3为本申请实施例提供的一种Linux发行版本的构建方法的流程示意图,该构建方法涉及计算机操作系统技术领域,尤其涉及对Linux发行版本的构建,该方法包括但不限于如下步骤:
步骤301:获取配置信息。
电子设备获取配置信息,其中,该配置信息可以是用户基于上述图2所示的GUI进行的配置,该配置信息具体可以包括但不限于:选择使用的Linux发行版本,选择Linux发行版本的类型,以及选择Linux发行版本运行的平台架构。具体的,选择使用的Linux发行版本可以是Debian,Fedora,SUSE,Gentoo,Ubuntu等,选择Linux发行版本的类型可以是base,minimal,server,desktop等,选择Linux发行版本运行的平台架构可以是基于x86_64,arm,sparc,mips,powerpcmips,alpha,sparc,RISCV等架构的芯片。
本申请实施例中的电子设备为搭载了可用于执行计算机执行指令的处理器的设备,可以是网络设备(如服务器)或终端设备(如计算机)等,具体可以是上述图1所示的Linux发行版本的构建架构中的实现细节封装层对应的产品设备,用于执行本申请实施例中的Linux发行版本的构建方法,以实现定制Linux发行版本的功能特性,降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
步骤302:根据配置信息,获得包列表。
电子设备根据配置信息,获得包列表。其中,该包列表由构成上述Linux发行版本的一个或多个包组成。
具体为,根据配置信息中对Linux发行版本的配置,从官网获取与该Linux发行版本对应的包,得到该包列表。这些包列表可以从指定的Linux发行版本官网获取,为了防止初始Linux发行版本的稳定性受到影响,在本申请实施例中禁止自行构建包列表,必须与官方的包列表保持同步。
此外,在根据配置信息获得包列表之后,用户可以对包列表中的包进行添加或删除,得到最终确定的包列表,即根据接收到的删除指令,对包列表中的一个或多个包进行删除,根据接收到的添加指令,往包列表中的添加一个或多个包,实现对Linux发行版本进行功能的增加或者裁剪,从而定制Linux发行版本的功能特性。
步骤303:确定与Linux发行版本对应的构建工具,以及确定与包列表对应的一个或多个软件源。
电子设备确定与Linux发行版本对应的构建工具,以及确定与包列表对应的一个或多个软件源。
具体为,不同Linux发行版本存在不一样的构建工具,可以根据配置信息中的Linux发行版本,选择Linux发行版本的构建工具。为了保证所选的功能包都能被正确安装,可以根据最终确定的包列表,选择使用的软件源(软件源1、软件源2、软件源3、……、软件源n)。其中,构建工具用于构建对应的Linux发行版本,软件源用于安装最终确定的功能包。需要注意的是,若基于本申请实施例的内容采用软件源扩展或缩减(包括本地自行构建的软件源),并不影响本申请实施例的实质内容,均视为本申请实施例的保护范围。
步骤304:根据包列表、构建工具以及一个或多个软件源,输出目标Linux发行版本。
电子设备根据包列表、构建工具以及一个或多个软件源,输出目标Linux发行版本。
具体为,获取构建指令,根据该构建指令指示构建工具和一个或多个软件源根据包列表构建得到目标Linux发行版本,然后输出目标Linux发行版本。其中,该构建指令可以是用户发出的。通过本申请实施例,可以得到期望功能特性的目标Linux发行版本。
此外,在输出目标Linux发行版本之前,先确定用于存储目标Linux发行版本的目标位置,然后输出目标Linux发行版本至该目标位置。以便从指定的目标位置中读取构建的目标Linux发行版本文件,这些构建好的文件需要被制作成指定的文件系统,最后才能被烧写到目标平台运行。
本申请实施例,基于GUI获取与Linux发行版本相关的配置信息,可以根据该配置信息得到期望的目标Linux发行版本,实现定制Linux发行版本的功能特性,并且,可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
请参阅图4,图4为本申请实施例提供的另一种Linux发行版本的构建方法的流程示意图,也可以理解为是上述图3中的Linux发行版本的构建方法流程图的变形或补充。
如图4所示,展示了上述步骤302的一种可能的实施方式。首先在上述图2所示的UI界面的三个选项栏中选择Linux发行版本、Linux发行版本的类型和Linux发行版本运行的平台架构。完成选择之后,需要确认所选项,如果选择否,则需重新选择上述三个选项栏。如果选择确认,则构建方法会从网络下载官网的Linux发行版本对应的包,得到包列表文件。可选的,用户可以对下载的包列表文件进行删除和添加操作,得到最终的构建Linux发行版本的包列表。
请参阅图5,图5为本申请实施例提供的又一种Linux发行版本的构建方法的流程示意图,也可以理解为是上述图3和图4中的Linux发行版本的构建方法流程图的变形或补充。
如图5所示,展示了上述步骤303的一种可能的实施方式。当上述步骤302完成之后,在本步骤中需要选择构建工具,该工具的确定是通过上述步骤302中的Linux发行版本类型来决定的。实际不同的Linux发行版本对应的构建工具是不同的,比如,基于debian的系统使用debootstrap进行构建,基于fedora的系统使用febootstrap进行构建。
完成构建工具的选择之后,需要确定软件源。软件源是构建Linux发行版本的功能包来源,可以是官网提供或者是镜像源,更进一步,也可以是本地自行构建的软件源。这些软件源可以被用户配置选择和删除。至此,就确定了构建工具和Linux发行版本的软件源。
本步骤是整个构建流程的关键,接收上一步的最终包列表,将这些数据传递给构建工具,选择的软件源也会被传递给构建工具,最后通过构建工具来对Linux发行版本进行构建。
请参阅图6,图6为本申请实施例提供的又一种Linux发行版本的构建方法的流程示意图,也可以理解为是上述图3、图4和图5中的Linux发行版本的构建方法流程图的变形或补充。
如图6所示,展示了上述步骤304的一种可能的实施方式。首先需要对Linux发行版本的文件系统类型进行选择,然后选择保存构建Log和文件的位置。如果选择否,则表示不指定Log和文件的保存位置,无法构建Linux发行版本,只能停止构建流程;如果选择是,则将指定的保存位置写入构建方法中。在接收到开始构建的指令后,会将Log信息输出到指定的窗口并保存到指定的位置,构建的Linux发行版本rootfs文件会输出到指定的位置并打包为指定的文件系统类型,用于后续调用。构建结束和停止构建时,都将执行“构建流程停止并初始化”的操作。
本申请实施例的目的在于向用户提供一种如上述图2所示的图形化的直观设计环境,实时跟随Linux发行版本官方的更新,根据用户需求与实际硬件需求来重新构建Linux发行版本。通过图形化的界面来对Linux发行版本的功能进行增减,构建特性可定制,功能可增裁,大小可控制的Linux发行版本。并且,在Linux发行版本对应的产品开发过程中,可以降低开发人员的学习成本和技术要求,缩短Linux发行版本的开发周期,快速构建出所需的Linux发行版本,增强基于自行构建的Linux发行版本的产品竞争力。
上述详细阐述了本申请实施例的方法,下面提供本申请实施例的装置。
请参阅图7,图7为本申请实施例提供的一种构建装置的结构示意图,该构建装置70可以包括获取单元701、确定单元702以及构建单元703,其中,各个单元的描述如下:
获取单元701,用于获取配置信息,所述配置信息包括Linux发行版本、所述Linux发行版本的类型、所述Linux发行版本运行的平台架构;
所述获取单元701,用于根据所述配置信息,获得包列表,所述包列表包括构成所述Linux发行版本的一个或多个包;
确定单元702,用于确定与所述Linux发行版本对应的构建工具,以及确定与所述包列表对应的一个或多个软件源;
构建单元703,用于根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,所述目标Linux发行版本为满足所述配置信息的Linux发行版本。
在本申请实施例中,提供了一种Linux发行版本的构建方法,应用于计算机操作系统技术领域。具体为,获取配置信息,其中,该配置信息可以是用户在配置页面对Linux发行版本、Linux发行版本的类型、Linux发行版本运行的平台架构信息的配置;然后根据该配置信息获得包列表,该包列表由构成上述Linux发行版本的一个或多个包组成;再确定与上述Linux发行版本对应的构建工具,以及与上述包列表对应的一个或多个软件源,最后根据得到的包列表、构建功能以及一个或多个软件源,输出目标Linux发行版本,该目标Linux发行版本为满足配置信息的Linux发行版本。通过本申请实施例,用户只需要通过配置页面进行简单的信息配置,就可以得到期望的目标Linux发行版本,可以实现定制Linux发行版本的功能特性,并且,与采用通过获取官网镜像包的形式,或者通过命令行的形式来一步一步构建Linux发行版本的方法相比,本申请实施例可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
在一种可能的实施方式中,所述获取单元701,具体用于根据所述配置信息中的所述Linux发行版本,从官网获取所述Linux发行版本对应的包,得到所述包列表。
在本申请实施例中,提供了一种根据配置信息获得包列表的可能的具体实施方式,具体为,根据配置信息中对Linux发行版本的配置,从官网获取与该Linux发行版本对应的包,得到该包列表。这些包列表可以从指定的Linux发行版本官网获取,为了防止初始Linux发行版本的稳定性受到影响,在本申请实施例中禁止自行构建包列表,必须与官方的包列表保持同步。
在一种可能的实施方式中,所述装置还包括:
删除单元704,用于根据接收到的删除指令,对所述包列表中的一个或多个包进行删除;或者,
添加单元705,用于根据接收到的添加指令,往所述包列表中添加一个或多个包。
在本申请实施例中,还提供了一种对包列表的增删的可能的具体实施方式,具体为,在根据配置信息获得包列表之后,用户可以对包列表中的包进行添加或删除,即根据接收到的删除指令,对包列表中的一个或多个包进行删除,根据接收到的添加指令,往包列表中的添加一个或多个包,实现对Linux发行版本进行功能的增加或者裁剪,从而定制Linux发行版本的功能特性。
在一种可能的实施方式中,所述获取单元701,还用于获取构建指令,所述构建指令用于指示所述构建工具和所述一个或多个软件源根据所述包列表构建得到所述目标Linux发行版本;
所述构建单元703,用于输出所述目标Linux发行版本。
在本申请实施例中,提供了一种根据包列表、构建工具以及一个或多个软件源,输出目标Linux发行版本的可能的具体实施方式,具体为,获取构建指令,根据该构建指令指示构建工具和一个或多个软件源根据包列表构建得到目标Linux发行版本,然后输出目标Linux发行版本,其中,该构建指令可以是用户发出的。通过本申请实施例,可以得到期望功能特性的目标Linux发行版本。
在一种可能的实施方式中,所述确定单元702,还用于确定目标位置,所述目标位置用于存储所述目标Linux发行版本;
所述构建单元703,具体用于输出所述目标Linux发行版本至所述目标位置。
在本申请实施例中,还提供了一种确定目标Linux发行版本的存储位置的可能的具体实施方式,具体为,在输出目标Linux发行版本之前,先确定用于存储目标Linux发行版本的目标位置,然后输出目标Linux发行版本至该目标位置。以便从指定的目标位置中读取构建的目标Linux发行版本文件,这些构建好的文件需要被制作成指定的文件系统,最后才能被烧写到目标平台运行。
根据本申请实施例,图7所示的装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于电子设备也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
需要说明的是,各个单元的实现还可以对应参照上述图3、图4、图5、图6所示的方法实施例的相应描述。
在图7所描述的构建装置70中,通过获取与Linux发行版本相关的配置信息,可以根据该配置信息得到期望的目标Linux发行版本,实现定制Linux发行版本的功能特性,并且,可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
请参阅图8,图8为本申请实施例提供的一种电子设备80的结构示意图。该电子设备80可以包括存储器801、处理器802。进一步可选的,还可以包含通信接口803以及总线804,其中,存储器801、处理器802以及通信接口803通过总线804实现彼此之间的通信连接。通信接口803用于与上述构建装置70进行数据交互。
其中,存储器801用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器801包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonlymemory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。
处理器802是进行算术运算和逻辑运算的模块,可以是中央处理器(centralprocessing unit,CPU)、显卡处理器(graphics processing unit,GPU)或微处理器(microprocessor unit,MPU)等处理模块中的一种或者多种的组合。
存储器801中存储有计算机程序,处理器802调用存储器801中存储的计算机程序,以执行上述图3、图4、图5、图6所示的Linux发行版本的构建方法:
获取配置信息,所述配置信息包括Linux发行版本、所述Linux发行版本的类型、所述Linux发行版本运行的平台架构;
根据所述配置信息,获得包列表,所述包列表包括构成所述Linux发行版本的一个或多个包;
确定与所述Linux发行版本对应的构建工具,以及确定与所述包列表对应的一个或多个软件源;
根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,所述目标Linux发行版本为满足所述配置信息的Linux发行版本。
上述处理器802执行方法的具体内容可参阅上述图3、图4、图5、图6,此处不再赘述。
相应的,处理器802调用存储器801中存储的计算机程序,还可以用于执行上述图7所示的构建装置70中的各个单元所执行的方法步骤,其具体内容可参阅上述图7,此处不再赘述。
在图8所描述的电子设备80中,通过获取与Linux发行版本相关的配置信息,可以根据该配置信息得到期望的目标Linux发行版本,实现定制Linux发行版本的功能特性,并且,可以降低Linux发行版本的开发难度,缩短开发周期,提高开发效率。
本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,当上述计算机程序在一个或多个处理器上运行时,可以实现上述图3、图4、图5以及图6所示的方法。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括计算机程序,当上述计算机程序产品在处理器上运行时,可以实现上述图3、图4、图5以及图6所示的方法。
本申请实施例还提供一种芯片,该芯片包括处理器,所述处理器用于执行指令,当该处理器执行所述指令时,可以实现上述图3、图4、图5以及图6所示的方法。可选的,该芯片还包括通信接口,该通信接口用于输入信号或输出信号。
本申请实施例还提供了一种系统,该系统包括了至少一个如上述构建装置70或电子设备80或芯片。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序相关的硬件完成,该计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:只读存储器ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储计算机程序代码的介质。

Claims (14)

1.一种Linux发行版本的构建方法,其特征在于,包括:
获取配置信息,所述配置信息包括Linux发行版本、所述Linux发行版本的类型、所述Linux发行版本运行的平台架构;
根据所述配置信息,获得包列表,所述包列表包括构成所述Linux发行版本的一个或多个包;
确定与所述Linux发行版本对应的构建工具,以及确定与所述包列表对应的一个或多个软件源;
根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,所述目标Linux发行版本为满足所述配置信息的Linux发行版本。
2.根据权利要求1所述的方法,其特征在于,所述根据所述配置信息,获得包列表,包括:
根据所述配置信息中的所述Linux发行版本,从官网获取所述Linux发行版本对应的包,得到所述包列表。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据接收到的删除指令,对所述包列表中的一个或多个包进行删除;或者,根据接收到的添加指令,往所述包列表中添加一个或多个包。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,包括:
获取构建指令,所述构建指令用于指示所述构建工具和所述一个或多个软件源根据所述包列表构建得到所述目标Linux发行版本;
输出所述目标Linux发行版本。
5.根据权利要求4所述的方法,其特征在于,所述输出所述目标Linux发行版本之前,所述方法还包括:
确定目标位置,所述目标位置用于存储所述目标Linux发行版本;
所述输出所述目标Linux发行版本,包括:
输出所述目标Linux发行版本至所述目标位置。
6.一种Linux发行版本的构建装置,其特征在于,包括:
获取单元,用于获取配置信息,所述配置信息包括Linux发行版本、所述Linux发行版本的类型、所述Linux发行版本运行的平台架构;
所述获取单元,用于根据所述配置信息,获得包列表,所述包列表包括构成所述Linux发行版本的一个或多个包;
确定单元,用于确定与所述Linux发行版本对应的构建工具,以及确定与所述包列表对应的一个或多个软件源;
构建单元,用于根据所述包列表、所述构建工具以及所述一个或多个软件源,输出目标Linux发行版本,所述目标Linux发行版本为满足所述配置信息的Linux发行版本。
7.根据权利要求6所述的装置,其特征在于,所述获取单元,具体用于根据所述配置信息中的所述Linux发行版本,从官网获取所述Linux发行版本对应的包,得到所述包列表。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
删除单元,用于根据接收到的删除指令,对所述包列表中的一个或多个包进行删除;或者,
添加单元,用于根据接收到的添加指令,往所述包列表中添加一个或多个包。
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述获取单元,还用于获取构建指令,所述构建指令用于指示所述构建工具和所述一个或多个软件源根据所述包列表构建得到所述目标Linux发行版本;
所述构建单元,用于输出所述目标Linux发行版本。
10.根据权利要求9所述的装置,其特征在于,所述确定单元,还用于确定目标位置,所述目标位置用于存储所述目标Linux发行版本;
所述构建单元,具体用于输出所述目标Linux发行版本至所述目标位置。
11.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述电子设备执行如权利要求1至5中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括:
所述计算机可读存储介质用于存储指令或计算机程序;当所述指令或所述计算机程序被执行时,使如权利要求1至5中任一项所述的方法被实现。
13.一种计算机程序产品,其特征在于,包括:指令或计算机程序;
所述指令或所述计算机程序被执行时,使如权利要求1至5中任一项所述的方法被实现。
14.一种芯片,其特征在于,包括:处理器;
所述处理器用于执行指令,以使所述芯片执行如权利要求1至5中任一项所述的方法。
CN202111151125.0A 2021-09-29 2021-09-29 一种Linux发行版本的构建方法及相关装置 Pending CN113961234A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111151125.0A CN113961234A (zh) 2021-09-29 2021-09-29 一种Linux发行版本的构建方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111151125.0A CN113961234A (zh) 2021-09-29 2021-09-29 一种Linux发行版本的构建方法及相关装置

Publications (1)

Publication Number Publication Date
CN113961234A true CN113961234A (zh) 2022-01-21

Family

ID=79463115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111151125.0A Pending CN113961234A (zh) 2021-09-29 2021-09-29 一种Linux发行版本的构建方法及相关装置

Country Status (1)

Country Link
CN (1) CN113961234A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116466958A (zh) * 2023-03-21 2023-07-21 摩尔线程智能科技(北京)有限责任公司 一种安卓容器构建方法及装置、电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116466958A (zh) * 2023-03-21 2023-07-21 摩尔线程智能科技(北京)有限责任公司 一种安卓容器构建方法及装置、电子设备和存储介质
CN116466958B (zh) * 2023-03-21 2023-11-21 摩尔线程智能科技(北京)有限责任公司 一种安卓容器构建方法及装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US10839141B2 (en) System and method for provisioning a mobile software application to a mobile device
US9158522B2 (en) Behavioral extensibility for mobile applications
WO2011101845A1 (en) Modified operating systems allowing mobile devices to accommodate io devices more convenient than their own inherent io devices and methods for generating such systems
WO2023093414A1 (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
CN111145745B (zh) 对话流程定制方法及装置
MacLean et al. Pro Android 5
CN113076163A (zh) 一种卡片渲染方法和装置
CN113961234A (zh) 一种Linux发行版本的构建方法及相关装置
CN111367506A (zh) 数据生成方法、装置、存储介质及电子装置
EP2540066A2 (en) System and method for providing end to end interactive mobile applications using sms
CN113407255A (zh) 组件调用方法、装置及计算机可读存储介质
CN113902387A (zh) 一种工作流的处理方法、装置及电子设备
WO2021097683A1 (zh) 安卓系统启动的方法、装置、设备及存储介质
US20220245206A1 (en) Process flow builder for user-configurable web component sequences
KR101482152B1 (ko) 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법
CN114547604A (zh) 一种应用检测方法、装置、存储介质及电子设备
US10768911B2 (en) Managing software components for software application development
CN107015787A (zh) 一种交互式应用框架设计的方法及装置
CN112632444A (zh) 可视化网站主题配置方法和装置
AFREEN Mobile Applications Development
Anderson Beginning Flash, Flex, and AIR Development for Mobile Devices
US11797638B2 (en) Aggregate component for parallel browser-initiated actions
Vavru et al. Android programming: Complete application programming guide
US20240078072A1 (en) Method and apparatus for displaying message box, terminal device and non-transitory computer-readable storage medium
CN116700694B (zh) 小程序引擎

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination