首页 / 专利库 / 软件 / 软件 / 一种大型Linux软件包的发布方法

一种大型Linux软件包的发布方法

阅读:851发布:2023-01-23

专利汇可以提供一种大型Linux软件包的发布方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及Linux 软件 发布领域,特别是指一种大型Linux 软件包 的发布方法。本发明的步骤是:安装最小的linux系统;获取安装日志并设置本地下载rpm的缓存;搭建制作iso的环境,创建一些工作目录;测试开发的软件的环境依赖并以rpm包的方式安装,并将下载下来的缓存内的rpm包拷贝到工作目录,注册;安装生成光盘的工具createrepo和mkisofs;编写ks.cfg系统自动安装的引导文件;生成,并 修改 copms.xml文件来引导系统的软件库到底需要安装哪一些rpm包及其rpm包的依赖关系;生成gcloud的iso文件,并进行MD5值得校验。本发明解决了大型Linux软件包发布的版本认证、受网络影响等问题;可以用于大型Linux软件包的发布。,下面是一种大型Linux软件包的发布方法专利的具体信息内容。

1.一种大型linux软件包的发布的方法,其特征在于:
包括如下步骤:
步骤1:使用Linux大型软件开发环境用的原版的Linux安装光盘,在服务器上安装Linux最小系统;
步骤2:安装完最小系统后,获取安装的日志文件;日志文件中包含系统已经安装的软件包列表;
步骤3:在系统中设置rpm包或deb包保留下载软件的缓存;
步骤4:搭建制作ISO的环境,创建制作的目录并把原版光盘中除了软件包以外的文件拷贝到工作目录中;
步骤5:在系统中安装Linux大型软件的依赖环境,然后安装Linux大型软件的软件包以验证依赖环境正确与否,直到Linux大型软件能正常运行为止;
步骤6:将系统软件缓存目录下的依赖软件的缓存也拷贝到工作目录中;
步骤7:安装生成光盘所需要的createrepo和mkisofs工具;
步骤8:编写ks.cfg文件,并使ISO系统从ks.cfg引导自动安装;
步骤9:在工作目录中重新生成软件包的xml描述文件即comps.xml文件,然后按需要重新编写comps.xml文件;
步骤10:生成ISO镜像文件;
步骤11:生成MD5校验码。
2.根据权利要求1所述的大型linux软件包的发布方法,其特征在于:所述的最小系统是指Linux安装光盘中包含的系统核心软件包和大型Linux软件依赖的软件包,其他的应用软件、桌面系统不需要选择安装。
3.根据权利要求1所述的大型linux软件包的发布方法,其特征在于:所述安装之后的日志文件是指/root/instal.llog文件,install.log文件包含了最小安装的系统所安装的包,通过命令
awk′/Installing/{print$2}′install.log|sed′s/^[0-9]*://g′>/root/packages.list
可以获取安装包的列表,并将安装包的列表导入到本地的一个文件当中;最后根据列表将安装的rpm包转移到工作目录下。
4.根据权利要求2所述的大型linux软件包的发布方法,其特征在于:所述安装之后的日志文件是指/root/instal.llog文件,install.log文件包含了最小安装的系统所安装的包,通过命令
awk′/Installing/{print$2}′install.log|sed′s/^[0-9]*://g′>/root/packages.list
可以获取安装包的列表,并将安装包的列表导入到本地的一个文件当中;最后根据列表将安装的rpm包转移到工作目录下。
5.根据权利要求1至4任一项所述的大型linux软件包的发布方法,其特征在于:所述的设置rpm包保留下载软件的缓存,是指将linux系统/etc/yum.conf配置文件中保留缓存的选项开启,此后下载的rpm包都缓存在/var/cache/yum/x86_64/6/目录下。
6.根据权利要求1至4任一项所述的大型linux软件包的发布方法,其特征在于:所述的生成comps.xml文件是将光盘的所有文件同步到制定的工作目录当中,然后在工作目录下的/repodata/目录里边生成相对应的comps.xml;生成comps.xml的命令是:createrepo-g repodata/*-comps.xml/data/OS/----simple-md-filenames,然后根据要求定制其下的组件和rpm包之间的依赖。
7.根据权利要求5所述的大型linux软件包的发布方法,其特征在于:所述的生成comps.xml文件是将光盘的所有文件同步到制定的工作目录当中,然后在工作目录下的/repodata/目录里边生成相对应的comps.xml;生成comps.xml的命令是:createrepo-g repodata/*-comps.xml/data/OS/----simple-md-filenames,然后根据要求定制其下的组件和rpm包之间的依赖。
8.根据权利要求2所述的大型linux软件包的发布方法,其特征在于:安装软件运行依赖的软件包,以及安装软件运行依赖的相关库文件,是指开发的软件编译之后运行需要的rpm包和rpm包的依赖;这些rpm包都是根据软件运行所需要的在安装的最小系统yum install里的相关的包;并记录下相关的依赖关系的列表,然后将依赖关系添加到comps.xml文件当中,并将/var/cache/yum/x86_64/6/目录里边相对应的rpm包拷贝到工作目录下的/packages/下边,同时在/packages/下边的TRANS.TBL的列表文件当中增加对应的rpm包的名称。
9.根据权利要求5所述的大型linux软件包的发布方法,其特征在于:安装软件运行依赖的软件包,以及安装软件运行依赖的相关库文件,是指开发的软件编译之后运行需要的rpm包和rpm包的依赖;这些rpm包都是根据软件运行所需要的在安装的最小系统yum install里的相关的包;并记录下相关的依赖关系的列表,然后将依赖关系添加到comps.xml文件当中,并将/var/cache/yum/x86_64/6/目录里边相对应的rpm包拷贝到工作目录下的/packages/下边,同时在/packages/下边的TRANS.TBL的列表文件当中增加对应的rpm包的名称。
10.根据权利要求6所述的大型linux软件包的发布方法,其特征在于:安装软件运行依赖的软件包,以及安装软件运行依赖的相关库文件,是指开发的软件编译之后运行需要的rpm包和rpm包的依赖;这些rpm包都是根据软件运行所需要的在安装的最小系统yum install里的相关的包;并记录下相关的依赖关系的列表,然后将依赖关系添加到comps.xml文件当中,并将/var/cache/yum/x86_64/6/目录里边相对应的rpm包拷贝到工作目录下的/packages/下边,同时在/packages/下边的TRANS.TBL的列表文件当中增加对应的rpm包的名称。

说明书全文

一种大型Linux软件包的发布方法

技术领域

[0001] 本发明涉及Linux软件发布领域,特别是指一种大型Linux软件包的发布方法。

背景技术

[0002] 大型Linux软件的特点是安装时间长、依赖的软件多。目前大型Linux软件的发布都是以rpm和deb软件包为载体,再辅以文档说明依赖软件的安装、安装后的验证方法等。
[0003] 但是,以上描述的大型Linux软件的发布方法存在如下的问题:
[0004] 1、需要做大量的工作以适配不同的Linux版本;大型Linux基于某个版本开发时,所依赖的Linux内核系统软件等可能都是在该版本下才能安装成功;在适配到其他Linux版本时可能都需要查找到替代的版本,同时要对替代的版本重新进行兼容性和稳定性的测试。
[0005] 2、此发布方法一般不直接提供依赖软件包的下载,用户一般只能通过文档的介绍,使用yum和apt工具从Linux软件源上下载相应的软件,这种方法的缺点第一是下载依赖于网络,在不能连接到因特网或内网没有搭建源的情况下,软件不能安装成功,第二是yum和apt工具默认只会下载依赖软件的最新版本,这种情况下安装的依赖对大型Linux软件来说可能出现不满足的情况。
[0006] 3、以rpm和deb软件包的形式发布的软件没有数据完整性检查机制,软件包在分发过程中有被篡改的可能,影响数据安全。
[0007] 为了提升软件的部署的效率,增强部署的快捷性和部署过程之中的软件的稳定性性,需要一种通过预先定制软件包的发布的光盘镜像系统,通过光盘的安装来达到稳定快速的安装的方式。

发明内容

[0008] 本发明解决的技术问题在于提供一种大型Linux软件包的发布方法,解决大量的rpm包的版本认证,在无网络的情况下rpm包的下载和相关依赖的下载,安全稳定的部署开发软件;减少数据的丢失或者不匹配的rpm包的安装引起的不稳定性等问题。
[0009] 本发明解决上述技术问题的技术方案是:包括如下步骤:
[0010] 包括如下步骤:
[0011] 步骤1:使用Linux大型软件开发环境用的原版的Linux安装光盘,在服务器上安装Linux最小系统;
[0012] 步骤2:安装完最小系统后,获取安装的日志文件;日志文件中包含系统已经安装的软件包列表;
[0013] 步骤3:在系统中设置rpm包或deb包保留下载软件的缓存;
[0014] 步骤4:搭建制作ISO的环境,创建制作的目录并把原版光盘中除了软件包以外的文件拷贝到工作目录中;
[0015] 步骤5:在系统中安装Linux大型软件的依赖环境,然后安装Linux大型软件的软件包以验证依赖环境正确与否,直到Linux大型软件能正常运行为止;
[0016] 步骤6:将系统软件缓存目录下的依赖软件的缓存也拷贝到工作目录中;
[0017] 步骤7:安装生成光盘所需要的createrepo和mkisofs工具;
[0018] 步骤8:编写ks.cfg文件,并使ISO系统从ks.cfg引导自动安装;
[0019] 步骤9:在工作目录中重新生成软件包的xml描述文件即comps.xml文件,然后按需要重新编写comps.xml文件;
[0020] 步骤10:生成ISO镜像文件;
[0021] 步骤11:生成MD5校验码。
[0022] 所述的最小系统是指Linux安装光盘中包含的系统核心软件包和大型Linux软件依赖的软件包,其他的应用软件、桌面系统不需要选择安装。
[0023] 所述安装之后的日志文件是指/root/instal.llog文件,install.log文件包含了最小安装的系统所安装的包,通过命令
[0024] awk′/Installing/{print$2}′install.log|sed′s/^[0-9]*://g′>/root/packages.list
[0025] 可以获取安装包的列表,并将安装包的列表导入到本地的一个文件当中;最后根据列表将安装的rpm包转移到工作目录下。
[0026] 所述的设置rpm包保留下载软件的缓存,是指将linux系统/etc/yum.conf配置文件中保留缓存的选项开启,此后下载的rpm包都缓存在/var/cache/yum/x86_64/6/目录下。
[0027] 所述的生成comps.xml文件是将光盘的所有文件同步到制定的工作目录当中,然后在工作目录下的/repodata/目录里边生成相对应的comps.xml;生成comps.xml的命令是:createrepo-g repodata/*-comps.xml/data/OS/----simple-md-filenames,然后根据要求定制其下的组件和rpm包之间的依赖。
[0028] 安装软件运行依赖的软件包,以及安装软件运行依赖的相关库文件,是指开发的软件编译之后运行需要的rpm包和rpm包的依赖;这些rpm包都是根据软件运行所需要的在安装的最小系统yum install里的相关的包;并记录下相关的依赖关系的列表,然后将依赖关系添加到comps.xml文件当中,并将/var/cache/yum/x86_64/6/目录里边相对应的rpm包拷贝到工作目录下的/packages/下边,同时在/packages/下边的TRANS.TBL的列表文件当中增加对应的rpm包的名称。
[0029] 本发明通过预先定制软件包的发布的光盘镜像系统,通过光盘的安装来达到稳定快速的安装的方式,提升了软件的部署的效率,增强了部署的快捷性和部署过程之中的软件的稳定性。同时,能够减少在软件使用的环境上搭需要的必须软件或者相关依赖库文件的时间的麻烦。附图说明
[0030] 下面结合附图对本发明进一步说明:
[0031] 附图是本发明方法流程图

具体实施方式

[0032] 首先创建制作系统的工作目录
[0033] (1)mkdir-p/mnt/cdrom
[0034] (2)mkdir-p/data/OS
[0035] (3)mount/dev/cdrom/mnt/cdrom
[0036] (4)rsync-a--exclude=Packages/mnt/cdrom/data/OS
[0037] (5)mkdir/data/OS/Packages
[0038] 然后使用编写的脚本实现精简之后的rpm拷贝到相应的目录下边,实现拷贝的脚本的内容如下:
[0039]
[0040]
[0041] 然后安装必要的实用工具:
[0042] yum-y install createrepo mkisofs
[0043] 然后生成comps.xml的文件
[0044] cd/data/OS
[0045] createrepo-g repodata/*-comps.xml/data/OS/----simple-md-filenames[0046] 然后根据coms.xml文件来增减和减少相关的依赖,来搭建gcloud的相关依赖的组建
[0047] 然后编写ks.cfg的文件,ks.cfg的文件内容如下:
[0048] cp/root/anaconda-ks.cfg/data/OS/isolinux/ks.cfg
[0049] Vi/data/OS/isolinux/ks.cfg
[0050] firewall--disabled
[0051] install
[0052] cdrom
[0053] rootpw--iscrypted$1$2nKbKr9J$sjwbbe62.txKtSLTKRyp1/
[0054] auth--useshadow--passalgo=sha512
[0055] text
[0056] keyboard us
[0057] lang en_US
[0058] selinux--disabled
[0059] skipx
[0060] logging--level=info
[0061] reboot--eject
[0062] timezone Asia/Shanghai
[0063] bootloader--location=mbr
[0064] zerombr
[0065] clearpart--all--initlabel
[0066] part/boot--fstype=″ext4″--size=256
[0067] part swap--fstype=″swap″--size=16000
[0068] part/--fstype=″ext4″--size=20000
[0069] %post
[0070] /etc/init.d/gtunneld start
[0071] /etc/init.d/iptables stop
[0072] chkconfig iptables off
[0073] chkconfig cgconfig on
[0074] chkconfig gtunneld on
[0075] mkdir/instances
[0076] mkdir/sharefiles
[0077] ulimit-c unlimited
[0078] echo″/usr/local/lib″>>/etc/ld.so.conf
[0079] echo″ldconfig/usr/local/lib″>>/etc/rc.local
[0080] echo″GcloudOS Linux release 6.1(Based on CentOS 6.4)″>/etc/centos-release
[0081] sed-i′s/CentOS release 6.4(Final)/GcloudOS Linux release 6.1(Based on CentOS 6.4)/g′/etc/issue
[0082] sed-i′s/CentOS release 6.4(Final)/GcloudOS Linux release 6.1(Based on CentOS 6.4)/g′/etc/issue.net
[0083] sed-i′s/localhost.localdomain/GcloudOS/g′/etc/sysconfig/network[0084] sed-i′s/CentOS/GcloudOS/g′/etc/rc.d/rc.sysinit
[0085] sed-i′s/rhgb//g′/boot/grub/grub.conf
[0086] sed-i″s/enforcing/disabled/g″/etc/selinux/config
[0087] sed-i″/unix_sock_group/s/#unix_sock_group/unix_sock_group/g″/etc/libvirt/libvirtd.conf
[0088] sed-i″/unix_sock_group/s/libvirt/root/g″/etc/libvirt/libvirtd.conf[0089] sed-i″/unix_sock_rw_perms/s/#unix_sock_rw_perms/unix_sock_rw_perms/g″/etc/libvirt/libvirtd.conf
[0090] sed-i″/unix_sock_ro_perms/s/#unix_sock_ro_perms/unix_sock_ro_perms/g″/etc/libvirt/libvirtd.conf
[0091] sed-i″/unix_sock_rw_perms/s/0770/0777/g″/etc/libvirt/libvirtd.conf[0092] sed-i″/security_driver/s/#security_driver/security_driver/g″/etc/libvirt/qemu.conf
[0093] sed-i″/security_driver/s#selinux#none#g″/etc/libvirt/qemu.conf[0094] sed-i″/#user/s/#user/user/g″/etc/libvirt/qemu.conf
[0095] sed-i″/#group/s/#group/user/g″/etc/libvirt/qemu.conf
[0096] /etc/init.d/libvirtd restart
[0097] %end
[0098] %packages
[0099] @base
[0100] 然后配置系统从ks.cfg启动
[0101] vi/data/OS/isolinux/isolinux.cfg
[0102] default auto
[0103] label auto
[0104] kernel vmlinuz
[0105] append ks=cdrom:/isolinux/kerry.cfg initrd=initrd.img[0106] 然后制作系统iso
[0107] mkisofs-R-J-T-r-l-d-joliet-long-allow-multidot-allow-leading-dots-no-bak-o/data/Gcloud-6.1-r009-20-ks-all-noPP-100G-x86_64.iso-b isolinux/isolinux.bin-cisolinux/boot.cat-no-emul-boot-boot-load-size 4-boot-info-table/data/OS
[0108] 然后生成生成MD5检验码完成GCLOUD的系统光盘
[0109] /usr/bin/implantisomd5/data/Gcloud-6.1-r009-20-ks-all-noPP-100G-x86_64.iso。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈