极限首页 业界焦点 软件工程师之路 系统工程师之路 网络工程师之路 软件下载 技术社区
 体验 Wine: Windows 到 Li
 Linux操作系统打印机配置全
 驱动SD/MMC读卡器
 redhat 安装程序 anaconda
 构造Linux的图形化安装程序
 使用Linux实现负载均衡
 Xen和虚拟化技术(一)
 Linux 操作系统安装盘的定
 在Linux上实现高可用服务
 如何在Linux使用宽屏
 体验 Wine: Windows 到 Li
 Linux操作系统打印机配置全
 驱动SD/MMC读卡器
 redhat 安装程序 anaconda
 构造Linux的图形化安装程序
 使用Linux实现负载均衡
 Xen和虚拟化技术(一)
 Linux 操作系统安装盘的定
 在Linux上实现高可用服务
 如何在Linux使用宽屏

Shell 中文手册

Python 2.3 中文手册

Python 2.4 中文手册

Mysql 4.x 中文手册

PHP 4.x 中文手册

Apache 2.x 中文手册
更多手册

站内搜索:
当前位置:首页>>系统工程师之路>>解决方案>>正文
Linux发行版制作指南(2)
时间:2005-09-07 作者:LinuxAID 来源:LinuxAID

 

 2.3对安装步骤的简化

  在对RPM 包的剪裁进行之前,还要对原有的安装步骤做出简化,去掉一些与系统需求大致无关的项目,使安装者可以集中精力地配置Sensor的主要参数,忽略诸如对键盘,鼠标,和多国语言的配置。具体的如下所示:

  原有的安装步骤有:

  1.安装语言选择

  2.键盘配置

  3.鼠标配置

  4.欢迎信息

  5.安装类型选择(包括安装或升级,安装部分又包括workstation,server,laptop,custom四种类型)

  6.选择分区方式(自动分区,手动分区,专业分区)

  7.选择以上部分或全部分区格式化

  8.Lilo操作系统引导器配置

  9.网卡及网络配置

  10.防火墙配置

  11.语言配置

  12.时区配置

  13.账户配置

  14.认证配置

  15.包组及单RPM包选择

  16.包独立性检查

  17.X-Window配置

  18.安装前确认

  19.安装过程

  20.制作启动盘

  21.安装完毕确认

  在这些安装步骤中很多都是在确定了RPM包组及调试完成后不必要存在的,所以去掉第1,2,3,4,7,8,10,11,14,16,17和第 20项安装步骤,所有去掉步骤的相关设置都采取默认的设置值,如第7步 采取分区全部格式化的方案,第8步,采取Lilo放置在MBR上,default boot 为Linux的设置等等,并修改第5步,去掉升级类型和安装类型中的所有4种既定类型,添加IDS sensor类型。修改完成以后的安装步骤如下所示:

  1.安装类型选择(现有的为IDS sensor一种)

  2.选择分区方式(自动分区,手动分区,专业分区)

  3.网卡及网络配置

  4.时区配置

  5.账户配置

  6.包组及单RPM包选择

  7.安装过程

  8.安装完毕确认

  为此,需要修改Python脚本语言

  ● 在安装程序运行之初,需要先禁止掉安装语言选择,键盘配置,鼠标配置和欢迎信息,在anaconda中在判断语言是否有效之前即Line491 if lang:之前加上以下四句:



instClass.addToSkipList("language");

instClass.addToSkipList("keyboard");

instClass.addToSkipList("mouse");

instClass.addToSkipList("welcome");

  并在gui.py中的类class InstallInterface的run函数中注释掉Line371至Line371,即在commonSteps结构中除保留( InstallPathWindow, "installtype" )外,注释掉( LanguageWindow, "language" ),( KeyboardWindow, "keyboard" ),( MouseWindow, "mouse" )和( WelcomeWindow, "welcome" )

  ●对安装类型进行精简。在installclasses目录下去掉upgrateonly.py , workstation.py , server.py , laptop.py和custom.py即去掉升级类型和安装类型中的所有4种既定类型, 添加IDS sensor类型,即在目录中添加sensor.py文件,文件的具体内容请参考附录E。

  除此之外,还要修改iw/installpath_gui.py脚本文件,以便在图形界面上不显示Install和Upgrate图标和选项, 只显示IDS Sensor项目。具体的,注释掉Line223,Line 227,Line 233和Line 234代码,即在类class InstallPathWindow中的getScreen函数的最后部分不执行显示。

  ● 去掉其他多余步骤,主要修改iw/installpath_gui.py脚本文件。注释掉类class InstallPathWindow初始化函数__init__里结构self.installSteps中的( FormatWindow, "format" ) , ( FirewallWindow, "firewall" ) , ( LanguageSupportWindow, "languagesupport" ) , ( AuthWindow, "authentication" ) , ( UnresolvedDependenciesWindow, "dependencies" ) , ( XConfigWindow, "xconfig" ) , ( BootdiskWindow, "bootdisk" ),即对应着去掉的第7,10,11,14,16,17和第20步骤。

  当这三步完成后,进行make和make install,重新编译程序,使修改生效,并把这些文件Copy至stage2.img中的相关位置,替换掉旧文件。这样就完成了对安装步骤的简化。

  2.4对RPM 包的剪裁

  对RPM包的裁剪依这次的需求进行。项目整体分析时已做出说明,制作目的是为了在系统前端Sensor 中能够快速,正确地建立运行Snort的Linux系统环境。所以只需保留Linux基本系统和运行snort所需的环境即可。

  Linux基本系统的RPM包组成在comps文件中的base部分中有详细的描述,所以就以它为蓝本,去掉除base以外的所有component,并去掉base中以下不必要的RPM包:



apmd     ash   autoconfig   dhcpcd 

dosfstools  ed   eject   gdm  

gettext   gpm gruff ksymoops

lokkit mailcap mailx man

mktemp mouseconfig ncurses

openldap popt procmail pump

raidtool readline redhat-logos

redhat-release rootfiles sendmail

syslinux utemper words

  在comps文件中增加IDS Sensor component并在此组中添加必要的RPM包,如snort-1.8.1就需要snort , libpcap , mysql , openssl , openssl-clients , perl等RPM包,除此之外,为了方便调试,也保留了一些用于操作和诊断的RPM包,如tcpdump , iputils , zip等,完成的comps请参考附录C。

  同时,在/RPM目录中依照上面所有确认保留的RPM包名称,删除不予保留的各RPM文件(文件后缀.rpm)。此时在/base中的 comps文件和在/RPM中的各rpm文件都已剪裁完成,可以利用genhdlist生成hdlist和hdlist2文件了,genhdlist 在anaconda-7.1的源代码中的utils目录里。具体生成方法见附录D。

3. 存在的问题及今后目标

  此次对NetCop Linux发布的制作是以RPM包作为裁剪单元进行的,所以必然存在很大缺陷,即对RPM包的内部毫无办法,无法去掉RPM包内部对需求无用的大量文件并 且无法对内核,脚本文件等做出制定修改。所以,下一步所要做的工作,是逐一打开每一个候选的RPM包,依需求对包内的每一个文件做出修改或丢弃,这样才能 做出真正适合sensor的Linux发布,无疑,工作量是巨大的。

4. 原始资料及参考文献



Bootdisk-HOWTO

CDROM-HOWTO

CD-Writing-HOWTO

Distribution-HOWTO

HP-HOWTO

KickStart-HOWTO

Linux-From-Scratch-HOWTO

RedHat-CD-HOWTO

RPM-HOWTO



http://mail.y-min.or.jp/~nob/ml/linuxppc-jp-dev/199902/msg00150.html



  共3页: 上一页 [1] 2 [3] 下一页   
推荐】【 】【关闭


关于极限 | 站内地图 | 意见反馈 | 广告服务 | 数据服务 | 联系我们
本站所刊登的文章,技术资料,软件均整理于网络资源或本站原创,转载请务必联系原作者或本站。
Copyright ? 2001-2004 UPLinux.com All Rights Reserved.
本站唯一联系信箱:
京ICP备05010519