CN101714089A - 安装套件的方法及制作套件映像文件的方法 - Google Patents
安装套件的方法及制作套件映像文件的方法 Download PDFInfo
- Publication number
- CN101714089A CN101714089A CN200810166174A CN200810166174A CN101714089A CN 101714089 A CN101714089 A CN 101714089A CN 200810166174 A CN200810166174 A CN 200810166174A CN 200810166174 A CN200810166174 A CN 200810166174A CN 101714089 A CN101714089 A CN 101714089A
- Authority
- CN
- China
- Prior art keywords
- external member
- file
- catalogue
- operating system
- snapshot
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种安装套件的方法及制作套件映像文件的方法。在本发明中,在制作套件时,先比对套件中与操作系统重复的文件,以将差异的内容储存至套件的文件中。之后,将套件的映像文件挂载至操作系统底下。当操作系统中已存在与套件相同的文件时,则将差异的内容至整合操作系统的文件中。
Description
技术领域
本发明是有关于一种安装套件的方法,且特别是有关于在不更动操作系统原有的文件之下,安装套件的方法。
背景技术
一般而言,即用光盘(Live CD)是一种不需要安装到硬盘,即能够激活执行的操作系统。利用光驱来读取即用光盘,以从即用光盘来开机。即用光盘会将所储存的映像文件解压缩至计算机内的随机存取存储磁盘(RAM disk)里,以在随机存取存储磁盘建立一个可以执行的一个环境。由于即用光盘中已经具备操作系统,因而免除安装以及后续维护的困扰。更因为即用光盘不需要使用硬盘,亦毋需担心当机(crash),重新安装、设定等问题
然而,即用光盘的只读既是其优点,亦是其缺点。使用者并无法在使用即用光盘之下安装其它软件。因此,为了解决此一缺点,则发展出了套件外挂至RAM disk上,利用RAM disk的可修改性来达成外挂的目的。
然而,以目前Linux系统中的套件管理方式而言,往往复杂且不易使用,并且亦耗费大量磁盘空间,也因此通常需要系统管理权限才能操作。而许多额外的解决方案亦普遍存在以下困扰:需要重新编译、缺乏套件维护意愿、内存用量增加、以及不易整合至既有系统。
发明内容
有鉴于此,本发明提供一种制作套件的方法,能够直接制作而无需编译。
另外,本发明提供一种安装套件的方法,能够在不影响操作系统中原始的文件,安装另一套件至操作系统中。
本发明提出一种安装套件的方法。首先,制作套件的映像文件。之后,挂载套件的映像文件至操作系统底下,上述套件包括可擦写的第一文件以及只读的第二文件。接着,分别将第一文件与第二文件新增至操作系统的第一路径与第二路径之下。倘若第一路径中已存在第一文件,则比较两个第一文件差异的内容,以将差异的内容至整合第一路径的第一文件中。
在本发明的一实施例中,上述制作套件的映像文件的步骤,首先更新套件清单,套件清单中包括多个子套件。接着,新增快照目录至操作系统之下。然后,安装这些子套件至快照目录。最后,将这些子套件压缩为映像文件(例如为压缩只读文件系统的格式)。
在本发明的一实施例中,上述在安装这些子套件至快照目录的步骤,先比对快照目录的第一文件与操作系统的第一文件。之后,再依据两者差异的内容为新增或删除,给予对应的一记号给上述内容,以将上述内容储存至套件的第一文件中。
在本发明的一实施例中,安装套件的方法还包括将操作系统加载至存储单元中,以建立安装目录、只读目录以及可擦写目录。其中,只读目录对应第二路径,可擦写目录对应第一路径。
在本发明的一实施例中,上述挂载套件的映像文件至操作系统底下的步骤,是将套件的映像文件挂载至安装目录下。而上述将第一文件与第二文件分别新增至对应的目录之下的步骤,则是将第一文件新增至可擦写目录底下,将第二文件以只读模式加入至只读目录之下。
在本发明的一实施例中,上述操作系统例如为Linux操作系统。
本发明提出一种制作套件映像文件的方法。首先,在操作系统中,更新套件清单,套件清单包括多个子套件。接着,新增快照目录至操作系统之下。之后,安装这些子套件至快照目录。然后,比对快照目录的文件与操作系统中相同的文件,以将两者差异的内容储存至快照目录的文件中。最后,将这些子套件压缩为一映像文件。
在本发明的一实施例中,上述在安装子套件至快照目录的步骤之后,还可在操作系统的暂存目录下,新增只读目录与可擦写目录。并且,将快照目录下的主系统文件复制到只读目录,以及将快照目录下的设定文件复制到可擦写目录。最后,便可将暂存目录下的文件压缩为映像文件。
在本发明的一实施例中,上述在安装子套件至快照目录的步骤之后,还可依据差异的内容为新增或删除,给予对应的一记号给内容,以储存至可擦写目录的文件中。
综上所述,本发明在安装套件时,倘若存储单元中已经存在同样的文件时,则判断两者之间的差别,而将差异的内容储存至存储单元中而不覆盖原有的文件。另外,更能够在套件制作时,即比对套件中与操作系统重复的文件,以将两者的差异记录于套件中。因此,能够在不影响操作系统中原始的文件,将套件安装至操作系统中。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1是依照本发明一实施例所绘示的安装套件的方法流程图。
图2是依照本发明一实施例所绘示的制作套件的方法流程图。
具体实施方式
为了使本发明的内容更为明了,以下特举实施例作为本发明确实能够据以实施的范例。
图1是依照本发明一实施例所绘示的安装套件的方法流程图。在本实施例中,是以Linux操作系统的即用光盘(Live CD)为例,并且,此Linux操作系统具有将多个目录合并在一起的机制(例如,合众文件系统,UnionFS)。
请参照图1,首先,在步骤S100中,制作套件的映像文件。例如,
接着,在步骤S105中,将套件的映像文件挂载至Linux操作系统底下。套件包括可擦写的第一文件(设定文件)以及只读的第二文件(主系统文件)。
举例来说,当Live CD放入光驱时,Live CD中的Linux操作系统的映像文件将被解压缩至存储单元。进一步地说,在使用Live CD开机时,计算机系统的一部份存储单元会被虚拟成磁盘,也就是随机存取存储磁盘(RAM disk)。而Linux操作系统的映像文件将被解压缩到至RAM disk中,也就是Linux操作系统会被加载至存储单元中,并在存储单元中建立安装目录、只读目录以及可擦写目录等目录架构。
其中,安装目录例如为opt目录,是用来安装外挂的套件。只读目录例如为rofs目录,是用来存放套件的主系统文件(即第二文件)。可擦写目录例如为cow目录,是用来存放套件中的设定文件(即第一文件)。
当欲外挂套件时,套件必须存在于Linux操作系统的目录架构中,才能利用目录架构来存取此一套件。据此,将外挂的套件挂载至opt目录之下。例如,利用mount指令将套件的映像文件挂载至opt目录。
一般而言,外挂在Opt目录的套件是利用核心的回路(loopback)机制(位于/dev/loop/底下)来进行挂载。在旧有的Linux核心,回路设备(loopback device)的数量是有限制的。一般预设为8个套件,最多仅可增加至256个套件。在本实施例中,可利用一个修补程序(patch)将此部份修正为以“max_loop”参数动态指定,因此将可以忽略原本的限制,而安装任意数量的套件。
接着,在步骤S110中,分别将第一文件与第二文件新增至Linux操作系统的第一路径与第二路径之下。也就是将opt目录下的设定文件新增至cow目录底下,并将opt目录下的主系统文件以只读模式加入至rofs目录底下。
之后,在步骤S115中,当第一路径中已存在第一文件时,比较两个第一文件差异的内容,以将差异的内容至整合第一路径的第一文件中。换言之,当可擦写目录中已经存在相同的设定文件时,则比对两个设定文件的差异内容,而将差异内容整合至可擦写目录中已经存在的设定文件中,而非直接进行覆盖。据此,Linux操作系统中原本存在的设定文件才不会被覆盖掉,导致影响到Linux操作系统的运作情况。
举例来说,依据cow目录的文件A的内容为新增或删除,而给予对应的记号,以记录至的cow目录的文件A中。当外挂的文件A比起cow目录的文件A中为新增一内容时,给予此内容对应的记号为“++”,而当外挂的文件A比起cow目录的文件A中为删除一内容时,给予此内容对应的记号为“--”,如表1所示。因此,可将差异的内容整合至原本的文件A中,例如仅将“ccc”新增于文件A中。
原本的文件A | 外挂的文件A | 差异的内容 |
aaabbb | bbbccc | --aaa++ccc |
值得一提的是,还可以在制作套件的时候,即先比对原本Linux操作系统中重复的设定文件,以将差异的内容储存至套件中。以下再举一实施例来说明制作套件的方法。
图2是依照本发明一实施例所绘示的安装套件的方法流程图。请参照图2,在步骤S205中,更新一套件清单内的子套件。以高级套件工具(Advanced PackageTool,APT)而言,即是利用“apt-get update”指令来更新套件清单。
接着,在步骤S210中,建立一快照目录,并以只读模式将快照目录新增至rofs目录之下。之后,在步骤S215中,再通过APT将套件清单中的子套件安装至快照目录下,也就是利用“apt-get install”指令。并且,将不需要的目录清除。
然后,在步骤S220中,比对快照目录的设定文件与Linux操作系统中重复的设定文件,以将差异内容储存至快照目录下的设定文件中。详细地说,依据两者差异的内容为新增或删除,给予对应的记号,例如“++”以及“--”。之后,再将差异的内容储存至快照目录的文件中,如表1所示。
最后,如步骤S225所示,便可将这些子套件压缩为压缩只读文件系统(compressed read-only file system)的格式。举例来说,可先在暂存目录(/tmp)下建立两个子目录,以分别将快照目录中的设定文件与主系统文件移至暂存目录的子目录之下。之后,再利用SquashFS将暂存目录下的文件压缩为映像文件。
据此,在安装此一套件时,可以只将“ccc”这行内容新增至文件A当中。如此作法将保有和原系统的差异内容,在安装与移除都将不影响原本系统的运作。原本文件A中的“aaa”也不会因为安装外挂后被覆盖消失。
另外,此领域具有通常知识者可以计算机程序的形式实现上述诸实施例,并利用计算机可读取储存媒体储存此一计算机程序,以利计算机系统执行之,以电子自动化的方式完成上述安装套件的方法。
综上所述,在上述实施例中,由于舍弃覆盖而采取整合套件中与操作系统相同文件的方式,使得挂载的套件不会影响到操作系统中重复的文件。并且,由于最终只需储存“和原本系统有差异的内容”,仅将此部份复制到存储单元当中,因此文件的大小在使用套件管理系统的情况下差距会非常明显,甚至可达到数十兆位(megabyte)左右。据此,得以节省下存储单元的使用空间。此外,更可直接制作套件而无需编译,且多个子套件得以压缩在同一套件上,在使用上更将方便。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许更动与润饰,因此本发明的保护范围当以权利要求所界定的为准。
Claims (12)
1.一种安装套件的方法,包括:
制作一套件的映像文件;
挂载该套件的映像文件至一操作系统底下,其中该套件包括可擦写的一第一文件以及只读的一第二文件;
分别将该第一文件与该第二文件新增至该操作系统的一第一路径与一第二路径;以及
当该第一路径中已存在该第一文件时,比较上述两个第一文件差异的一内容,以整合该内容至该第一路径的该第一文件中。
2.如权利要求1所述的安装套件的方法,其特征在于,制作该套件的映像文件的步骤,包括:
在该操作系统中,更新一套件清单,该套件清单包括多个子套件;
新增一快照目录至该操作系统之下;
安装该些子套件至该快照目录;以及
压缩该些子套件为映像文件。
3.如权利要求2所述的套件安装的方法,其特征在于,在安装该些子套件至该快照目录的步骤之后,还包括:
比对该快照目录的该第一文件与该操作系统的该第一文件,以将两者差异的一内容储存至该套件的该第一文件中。
4.如权利要求1所述的安装套件的方法,其特征在于,还包括:
将该操作系统加载至一存储单元中,以建立一安装目录、一只读目录以及一可擦写目录,其中该只读目录对应该第二路径,该可擦写目录对应该第一路径。
5.如权利要求4所述的安装套件的方法,其特征在于,挂载该套件的映像文件至该操作系统底下的步骤,包括:
挂载该套件的映像文件至该安装目录下。
6.如权利要求4所述的安装套件的方法,其特征在于,分别将该第一文件与该第二文件新增至该操作系统的该第一路径与该第二路径的步骤,更包括:
将该第一文件新增至该可擦写目录底下;以及
将该第二文件以只读模式加入至该只读目录之下。
7.如权利要求1所述的套件安装的方法,其特征在于,该操作系统为Linux操作系统。
8.如权利要求1所述的套件安装的方法,其特征在于,还包括:
修改该操作系统的外挂数量。
9.一种制作套件映像文件的方法,包括:
在一操作系统中,更新一套件清单,该套件清单包括多个子套件;
新增一快照目录至该操作系统之下;
安装该些子套件至该快照目录;
比对该快照目录的一文件与该操作系统中相同的该文件,以将两者差异的内容储存至该快照目录的该文件中;以及
压缩该些子套件为一映像文件。
10.如权利要求9所述的制作套件映像文件的方法,其特征在于,在安装该些子套件至该快照目录的步骤之后,还包括:
在该操作系统的一暂存目录下,新增一只读目录与一可擦写目录;
将该快照目录下的主系统文件复制到该只读目录;以及
将该快照目录下的设定文件复制到该可擦写目录。
11.如权利要求10所述的制作套件映像文件的方法,其特征在于,在安装该些子套件至该快照目录的步骤之后,还包括:
依据差异的该内容为新增或删除,给予对应的一记号给该内容,以储存至该可擦写目录的该文件中。
12.如权利要求9所述的制作套件映像文件的方法,其特征在于,该映像文件为压缩只读文件系统的格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810166174A CN101714089A (zh) | 2008-10-07 | 2008-10-07 | 安装套件的方法及制作套件映像文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810166174A CN101714089A (zh) | 2008-10-07 | 2008-10-07 | 安装套件的方法及制作套件映像文件的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101714089A true CN101714089A (zh) | 2010-05-26 |
Family
ID=42417757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810166174A Pending CN101714089A (zh) | 2008-10-07 | 2008-10-07 | 安装套件的方法及制作套件映像文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101714089A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033766A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种存储操作系统的升级方法 |
CN104809021B (zh) * | 2014-01-29 | 2018-05-15 | 李锦峰 | 多重作业环境服务的管理系统及管理方法 |
CN112579357A (zh) * | 2020-12-23 | 2021-03-30 | 苏州三六零智能安全科技有限公司 | 快照差量获取方法、装置、设备及存储介质 |
-
2008
- 2008-10-07 CN CN200810166174A patent/CN101714089A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033766A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种存储操作系统的升级方法 |
CN102033766B (zh) * | 2010-12-01 | 2013-06-12 | 北京同有飞骥科技股份有限公司 | 一种存储操作系统的升级方法 |
CN104809021B (zh) * | 2014-01-29 | 2018-05-15 | 李锦峰 | 多重作业环境服务的管理系统及管理方法 |
CN112579357A (zh) * | 2020-12-23 | 2021-03-30 | 苏州三六零智能安全科技有限公司 | 快照差量获取方法、装置、设备及存储介质 |
CN112579357B (zh) * | 2020-12-23 | 2022-11-04 | 苏州三六零智能安全科技有限公司 | 快照差量获取方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521031B (zh) | 移动终端预置应用程序的管理方法和移动终端 | |
JP5007046B2 (ja) | コンポーネントベースのソフトウェア・プロダクトの保守 | |
JP5113700B2 (ja) | ファームウェア更新装置及び方法 | |
CN102831173B (zh) | 基于Android系统的内存扩展方法、装置及终端设备 | |
CN102193817B (zh) | 简化物理和虚拟部署的管理 | |
US9542228B2 (en) | Image processing apparatus, control method thereof and storage medium | |
US8752039B1 (en) | Dynamic upgrade of operating system in a network device | |
CN107870769B (zh) | 操作系统的安装方法及装置 | |
KR102107843B1 (ko) | 펌웨어 업데이트 방법 및 이를 사용한 전자 기기 | |
GB2434667A (en) | Maintaining System Management BIOS in a computer system | |
CN105739961A (zh) | 一种嵌入式系统的启动方法和装置 | |
CN104317623A (zh) | 移动终端预置应用程序的管理方法和移动终端 | |
CN106598651A (zh) | 一种嵌入式系统及该系统的升级方法 | |
US20090307676A1 (en) | Dead Functions Elimination in Dynamic Linked Libraries for Code Size Reduction of Operating Systems in Embedded Systems | |
CN110597568B (zh) | 一种插件部署方法、系统及终端 | |
CN103677937A (zh) | 升级软件和运行软件的方法及装置 | |
CN101714089A (zh) | 安装套件的方法及制作套件映像文件的方法 | |
CN1601467A (zh) | 一种嵌入式设备应用软件的定制方法 | |
JP2007510211A (ja) | コンピュータ装置におけるダイナミック・リンク・ライブラリのマッピング | |
KR100648817B1 (ko) | 자동 펌웨어 업데이트 시스템 및 그 방법 | |
CN101582029B (zh) | 一种实现嵌入式应用的系统和方法 | |
CN100550744C (zh) | 对网元设备进行配置的方法 | |
CN102591691B (zh) | 硬盘启动方法和基于bios的操作系统启动加载方法 | |
KR100640389B1 (ko) | Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치 | |
CN102298531A (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100526 |