CN111880808A - 一种Linux操作系统构建和包管理方法 - Google Patents
一种Linux操作系统构建和包管理方法 Download PDFInfo
- Publication number
- CN111880808A CN111880808A CN202010792072.XA CN202010792072A CN111880808A CN 111880808 A CN111880808 A CN 111880808A CN 202010792072 A CN202010792072 A CN 202010792072A CN 111880808 A CN111880808 A CN 111880808A
- Authority
- CN
- China
- Prior art keywords
- operating system
- linux operating
- software package
- environment
- software
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 30
- 238000010276 construction Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims description 25
- 238000011144 upstream manufacturing Methods 0.000 claims description 17
- 238000013515 script Methods 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration 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
一种Linux操作系统构建和包管理方法,本发明让Linux操作系统的构建、软件包管理和文件管理变得更加灵活可控,让系统构建者和系统用户,对软件包和相应文件的归属一目了然。使系统构建者可根据需求灵活选择采用何种Linux操作系统构建方式,如何去管理软件包,系统该具备哪些功能,以及软件包或文件遇到问题需要修复时,都将变得易如反掌。
Description
技术领域
本发明涉及Linux操作系统构建技术,尤其涉及Linux\Unix类(Linux属于Unix类操作系统)操作系统一种软件包的安装方法及管理方法。
背景技术
在构建Linux操作系统时,主要采用以下两种方式:
1、采用软件源代码编译构建,根据需求从源代码编译构建系统。系统构建者可以根据需求选择需要编译的软件包来构建Linux操作系统,默认无软件包管理器;
2、采用Redhat、Debian、ArchLinux和Slackware等上游Linux操作系统发行版软件包和软件包管理器进行系统构建,系统构建者无需考虑软件包的管理和兼容问题。
无论采用何种方式构建Linux操作系统,都涉及软件包及文件的管理和维护。优点是构建系统时无需考虑软件包的构建方式和独立管理。缺点是管理软件包和文件困难,依赖特定发行版软件包和包管理器,一旦软件包出现问题处理起来将会非常困难。
从源码编译构建方式默认并不提供软件包和文件的管理,所有软件包和文件均默认安装至根目录相对应位置。
采用其他发行版软件包及软件包管理方式构建操作系统,同样将软件包和文件安装至根目录相对应位置,并通过软件包管理器记录软包基本信息和文件位置等。
本发明为了规避软件包和文件管理混乱,并考虑不受发行版软件包格式和文件的约束,回归Unix类操作系统本质,一切皆文件,一切皆可控。在不依赖特定Linux操作系统发行版和特定软件包管理器的情况下构建Linux操作系统并管理软件包和文件。所有软件包和文件的安装均不受路径限制,可根据需求对软件包和文件路径进行规划。
本发明让Linux操作系统的构建、软件包管理和文件管理更加灵活可控,让系统构建者和系统用户,对软件包和相应文件的归属一目了然。使系统构建者可根据需求灵活选择采用何种Linux操作系统构建方式,如何去管理软件包,系统该具备哪些功能,以及软件包或文件遇到问题需要修复时,都将变得易如反掌。
本发明可以让各发行版专用软件包运行于其它发行版,让软件包的运行不在依赖于特定发行版,本发明适用于各类linux发行版和部分Unix类操作系统的软件包管理及运行。
本发明可根据需求,选择完全采用从源码编译构建方式或从上游发行版软件包进行系统构建,亦可选择从源码编译软件包结合上游发行版软件包进行混合构建,只需保证构建系统所需软件包版本和依赖版本相适配。
本发明适用但不限于x86_64、arm、sparc、mips、powerpcmips、alpha、sparc、RISC-V、1.x Release Manager、ppc64、龙芯、飞腾、鲲鹏、申威、海光、兆芯、麒麟等架构的Linux操作系统和Unix类操作系统的构建及软件包管理。
发明内容
本发明的目的是提供一种不依赖特定发行版软件包和软件包管理器的Linux操作系统构建方法,并实现各发行版软件包的通用(程序运行)和管理。
为了实现上述目的,本发明提供一种Linux操作系统的构建方法,该方法包括:在宿主系统上建立系统构建环境,该环境包括支持从源代码编译构建Linux操作系统的软件包编译环境和软件源码管理环境,支持从上游发行版软件包构建Linux操作系统的软件包管理环境、模拟文件系统及测试运行环境。
本发明所提供的构建Linux操作系统所支持的软件包方法:
1、第一种软件包构建方法:支持采用从源码编译软件包,采用本发明构建Linux操作系统;
2、第二种软件包构建方法:支持采用单一上游发行版或多套上游发行版的软件包,采用本发明构建Linux操作系统;
3、第三种软件包构建方法:支持从源码编译软件包并结合各上游发行版软件包,采用本发明构建Linux操作系统。
通常为了降低构建linux操作系统的时间成本和软件兼容性,多采用第三种方法构建系统。
该方法能够有效降低Linux操作系统的构建难度、避免软件包及文件管理混乱,并且可提高Linux操作系统的构建效率,有效降低Linux操作系统构建准入门槛,降低Linux操作系统的管理和维护难度。
所述方法还包括:在所述宿主系统上存储所述待构建的Linux系统的软件源码包、上游Linux发行版软件包和本发明的配套工具等。
为确保科学高效并精细化管理系统,可将系统划分为HFS标准Linux系统目录和自定义目录,目录规划如下:
1、遵循HFS3.0标准目录
bin Essential command binaries;
boot Static files of the boot loader;
dev Device files;
etc Host-specific system configuration;
lib Essential shared libraries and kernel modules;
media Mount point for removable media;
mnt Mount point for mounting a filesystem temporarily;
opt Add-on application software packages;
run Data relevant to running processes;
sbin Essential system binaries;
srv Data for services provided by this system;
tmp Temporary files;
usr Secondary hierarchy;
var Variable data;
2、自定义目录
basesystem 基础系统软件包目录;
baselibs 基础库目录;
security 安全软件目录;
net 网络软件目录;
multimedia 多媒体相关软件目录;
X11 图形化管理目录;
hardware 硬件相关软件目录;
scripts 自定义系统脚本;
pkg 其它软件包目录。
通过目录规划,软件包目录和文件都安装至自定义目录,HFS标准目录存放各软件包目录和文件链接,实现各软件的运行和管理。
通过本发明,使用各发行版配套解包工具,将所需发行版软件包进行解包,并将软件包按照HFS标准连接到对应位置,软件即可运行。
在系统的使用中,所有软件在HFS标准目录的交互都是与各软件的链接文件进行,在发生文件毁坏或丢失时,只需修复链接文件即可,如涉及原文件可直接采用本发明和配套工具快速定位损坏的文件和软件包进行重装、修复链接文件即可。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分与具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
1、图1示出了本发明所提供的从源代码编译软件包构建Linux操作系统方法的流程图;
2、图2示出了本发明所提供的从上游发行版软件包构建Linux操作系统方法的流程图;
3、图3示出了本发明所提供的从源代码编译软件包并结合上游发行版软件包的混合方式,构建Linux操作系统方法的流程图。
具体实施方式
以下结合附图3对本发明的具体实施方式进行详细说明,图3基本涵盖了图1和图2的内容。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图3示出了本发明所提供的从源代码编译构建Linux操作系统并结合上游发行版软件包的混合方式,构建Linux操作系统的的流程图。按如图3所示,本发明所提供的构建Linux操作系统方法包括步骤S310~步骤S360。
步骤S310:在宿主系统上建立系统构建环境,根据目标主机架构搭建编译环境。该环境包括支持从源代码编译构建Linux操作系统的软件包编译环境和软件源码管理环境,支持从上游发行版软件包构建Linux操作系统的软件包管理环境、模拟文件系统及测试运行环境。
步骤S320:获取所需软件源码包存放至源码管理环境,并进行编译。获取所需上游软件包存放至软件包管理环境。可以根据需求对于待构建的Linux操作系统来配置内核选项,例如:配置CPU运行模式、硬盘模式、网卡设置、配套硬件驱动、所需文件系统等。确定内核配置后,编译Linux内核,并接着执行步骤S330。
步骤S330:将编译好的Linux内核、软件包和上游软件包进行解包,安装至规划好的模拟文件系统和自定义位置,并接着执行步骤S340。
步骤S340:结合本发明编写配套脚本工具,将自定义目录的各个软件包的目录和文件按照HFS标准,链接至模拟文件系统对应位置,创建系统配置文件,以建立系统和各软件包依赖运行环境。配置文件包括但不限于Linux系统启动所需的引导文件、网络配置、环境变量配置、启动脚本等。
步骤S350:在宿主系统下将模拟文件系统进行打包备份,创建系统安装包。
步骤S360:将构建完成的系统安装包,安装至目标主机。至此,完成linux系统的构建和运行。
本发明所提供的Linux操作系统的定制方法,适用于各种平台架构,支持跨平台交叉编译和目标平台发行版软件包的方式构建Linux操作系统,可降低了Linux系统定制的难度,提高了Linux系统定制的效率,通过编写自动化脚本,可以实现无人值守时Linux操作系统的快速构建。
以上结合附图详细描述了本发明的实施方式。但是,本发明并不限于上述实施方式中的具体细节。在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可
能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (7)
1.一种Linux操作系统构建和包管理方法,其特征在于,该方法包括:在宿主系统上建立系统构建环境,该环境包括支持从源代码编译构建Linux操作系统的软件包编译环境和软件源码管理环境,支持从上游发行版软件包构建Linux操作系统的软件包管理环境、模拟文件系统及测试运行环境;完整构建Linux操作系统,以及将构建完成所述Linux操作系统安装至目标主机。
2.根据权利要求1所述的方法,其特征在于,在所述构建环境中按需求构建Linux操作系统包括:在所述构建环境中编译所述待构建的Linux操作系统的源码;以及所需上游发行版软件包解包安装,根据目标主机规格参数和系统需求创建配置文件,并配置内核选项。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述宿主系统上存储所述待构建的Linux操作系统的源码、上游发行版软件包和配套脚本。
4.根据权利要求2所述的方法,其特征在于,在所述构建环境中编译用于待构建的所述Linux操作系统还包括:在所述构建环境中创建针对所述待构建的Linux操作系统的环境配置文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述目标主机编译扩展软件安装脚本,该软件的安装脚本根据所述待构建的 Linux操作系统需求而被编写。
6.根据权利要求1所述的方法,其特征在于,所述宿主系统为基于X86架构的Linux操作系 统;构建目标适用但不限于x86_64、arm、sparc、mips、powerpcmips、alpha、sparc、RISC-V、1.x Release Manager、ppc64、龙芯、飞腾、鲲鹏、申威、海光、兆芯、麒麟等架构的Linux操作系统和Unix类操作系统。
7.根据权利要求1所述的方法,其特征在于,所述方法不局限于从源代码编译构Linux操作系统、从上游发行版软件包构建Linux操作系统、从源码编译软件包并结合各上游发行版软件包构建的Linux操作系统和软件包安装管理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010792072.XA CN111880808A (zh) | 2020-08-08 | 2020-08-08 | 一种Linux操作系统构建和包管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010792072.XA CN111880808A (zh) | 2020-08-08 | 2020-08-08 | 一种Linux操作系统构建和包管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111880808A true CN111880808A (zh) | 2020-11-03 |
Family
ID=73211075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010792072.XA Pending CN111880808A (zh) | 2020-08-08 | 2020-08-08 | 一种Linux操作系统构建和包管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880808A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986395A (zh) * | 2021-11-08 | 2022-01-28 | 麒麟软件有限公司 | 一种linux系统下应用依赖自包含技术的打包方法 |
CN114416031A (zh) * | 2021-12-27 | 2022-04-29 | 中国科学院软件研究所 | 面向AIoT场景支持RISC-V处理器的操作系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053831A (zh) * | 2010-12-10 | 2011-05-11 | 浪潮(北京)电子信息产业有限公司 | 一种Linux操作系统的定制方法及系统 |
CN103440156A (zh) * | 2013-08-15 | 2013-12-11 | 国云科技股份有限公司 | 一种能用于多种系统下的Linux软件包制作方法 |
CN108614701A (zh) * | 2016-12-26 | 2018-10-02 | 中移(苏州)软件技术有限公司 | 一种Linux操作系统定制方法及装置 |
-
2020
- 2020-08-08 CN CN202010792072.XA patent/CN111880808A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053831A (zh) * | 2010-12-10 | 2011-05-11 | 浪潮(北京)电子信息产业有限公司 | 一种Linux操作系统的定制方法及系统 |
CN103440156A (zh) * | 2013-08-15 | 2013-12-11 | 国云科技股份有限公司 | 一种能用于多种系统下的Linux软件包制作方法 |
CN108614701A (zh) * | 2016-12-26 | 2018-10-02 | 中移(苏州)软件技术有限公司 | 一种Linux操作系统定制方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986395A (zh) * | 2021-11-08 | 2022-01-28 | 麒麟软件有限公司 | 一种linux系统下应用依赖自包含技术的打包方法 |
CN113986395B (zh) * | 2021-11-08 | 2023-06-23 | 麒麟软件有限公司 | 一种linux系统下应用依赖自包含技术的打包方法 |
CN114416031A (zh) * | 2021-12-27 | 2022-04-29 | 中国科学院软件研究所 | 面向AIoT场景支持RISC-V处理器的操作系统 |
CN114416031B (zh) * | 2021-12-27 | 2022-09-16 | 中国科学院软件研究所 | 面向AIoT场景支持RISC-V处理器的操作系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744709B (zh) | 补丁加载方法及装置 | |
CN112416524A (zh) | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN111061638B (zh) | 一种iOS系统调试的方法、装置及服务器 | |
KR101213275B1 (ko) | 무선 장치에서 사용할모놀리식(monolithic)이미지를 제공하기 위한시스템 및 방법 | |
CN102156643A (zh) | 软件集成方法及系统 | |
CN113064595B (zh) | 一种基于Docker镜像的QT应用程序编译方法和装置 | |
CN111880808A (zh) | 一种Linux操作系统构建和包管理方法 | |
US20150149756A1 (en) | System and method for setting up a bootable storage device using image | |
CN110727440A (zh) | 一种软件封装方法 | |
CN102541609B (zh) | 安装程序制作方法、装置及网络设备 | |
Canon et al. | A case for portability and reproducibility of HPC containers | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
CN105516154A (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN112486505A (zh) | 容器化跨平台操作系统映像构建方法 | |
US20130227572A1 (en) | Test device, a system, a program and a method | |
CN112631600A (zh) | 基于Flutter的软件构建方法和系统 | |
CN110750310B (zh) | 基于ios系统组件化开发的二进制和源码切换方法 | |
Boyer et al. | Architecture-based automated updates of distributed microservices | |
CN107544813B (zh) | 一种静态库配置的切换方法和系统 | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
CN117008934A (zh) | 自动制作信创操作系统镜像的方法、装置、设备及介质 | |
Becker et al. | Managing combinatorial software installations with spack | |
CN115145604A (zh) | 一种容器化的电力营销系统部署方法 | |
KR100478463B1 (ko) | 응용 프로그램의 동적링크 방법 |
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 |