CN116909569A - deb软件包的制作方法、装置、设备及存储介质 - Google Patents

deb软件包的制作方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116909569A
CN116909569A CN202310914770.6A CN202310914770A CN116909569A CN 116909569 A CN116909569 A CN 116909569A CN 202310914770 A CN202310914770 A CN 202310914770A CN 116909569 A CN116909569 A CN 116909569A
Authority
CN
China
Prior art keywords
information
target
deb
software
file
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
CN202310914770.6A
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.)
Yusur Technology Co ltd
Original Assignee
Yusur Technology 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 Yusur Technology Co ltd filed Critical Yusur Technology Co ltd
Priority to CN202310914770.6A priority Critical patent/CN116909569A/zh
Publication of CN116909569A publication Critical patent/CN116909569A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本公开涉及一种deb软件包的制作方法、装置、设备及存储介质。本公开通过对目标软件的源码进行编译,得到编译产物;响应于用户的spec文件编写操作,生成目标软件的spec文件;基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息;基于目标信息,构建deb包的control文件;基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包,可以利用制作rpm包的spec文件直接生成deb包的control文件,基于control文件制作deb软件包,无需单独准备control文件的制作材料,极大节省deb包的制作时间,提高deb包的制作效率,并且可以基于spec文件同时制作rpm包和deb包,提高软件包的制作效率。

Description

deb软件包的制作方法、装置、设备及存储介质
技术领域
本公开涉及软件包制作技术领域,尤其涉及一种deb软件包的制作方法、装置、设备及存储介质。
背景技术
目前Linux系统下的软件包的制作格式基本分为两种,一种软件包的格式为rpm,一种软件包的格式为deb,一般情况下,对于一个软件,两种格式的软件包均需要构建。目前rpm包的构建方式是基于spec文件,通过命令rpmbuild来进行构建,deb包的构建方式是基于control文件及其他脚本文件,通过dpkg-buildpackage进行构建,
deb包的构建流程比rpm包的构建流程复杂,相对于rpm包的构建来说,deb包的构建需要准备的材料要复杂得多,并且对于文件的权限和格式极其严格,对于一个deb包打包新手来说,需耗费大量时间,并且在构建deb包时,还需要将上游代码包和dsc文件放在仓库内,加大了仓库的负担。因此,亟需一种简单有效的deb软件包的制作方法来满足当前需要。
发明内容
为了解决上述技术问题,本公开提供了一种deb软件包的制作方法、装置、设备及存储介质。
本公开的第一方面提供了一种deb软件包的制作方法,该方法包括:
对目标软件的源码进行编译,得到编译产物;
响应于用户的spec文件编写操作,生成目标软件的spec文件;
基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息;
基于目标信息,构建deb包的control文件;
基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包。
本公开的第二方面提供了一种deb软件包的制作装置,该装置包括:
编译模块,用于对目标软件的源码进行编译,得到编译产物;
生成模块,用于响应于用户的spec文件编写操作,生成目标软件的spec文件;
第一提取模块,用于基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息;
构建模块,用于基于目标信息,构建deb包的control文件;
打包模块,用于基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包。
本公开的第三方面提供了一种计算机设备,包括存储器和处理器,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,可以实现上述第一方面的deb软件包的制作方法。
本公开的第四方面提供了一种计算机可读存储介质,存储介质中存储有计算机程序,当计算机程序被处理器执行时,可以实现上述第一方面的deb软件包的制作方法。
本公开提供的技术方案与现有技术相比具有如下优点:
本公开通过对目标软件的源码进行编译,得到编译产物,响应于用户的spec文件编写操作,生成目标软件的spec文件;基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息;基于目标信息,构建deb包的control文件;基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包,可以利用制作rpm包的spec文件直接生成deb包的control文件,基于control文件制作deb软件包,无需单独准备control文件的制作材料,极大节省deb包的制作时间,提高deb包的制作效率,并且可以基于spec文件同时制作rpm包和deb包,提高软件包的制作效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种deb软件包的制作方法的流程图;
图2是本公开实施例提供的一种deb软件包的制作方法的流程图;
图3是本公开实施例提供的一种deb软件包的制作装置的结构示意图;
图4是本公开实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
目前Linux系统下的软件包的制作格式基本分为两种,一种软件包的格式为rpm,一种软件包的格式为deb,一般情况下,对于一个软件,两种格式的软件包均需要构建。目前rpm包的构建方式是基于spec文件,通过命令rpmbuild来进行构建,deb包的构建方式是基于control文件及其他脚本文件,通过dpkg-buildpackage进行构建,
deb包的构建流程比rpm包的构建流程复杂,相对于rpm包的构建来说,deb包的构建需要准备的材料要复杂得多,并且对于文件的权限和格式极其严格,对于一个deb包打包新手来说,需耗费大量时间,并且在构建deb包时,还需要将上游代码包和dsc文件放在仓库内,加大了仓库的负担。因此,亟需一种简单有效的deb软件包的制作方法来满足当前需要。
针对相关技术在deb包制作方面存在的缺陷,本公开实施例提供了一种deb软件包的制作方法、装置、设备及存储介质,可以利用制作rpm包的spec文件直接生成deb包的control文件,基于control文件制作deb软件包,无需单独准备control文件的制作材料,极大节省deb包的制作时间,提高deb包的制作效率,并且可以基于spec文件同时制作rpm包和deb包,提高软件包的制作效率。
本公开实施例提供的deb软件包的制作方法,可以由一种计算机设备来执行,该设备可以被理解为任意一种具有处理能力和计算能力的设备,该设备可以包括但不限于诸如智能手机、笔记本电脑、个人数字助理(PDA)、平板电脑(PAD)、便携式多媒体播放器(PMP)、车载终端、可穿戴设备等的移动终端,以及诸如数字TV、台式计算机、智能家居设备等的固定电子设备。
为了更好的理解本公开实施例的发明构思,下面结合示例性的实施例对本公开实施例的技术方案进行说明。
图1是本公开实施例提供的一种deb软件包的制作方法的流程图,如图1所示,本实施例提供的deb软件包的制作方法包括如下步骤:
步骤110、对目标软件的源码进行编译,得到编译产物。
本公开实施例中的编译产物可以理解为对目标软件的源码进行编译得到的可执行文件和配置文件。
目标软件为待打包的软件。
本公开实施例中,计算机设备可以在Debian系统中对目标软件的源码进行编译,得到编译产物。Debian系统可以理解为能够进行deb包制作的Linux系统,可以包括Debian及其衍生版如ubuntu等系统。
步骤120、响应于用户的spec文件编写操作,生成目标软件的spec文件。
本公开实施例中,spec文件可以理解为rpm软件包的配置规范文件,是rpm软件包构建过程的核心,可以包括包名、维护脚本、安装依赖、编译依赖、主页、维护信息、更新日志等信息。
本公开实施例中,用户可以根据目标软件的信息,在计算机设备上进行spec文件编写操作,计算机设备可以响应于用户的spec文件编写操作,生成目标软件的spec文件。
步骤130、基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息。
本公开实施例中,在获得spec文件之后,计算机设备可以基于预设的提取脚本,从spec文件中提取目标信息,目标信息可以理解为构建deb包的control文件所需的必要信息。
control文件可以理解为一种用来控制deb软件包配置的规范文件,是deb软件包构建过程的核心。
预设的提取脚本可以理解为预设的从spec文件中提取control文件的目标信息的脚本,预设的提取脚本可以是基于perl语言制作的脚本。
目标信息至少包括目标软件的软件包名(package)、版本(version)、适用架构(architecture)、维护信息(maintainer)和说明(description)、。
具体的,计算机设备可以提取spec文件中目标软件的软件名称(name),将软件名称转换为小写格式,得到目标软件的软件包名;
计算机设备可以提取spec文件中目标软件的发行版本(released version),得到目标软件的版本;
计算机设备可以从spec文件的拓展宏(%{_arch})中提取目标软件的适用架构;
计算机设备可以从spec文件中提取目标软件的维护信息;
计算机设备可以提取spec文件中目标软件的总结信息(summary),得到目标软件的说明。
步骤140、基于目标信息,构建deb包的control文件。
本公开实施例中,在获得目标信息之后,计算机设备可以基于目标信息,构建deb包的control文件。
在一些实施例中,基于目标信息,构建deb包的control文件,可以包括步骤1401-1402:
步骤1401、确定目标信息中各子信息对应的control文件中的目标配置项。
本公开实施例中,在获得目标信息之后,计算机设备可以确定目标信息中各子信息对应的control文件中的目标配置项。例如,可以根据子信息与control文件的配置项的对应关系,确定目标信息中的各子信息对应的control文件中的目标配置项。其中,目标信息中的子信息至少为目标软件的软件包名、版本、适用架构、维护信息和说明。
步骤1402、针对目标信息中的每个子信息,将子信息添加到control文件中子信息对应的目标配置项中,得到deb包的control文件。
本公开实施例中,针对目标信息中的每个子信息,计算机设备可以将该子信息添加到control文件中该子信息对应的目标配置项中,得到deb包的control文件。
具体的,可以将目标软件的软件包名添加到control文件的包名配置项中;将目标软件的版本添加到control文件的软件版本配置项中;将目标软件的适用架构添加到control文件的架构配置项中;将目标软件的说明添加到control文件的说明配置项中。
在一些实施例中,计算机设备可以将control文件存放在预设目录中,例如DEBIAN目录。
步骤150、基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包。
本公开实施例中,在获得control文件之后,计算机设备可以基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包。其中,预设打包命令可以根据需要进行设定,例如dpkg打包命令,这里不作限定。
在一些实施例中,计算机设备可以获取目标软件的源码;执行pax命令,对control文件和目标软件的源码进行打包,得到目标软件的sdeb包。
本公开实施例,通过对目标软件的源码进行编译,得到编译产物;响应于用户的spec文件编写操作,生成目标软件的spec文件;基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息;基于目标信息,构建deb包的control文件;基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包,可以利用制作rpm包的spec文件直接生成deb包的control文件,基于control文件制作deb软件包,无需单独准备control文件的制作材料,极大节省deb包的制作时间,提高deb包的制作效率,并且可以基于spec文件同时制作rpm包和deb包,提高软件包的制作效率。
在本公开的一些实施例中,上述基于目标信息,构建deb包的control文件之后,计算机设备还可以执行如下操作:
提取spec文件中目标软件的需求信息(requires),得到目标软件的依赖信息(depends);将依赖信息添加到control文件中的依赖配置项中。
和/或,将control文件中目标软件的重要度(priority)设置为可选的(optional)。
和/或,提取spec文件中目标软件的统一资源定位信息(Uniform ResourceLocator,URL),得到目标软件的主页信息(homepage);将主页信息添加到control文件中的主页配置项中。
和/或,基于预设计算命令,计算目标软件的安装包大小(installed-size);将安装包大小添加到control文件中的安装包配置项中。其中,预设计算命令可以根据需要进行设定,例如du-s-a命令,这里不作具体限定。
由此,可以完善control文件的信息。
在本公开的另一些实施例中,基于目标信息,构建deb包的control文件之后,计算机设备还可以将control文件中目标配置项之外的其他配置项的信息设置为空;用户可以对其他配置项中至少一项配置项的信息进行设置操作,计算机设备可以响应于用户对其他配置项中至少一项配置项信息的设置操作,生成至少一项配置项的信息。例如,用户可以对control文件中的类型(section)配置项的信息进行设置操作,计算机设备可以响应于用户对类型配置项信息的设置操作,生成类型配置项的类型信息。类型为目标软件的类型,可以包括网络类型、游戏类型等。由此,可以完善control文件的信息。
图2是本公开实施例提供的一种deb软件包的制作方法的流程图,如图2所示,本实施例提供的deb软件包的制作方法包括如下步骤:
步驟210、创建存放各种文件的工作目录,并创建编译操作所需要的安装依赖和编译依赖,得到编译环境。
本公开实施例中,计算机设备可以在Debian系统中模拟rpm包的构建流程,创建存放各种文件的工作目录,并创建编译操作所需要的安装依赖和编译依赖,得到编译环境。
工作目录可以包括源码目录(%{_sourcedir})、构建目录(%{_builddir})、根目录(%{buildroot})、spec目录(%{specdir})等目录,源码目录为用来存放目标软件的源码包的目录,构建目录为用来存放源码包解压后的源码文件、编译产物和补丁文件的目录,根目录为用来自定义存放可执行文件和配置文件等文件的目录,spec目录为用来存放spec文件的目录。
安装依赖可以理解为编译源码需要的正确的系统环境。
编译依赖可以理解为编译环境或编译工具,例如make、cmake等。
在一些实施例中,计算机设备可以判断Debian系统中是否存在编译操作所需要的安装依赖和编译依赖,若存在,则无需创建安装依赖和编译依赖,若不存在,则创建编译操作所需要的安装依赖和编译依赖。
步驟220、基于编译环境,对目标软件的源码进行编译,得到编译产物。
本公开实施例中,在构建编译环境之后,计算机设备可以基于编译环境,对目标软件的源码进行编译,得到编译产物。
编译产物可以包括目标软件的可执行代码和配置文件等文件。
具体的,计算机设备可以对源码目录中的目标软件的源码包进行解压,将解压得到的源码文件存放至构建目录,并在源码文件中应用所有的补丁(patch)文件,然后对源码文件进行配置,通过编译工具对源码进行编译,得到编译产物。
步驟230、响应于用户的spec文件编写操作,生成目标软件的spec文件。
步驟240、基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息。
步驟250、基于目标信息,构建deb包的control文件。
步驟260、基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包。
本公开实施例中的步骤230-260的内容可以参考上述步骤120-150的内容,这里不再赘述。
由此,可以利用制作rpm包的spec文件直接生成deb包的control文件,基于control文件制作deb软件包,无需单独准备control文件的制作材料,极大节省deb包的制作时间,提高deb包的制作效率,并且可以基于spec文件同时制作rpm包和deb包,提高软件包的制作效率。。
图3是本公开实施例提供的一种deb软件包的制作装置的结构示意图,该装置可以被理解为上述计算机设备或者上述计算机设备中的部分功能模块。如图3所示,该deb软件包的制作装置300包括:
编译模块310,用于对目标软件的源码进行编译,得到编译产物;
生成模块320,用于响应于用户的spec文件编写操作,生成目标软件的spec文件;
第一提取模块330,用于基于预设的提取脚本,从spec文件中提取目标信息,目标信息为构建deb包的control文件所需的必要信息;
构建模块340,用于基于目标信息,构建deb包的control文件;
打包模块350,用于基于control文件和编译产物,执行预设打包命令,生成目标软件的deb包。
可选的,上述编译模块310包括:
创建子模块,用于创建存放各种文件的工作目录,并创建编译操作所需要的安装依赖和编译依赖,得到编译环境;
编译子模块,用于基于编译环境,对目标软件的源码进行编译,得到编译产物。
可选的,上述目标信息至少包括目标软件的软件包名、版本、适用架构、维护信息和说明。
可选的,上述第一提取模块330包括:
第一提取子模块,用于提取spec文件中目标软件的软件名称,将软件名称转换为小写格式,得到目标软件的软件包名;
第二提取子模块,用于提取spec文件中目标软件的发行版本,得到目标软件的版本;
第三提取子模块,用于从spec文件的拓展宏中提取目标软件的适用架构;
第四提取子模块,用于从spec文件中提取目标软件的维护信息;
第五提取子模块,用于提取spec文件中目标软件的总结信息,得到目标软件的说明。
可选的,上述构建模块340包括:
确定子模块,用于确定目标信息中的各子信息对应的control文件中的目标配置项;
添加子模块,用于针对目标信息中的每个子信息,将子信息添加到control文件中子信息对应的目标配置项中,得到deb包的control文件。
可选的,上述deb软件包的制作装置300包括:
第二提取模块,用于提取spec文件中所述目标软件的需求信息,得到目标软件的依赖信息;
第一添加模块,用于将依赖信息添加到所述control文件中的依赖配置项中;
和/或,设置模块,用于将control文件中目标软件的重要度设置为可选的;
和/或,第二提取模块,用于提取spec文件中目标软件的统一资源定位信息,得到目标软件的主页信息;
第二添加模块,用于将主页信息添加到control文件中的主页配置项中;
和/或,计算模块,用于基于预设计算命令,计算目标软件的安装包大小;
第三添加模块,用于将安装包大小添加到control文件中的安装包配置项中。
可选的,上述deb软件包的制作装置300包括:
设置子模块,用于将control文件中目标配置项之外的其他配置项的信息设置为空;
生成子模块,用于响应于用户对其他配置项中至少一项目标配置项信息的设置操作,生成至少一项目标配置项的信息。
本公开实施例提供的deb软件包的制作装置可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
本公开实施例还提供一种计算机设备,该计算机设备包括处理器和存储器,其中,存储器中存储有计算机程序,当该计算机程序被该处理器执行时可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
本公开实施例中的计算机设备可以被理解为任意一种具有处理能力和计算能力的设备,该设备可以包括但不限于诸如智能手机、笔记本电脑、个人数字助理(PDA)、平板电脑(PAD)、便携式多媒体播放器(PMP)、车载终端、可穿戴设备等的移动终端,以及诸如数字TV、台式计算机、智能家居设备等的固定电子设备。
图4是本公开实施例提供的一种计算机设备的结构示意图,如图4所示,计算机设备400可以包括处理器410和存储器420,其中,存储器420中存储有计算机程序421,当该计算机程序421被该处理器410执行时可以实现上述任一实施例提供的方法,其执行方式和有益效果类似,在这里不再赘述。
当然,为了简化,图4中仅示出了该计算机设备400中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口、输入装置和输出装置等的组件。除此之外,根据具体应用情况,计算机设备400还可以包括任何其他适当的组件。
本公开实施例提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
上述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
上述计算机程序可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算机设备上部分在远程计算机设备上执行、或者完全在远程计算机设备或服务器上执行。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种deb软件包的制作方法,其特征在于,包括:
对目标软件的源码进行编译,得到编译产物;
响应于用户的spec文件编写操作,生成所述目标软件的spec文件;
基于预设的提取脚本,从所述spec文件中提取目标信息,所述目标信息为构建deb包的control文件所需的必要信息;
基于所述目标信息,构建deb包的control文件;
基于所述control文件和所述编译产物,执行预设打包命令,生成所述目标软件的deb包。
2.根据权利要求1所述的方法,其特征在于,所述对目标软件的源码进行编译,得到编译产物,包括:
创建存放各种文件的工作目录,并创建编译操作所需要的安装依赖和编译依赖,得到编译环境;
基于所述编译环境,对所述目标软件的源码进行编译,得到编译产物。
3.根据权利要求1所述的方法,其特征在于,所述目标信息至少包括所述目标软件的软件包名、版本、适用架构、维护信息和说明。
4.根据权利要求3所述的方法,其特征在于,所述基于预设的提取脚本,从所述spec文件中提取目标信息,包括:
提取所述spec文件中所述目标软件的软件名称,将所述软件名称转换为小写格式,得到所述目标软件的软件包名;
提取所述spec文件中所述目标软件的发行版本,得到所述目标软件的版本;
从所述spec文件的拓展宏中提取所述目标软件的适用架构;
从所述spec文件中提取所述目标软件的维护信息;
提取所述spec文件中所述目标软件的总结信息,得到所述目标软件的说明。
5.根据权利要求1所述的方法,其特征在于,所述基于所述目标信息,构建deb包的control文件,包括:
确定所述目标信息中各子信息对应的control文件中的目标配置项;
针对所述目标信息中的每个子信息,将所述子信息添加到control文件中所述子信息对应的目标配置项中,得到deb包的control文件。
6.根据权利要求1所述的方法,其特征在于,所述基于所述目标信息,构建deb包的control文件之后,所述方法还包括:
提取所述spec文件中所述目标软件的需求信息,得到所述目标软件的依赖信息;
将所述依赖信息添加到所述control文件中的依赖配置项中;
和/或,将所述control文件中所述目标软件的重要度设置为可选的;
和/或,提取所述spec文件中所述目标软件的统一资源定位信息,得到所述目标软件的主页信息;
将所述主页信息添加到所述control文件中的主页配置项中;
和/或,基于预设计算命令,计算所述目标软件的安装包大小;
将所述安装包大小添加到所述control文件中的安装包配置项中。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标信息,构建deb包的control文件之后,所述方法还包括:
将所述control文件中所述目标配置项之外的其他配置项的信息设置为空;
响应于用户对所述其他配置项中至少一项配置项信息的设置操作,生成所述至少一项配置项的信息。
8.一种deb软件包的制作装置,其特征在于,包括:
编译模块,用于对目标软件的源码进行编译,得到编译产物;
生成模块,用于响应于用户的spec文件编写操作,生成所述目标软件的spec文件;
第一提取模块,用于基于预设的提取脚本,从所述spec文件中提取目标信息,所述目标信息为构建deb包的control文件所需的必要信息;
构建模块,用于基于所述目标信息,构建deb包的control文件;
打包模块,用于基于所述control文件和所述编译产物,执行预设打包命令,生成所述目标软件的deb包。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1-7中任一项所述的deb软件包的制作方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-7中任一项所述的deb软件包的制作方法。
CN202310914770.6A 2023-07-24 2023-07-24 deb软件包的制作方法、装置、设备及存储介质 Pending CN116909569A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310914770.6A CN116909569A (zh) 2023-07-24 2023-07-24 deb软件包的制作方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310914770.6A CN116909569A (zh) 2023-07-24 2023-07-24 deb软件包的制作方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116909569A true CN116909569A (zh) 2023-10-20

Family

ID=88362684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310914770.6A Pending CN116909569A (zh) 2023-07-24 2023-07-24 deb软件包的制作方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116909569A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127170A1 (en) * 2006-08-29 2008-05-29 Oliver Goldman Software installation and support
CN103440156A (zh) * 2013-08-15 2013-12-11 国云科技股份有限公司 一种能用于多种系统下的Linux软件包制作方法
CN105242877A (zh) * 2015-09-29 2016-01-13 浪潮电子信息产业股份有限公司 一种Linux下硬件RAID管理方法
CN111831291A (zh) * 2020-06-22 2020-10-27 中孚信息股份有限公司 一种安装包转换构建及转换系统及方法
CN113031958A (zh) * 2021-03-02 2021-06-25 长沙景嘉微电子股份有限公司 支持多内核版本的驱动安装包生成方法、安装方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127170A1 (en) * 2006-08-29 2008-05-29 Oliver Goldman Software installation and support
CN103440156A (zh) * 2013-08-15 2013-12-11 国云科技股份有限公司 一种能用于多种系统下的Linux软件包制作方法
CN105242877A (zh) * 2015-09-29 2016-01-13 浪潮电子信息产业股份有限公司 一种Linux下硬件RAID管理方法
CN111831291A (zh) * 2020-06-22 2020-10-27 中孚信息股份有限公司 一种安装包转换构建及转换系统及方法
CN113031958A (zh) * 2021-03-02 2021-06-25 长沙景嘉微电子股份有限公司 支持多内核版本的驱动安装包生成方法、安装方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEIXIN_34362991: "Debian安装包的简单制作", pages 1 - 3, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_34362991/article/details/89795167> *

Similar Documents

Publication Publication Date Title
CN107918666B (zh) 一种区块链上的数据同步方法和系统
CN105224370A (zh) 一种加载elf文件的方法和装置
US10565293B2 (en) Synchronizing DOM element references
US9841953B2 (en) Pluggable components for runtime-image generation
US7784026B1 (en) Web application internationalization
CN102741811A (zh) 改善基于模板的JavaScript小部件的性能
KR102156371B1 (ko) 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
KR20130086138A (ko) 크로스―플랫폼 어플리케이션 프레임워크
CN109739600B (zh) 数据处理方法、介质、装置和计算设备
CN103761107A (zh) 软件包定制的装置及方法
CN106202158A (zh) 一种图形文件格式的使用方法及装置
CN113918195A (zh) 应用界面更新方法、装置、电子设备及可读存储介质
CN103995696A (zh) 移动终端的程序包定制系统及定制方法
CN103605520A (zh) Rpm软件包转换方法及转换系统
CN110489162B (zh) 安装包so文件精简方法、装置、介质和设备
CN112835568A (zh) 一种项目构建方法和装置
CN111984300B (zh) 代码复制方法及装置、电子设备和计算机可读存储介质
CN117707543A (zh) 一种应用安装包制作和安装方法、计算设备及存储介质
KR102141749B1 (ko) App 프로그램 실행 방법 및 장치
CN108376074B (zh) 一种基于嵌入式系统的RancherOS ros核心模块移植方法
CN112612489A (zh) 软件的升级包构建方法、装置和电子设备
CN112817595A (zh) 界面渲染方法、装置、存储介质及电子设备
CN116909569A (zh) deb软件包的制作方法、装置、设备及存储介质
CN111610908B (zh) 一种生成框架图的方法、计算机设备及可读存储介质
US9720660B2 (en) Binary interface instrumentation

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