QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2834|回复: 6

请 cjacker 和 yufei 看一下安装程序开发...

[复制链接]
发表于 2003-6-11 11:18:50 | 显示全部楼层 |阅读模式


浏览了一些关于安装程序开发的帖子,主要是关于功能需求和实现方法的。
当然事情还是必须一件一件地做。所以先做什么,后做什么得有个规划。
由于安装程序规模比较大,所以一定要分解成几个里程碑。一个一个地完成、
测试。

首先说说我对安装程序的理解。安装程序在最宏观的角度上看,主要分:
1、建立完整的安装程序运行环境(包括内核、RootFS);
2、收集信息(自动探测和从用户处获得);
3、获取被安装软件(ISO或 RPMS);
4、写入目标媒体(比如说写入本地硬盘的某个或某些分区)。

其中1、3 的不同组合,就构成了不同的安装方式(例如光盘安装、硬盘安装、
网络安装)之类的。

从我的经验来看,1 有这么几种可能性:
1.1、从光盘启动、从光盘获取完整的运行环境。只有这种情况必须将运行环境
分成两部分。第一部分受到 1.44M 的限制,仅完整寻找光驱,加载第二部分
rootfs 的任务。第二部分含有完整的 rootfs。
1.2、从 syslinux、lilo、grub 之类的 bootloader 启动。rootfs 不受限制,因此
不需要分成两步。
1.3、从 Windows 环境以 loadlin 启动。rootfs 不受限制,不需要分成两步。
1.4、从网络启动。类似 NC。这个具体我就不太清楚了。
如果还有其它可能性,请不吝赐教。

3  则有以下几种可能性:
3.1、从光盘获得。可能因为一张 CD 的容量有限,在安装过程中需要更换光盘。
3.2、从硬盘某分区中的 ISO 文件获得。
3.3、从硬盘某分区中的 RPMS/ 目录中直接获得 rpm 包。
3.4、从网络通过nfs、samba、ftp 或 http 协议获得 rpm 包。
3.5、从网络通过 nfs、samba、ftp 或 http 协议获得 iso 文件 (由于远程 mount
的 iso 文件无法通过 mount -o loop 加载,所以只能先下载到本地再 mount,
这样就要求比较大的硬盘空间)
如果还有其它可能性,请不吝赐教。

我想以上可能性,应该包括大部分需求了(网络集群安装除外)。集群安装后面
再讨论。

收集信息的方式有两大类,2.1、自行获取;2.2、从网络上下载。
这里 2.2 从网络下载的收集信息的方式,就可以让安装过程完全自动化,从而
也就实现了集群安装。当然,这还要求安装程序在以 2.1 的方式获取信息后,
生成一个小服务器以发送安装信息。
2.1 自行收集信息包括:
2.1.1、鼠标键盘检测;
2.1.2、默认语言选择、支持语言选择
2.1.3、存储设备检测(IDE硬盘/光盘、SCSI 硬盘/光盘)
2.1.4、网络设备的检测和配置;
2.1.5、读取现有分区,获取用户分区要求
2.1.6、账号设置
2.1.7、声卡检测
2.1.8、显卡检测
2.1.9、启动那些系统服务
2.1.10、安装那些软件(选择 rpm 包)
等等等等。这个太具体了,而且根据功能需求会有增减,所以只大概罗列一下。

4 就比较简单了。

根据以上分析,安装程序开发里程碑看下个帖子吧。
 楼主| 发表于 2003-6-11 12:41:09 | 显示全部楼层
上个帖太长,写起来花好长时间,所以分一下。

里程碑我想也许可以分为以下几个:

A、完成安装程序运行环境。
具体包括:
A.1、光盘第一文件系统的开发。类似于 anaconda 中的 loader。此 fs 只用于 光盘启动。
A.2、rootfs 文件系统的开发。
A.3、内核。
所需达到的目标是:能够以上文 1.1-1.4中任意一种方式启动,并启动一个
demo-installer。该  demo-installer 只显示一个含有中文的对话框。

B、安装程序框架。
此框架包括:
B.1、保存所收集信息的机制;
B.2、必要的界面支持和运作机制;
B.3、基本配置信息的收集,包括 rpm 获取方式的选择,为获取 rpm 而必须的
硬件检测和配置;
所需达到的目标是:能够以上文 3.1-3.5 的各种方式得到 rpm 包,并能够保存
、传播已经检测到的配置。

C、实现分区功能。
分区是难点,集中攻关把。

D、实现其它配置检测、收集。
这里就仅仅是扩展原来的安装程序框架,补充必要的功能。

E、实现 rpm 包的选择。

F、分成其它必要功能。

里程碑 A、B 是首先要考虑的。含有那些功能可以通过讨论来取舍。
以后的里程碑可以再讨论。

开发的话一定要有 CVS 服务器,否则根本无从下手。

先说这些,请高手们点评,指教。
回复

使用道具 举报

发表于 2003-6-11 13:01:45 | 显示全部楼层
[quote:9c70d336f4="charlesw"]上个帖太长,写起来花好长时间,所以分一下。

里程碑我想也许可以分为以下几个:

A、完成安装程序运行环境。
具体包括:
A.1、光盘第一文件系统的开发。类似于 anaconda 中的 loader。此 fs 只用于 光盘启动。
A.2、rootfs 文件系统的开发。
A.3、内核。
所需达到的目标是:能够以上文 1.1-1.4中任意一种方式启动,并启动一个
demo-installer。该  demo-installer 只显示一个含有中文的对话框。

B、安装程序框架。
此框架包括:
B.1、保存所收集信息的机制;
B.2、必要的界面支持和运作机制;
B.3、基本配置信息的收集,包括 rpm 获取方式的选择,为获取 rpm 而必须的
硬件检测和配置;
所需达到的目标是:能够以上文 3.1-3.5 的各种方式得到 rpm 包,并能够保存
、传播已经检测到的配置。

C、实现分区功能。
分区是难点,集中攻关把。

D、实现其它配置检测、收集。
这里就仅仅是扩展原来的安装程序框架,补充必要的功能。

E、实现 rpm 包的选择。

F、分成其它必要功能。

里程碑 A、B 是首先要考虑的。含有那些功能可以通过讨论来取舍。
以后的里程碑可以再讨论。

开发的话一定要有 CVS 服务器,否则根本无从下手。

先说这些,请高手们点评,指教。[/quote]

思路很清晰。
回复

使用道具 举报

发表于 2003-6-12 08:50:06 | 显示全部楼层

请继续:-D

请继续
我会尽可能解决所有需求问题。
回复

使用道具 举报

 楼主| 发表于 2003-6-12 12:46:18 | 显示全部楼层

Re: 请继续:-D

[quote:cdb6061228="cjacker"]请继续
我会尽可能解决所有需求问题。[/quote]

呵呵,你说的需求问题,是指的什么呢?是需求分析,还是资源分配?
要是资源的话,至少两种资源,一个是 CVS 服务器,另一个是人手。
这两者都很重要的哦。

相关连接:
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=27583

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=27582
回复

使用道具 举报

发表于 2003-6-12 19:24:10 | 显示全部楼层
1.可以到 http://sf.linuxforum.net 或 http://www.sourceforge.net 上申请 CVS 空间,简单注册一下就行了,个人建议使用前者。毕竟在国内。如果当局再封杀一次,那可受不了!或者为了安全,在后者上作一个镜像。
:-)
2.邮件列表可以到 http://i18n.linux.net.cn 上申请,毕竟是我们 i18n 的老家,不仅有极其严格的防垃圾邮件机制,而且是封闭的,远比上述地点的邮件列表安全得多。这点我想 lark 不会有意见的,他是个开明的人。
:-)
3.CVS+mailing list 是国际标准的开发模式,大规模开发,这是必然趋势。
回复

使用道具 举报

发表于 2003-6-15 11:59:52 | 显示全部楼层
国内还有cosoft和http://gro.clinux.org/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-18 04:04 , Processed in 0.197011 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表