LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4088|回复: 2

完全定制属于自己的SLAX

[复制链接]
发表于 2006-3-24 20:47:31 | 显示全部楼层 |阅读模式
完全定制属于自己的SLAX

用户可能在使用中会发现FanX中有些配置和安装的软件不能满足自己的需要,这并不是很奇怪的事,读者的口味各不相同,FanX也不可能满足每一个人的需求。为了满足自己的需要,下面我们一起来定制属于自己的SLAX。

本文用的是SLAX-5.0.0英文版,与旧版或以后的新版会有不同,尤其是软件的版本。

=========================================

预备知识
SLAX是基于slackware的LiveCD,与slackware相比只是删减了许多不常用到的软件,对系统的具体操作是完全相同的,我们现在只来了解将要用到的内容:

1. 软件包管理程序
Linux下有三大主要的软件包管理程序,分别管理的是rpm包,deb包,和tgz包。其中tgz包为slackware独用,我们以kde-i18n -zh_CN-3.4.0-noarch-1.tgz这个软件包来举例说明,kde-i18n-zh_CN是kde的简体中文支持包,在终端运行:
installpkg /tmp/packs/kde-i18n-zh_CN-3.4.0-noarch-1.tgz // 安装软件包
removepkg /tmp/packs/kde-i18n-zh_CN-3.4.0-noarch-1.tgz //删除软件包

不得不提安装软件包的-root参数,这个参数按照系统的结构将软件包安装在某个指定的地方,以供修改和打包,这对我们来说是很重要的:
installpkg -root /tmp/wang /tmp/packs/kde-i18n-zh_CN-3.4.0-noarch-1.tgz //安装kde-i18n-zh_CN-3.4.0-noarch-1.tgz到/tmp/wang下

2. 磁盘分区
Linux下这样识别硬盘分区,ide硬盘识别为hd,第一块ide硬盘就是hda,第一块硬盘的第一个分区就是hda1,一块硬盘可以有4个主分区,Linux下的分别为hda(1-4),扩展分区也算是一个主分区,我们平时使用的系统一般是hda1就是指的是C盘,hda2就是指所有的扩展分区 ,hda5就是D盘,以此类推。

3. mount文件系统
Linux可以支持多种文件系统,对于常见的fat,ntfs文件系统的支持自然不在话下。
Linux是通过mount来将其它的文件系统挂载到/mnt下来访问的。而在SLAX中,所有的磁盘分区默认都会挂载在/mnt下,一般C盘对应的就是hda1,hda5一般是D盘。
mount /dev/hda5 /mnt/disc0part5 //手动挂载磁盘
umount /mnt/disc0part5 //卸载已挂载的磁盘
如果已经挂载,重新挂载以前必须先要卸载,而且必须要有挂载点,上面/mnt/hda5就是挂载点。必要时需要用 –t 参数指定文件系统类型,如 vfat ,ntfs,iso9660等。在卸载时,确保所有程序已经退出该挂载点。
mount –t vfat /dev/hda5 /mnt/disc0part5 //指名挂载磁盘分区文件系统为FAT32
还有一个有用的挂载参数-o,用此选项可以挂载各种loop设备,比如iso,img文件都可以这样挂载到某个挂载点上访问,而不用使用额外的软件。
mount –o loop /tmp/SLAX-5.0.0.iso /mnt/iso //将iso文件挂载到/mnt/iso下,这被称之为linux下的免费虚拟光驱。
mount –o iocharset=cp936 /dev/hda5 /mnt/disc0part5 //指名分区字符编码为简体中文

4. 在Linux中,文件文件夹名是区分大小写的。

5. Linux中的目录是用/隔开的,如/mnt/disc0part5/slax,而windows下是用\隔开的如d:\slax\dos

================================================

Remastering……

对SLAX的定制有两种方式,一种就是把你需要的东西集合起来,做成一个或者几个模块,然后植入iso中,这种方法不能删除原有的东西;另外一种就是将SLAX完全展到硬盘上后进行裁减,然后安装上自己的东西后再制作成iso。两种方法各有优劣,第一种简单方便,直接可以在已经启动的SLAX中就可以完成但是定制性不是很强;第二种自由度大,但是稍有复杂。FanX-1.0用的是第2种方法,FanX-1.1用的是第1种方法,也就是说1.0版定制性高,下面一起来介绍。

FanX-1.1是这样做的……

上面提到,FanX-1.1的制作方法就是为SLAX增加模块的方法制作的,准备了3个模块,两个中文相关模块任意选一即可,包括字体、输入法、 glibc-i18n-zh_CN和kde-i18n-zh_CN等必要东西,还有一个可选的程序模块,包括opera,ark,slackins等小工具。具体列表如下:

01_fanx11.fcitx506.mo

fcitx-2.1.0
zhcon-0.2.3
sunglobe.ttf
libxft-2.1.6
glibc-2.3.5-zh_CN
kde-i18n-3.4.1_zh_CN
koffice-i18n-1.4.0_zh_CN

02_fanx11.skim506.mo

skim-1.4.
scim-1.4.
scim-pinyin-0.5
scim-ccinput-0.3.0
scim-fcitx-3.1.1
scim-tables-zh_CN
zhcon-0.2.3
sunglobe.ttf
libxft-2.1.6
glibc-2.3.5-zh_CN
kde-i18n-3.4.1-zh_CN
koffice-i18n-1.4.0-zh_CN

03_fanx11_apps.mo

slackins-3.0
eva-0.3.0
kiso-0.82
ktorrent-1.0
opera-8.01
beep-media-player-0.9.7
kftpgrabber-0.6
ark
PoseidonPPP-3.1.0
kgrub-0.3
grub-0.95
squid-2.5
squidGuard-1.2.0
unrar-3.50b
k3b-ape-1.0

中文模块是这样做的……

1.首先当然是收集要用到的软件包了,想要添加的东西统统准备好了。
2.启动进入SLAX
3.用 –root 参数安装所有的tgz包。
installpkg -root /tmp/zh_CN /tmp/allpacks/*.tgz //将软件包装到/tmp/zh_CN下
可能有读者会有realplay等以.bin结尾的包怎么安装的疑问,不要紧,我们只需要将它安装后的文件夹整个复制过来就可以了,放哪儿都行,但是使用时你要能找到它。也可以为它单独制作一个模块。

注意:realplay是bin二进制包,应该用下面的方法安装:
chmod a+x realplay*.bin
./ realplay*.bin
回答几个问题就安装完毕了。

除此之外还需要一些用途不太大包,我们将要提取它的中文mo文件,以便让相关软件菜单有中文支持,这样的软件包有kplayer和k3b。

4.安装字体:将准备好的字体复制到/tmp/zh_CN/usr/X11R6/lib/X11/fonts/TTF下,目录中没有的文件夹手动创建。
5.在TTF的目录下运行mkfontdir生成fonts.dir文件,然后将/usr/X11R6/lib/X11/fonts/TTF中的fonts.dir文件中的内容复制到这个文件的后面,保存并复制一份为fonts.scale保存在TTF目录下。
提示,可以使用simsun和其它ttf字体,具体做法是一样的。
6.清空 /etc/profile.d/lang.sh文件的所有内容,更改为
#!bash/sh
export LANG="zh_CN"
export LC_CTYPE="zh_CN.gbk" //我个人认为有gbk足够用了
# End of /etc/profile.d/lang.sh

将该文件复制到/tmp/zh_CN/etc/profile.d下

7.修改/root/.kde/share/config/kdeglobals,找到[locale]的行,修改为
[locale]
Country=cn
Language=zh_CN
整个文件是指定kde默认语言的,我们指定简体中文。将此文件保存并复制到/tmp/zh_CN/root/.kde/share/config下。

提示:名字以句点打头的文件和文件夹都属于配置文件和文件夹,默认情况下是隐藏的,要想进行编辑,需要先在“查看”菜单中选择“显示隐藏文件”项。

8.解压k3b和kplayer软件包,分别复制opt/kde/share/locale/zh_CN/LC_MEDDAGES下的 k3b.mo和kplayer.mo到/tmp/zh_CN/opt/kde/share/locale/zh_CN/LC_MEDDAGES下,这样将使得kplayer和k3b的菜单有中文的支持。

9.配置系统,精简不需要的东西。glibc和glibc-i18n安装后有近150M的东西,有许多国家的locale(本地语言文件)我们只留简体中文zh_CN的就可以了,删掉之后体积减小程度非常可观,具体文件在/tmp/zh_CN/usr/lib/locale和 /tmp/zh_CN/usr/share/locale下。假如你已经将kde桌面修改为自己习惯的配置了,那也一并将它的配置文件也保留下来吧,复制 /root/.kde下的内容复制到/tmp/zh_CN/root/.kde下,总之,想要对系统做的任何修改都要在这一步完成。

10.为了以后方便使用,最好将做好更改后的所有东西制作成一个软件包,是makepkg显身手的时候了:在/tmp/zh_CN/下运行makepkg zh_CN.tgz 命令,提示问题都答yes,按y键,把制作好的zh_CN.tgz包保存到某个地方供以后备用。

11.修改完毕,可以制作模块了。运行 dir2mo /tmp/zh_CN /tmp/zh_CN.mo就可以了,也可以用刚做好的tgz包制作模块:tgz2mo zh_CN.tgz zh_CN.mo

提示:读者可以按照以上的步骤来为SLAX制作其它的模块,制作好的模块最好是经过测试,确保能正常运行。这是一个最复杂模块的建立,有了这个基础其它模块的制作应该不在话下了。

12.最后就是将做好的mo模块植入iso文件中然后刻录成光盘使用了。方法很多,一种方法就是用editiso命令,这个命令会将模块植入iso文件中的optional文件夹下,也只能在光盘启动出现boot:时手动启用。命令的基本用法为:
editiso 原iso文家路径 新iso文件路径 module的路径,例如 :
editiso /mnt/disc0part5/SLAX-5.0.0.iso /tmp/newSLAX.iso /tmp/zh_CN.mo

另一种是将iso文件挂载挂载,复制所有的文件和文件夹到某个文件夹下例如SLAX,如果想要模块自启动,就放到base或modules文件夹中,想在boot:时手动加载就放到optional文件夹中,如果想用uselivemod命令加载,那就随便放哪儿都行。然后在SLAX目录下运行
./create_bootiso.sh /tmp/newSLAX.iso 就会在/tmp下生成新的iso文件。

在系统启动出现boot:时,可用slax load=zh_CN.mo来启用module。同样可以在系统运行中启用module,用uselivemod命令:uselivemod /tmp/ zh_CN.mo
Windows用户也可以remaster iso,有批处理脚本makeiso.bat和MySLAX_Creator,非常的简单和易用。

注意:请将做好的模块修改一个首字母靠后的名字,系统启动时是按名字的字母顺序加载的,后加载的文件将覆盖先加载模块的相同文件,所以必须确保制作好的模块在最后加载,否则有些配置无法生效。

这样我们的中文版就出炉了。为了确保制作的iso文件不出问题,可以选用virtualPC或vmware虚拟机进行测试,测试前应该考虑到虚拟机和现实机器的差异,如果没有问题的话就可以刻录成盘使用了。

这样中文化的SLAX中文显示近乎完美。但是缺点也是有的:第一,无法删除系统原有的软件,只能添加;第二,默认挂载硬盘分区还无法显示中文(显示为问号),必须先卸载后再手动挂载一次,加上-o iocharset=cp936的参数才行,比如:
umount /dev/hda5
mount -o iocharset=cp936 /dev/hda5 /mnt/disc0part5

====================================

FanX-1.0是这样做的……


安装到硬盘

像安装其它Linux版本一样安装在硬盘,需要一个Linux分区。为了方便安装,请先用自己熟悉的分区工具(推荐使用Pqmagic)分出一个 ext2分区来,1个G的空间是绰绰有余了,SLAX放到硬盘并不大,500M多一点。在SLAX中包含了一个安装到硬盘的图形界面,即 /root/SLAX installer。需要主意的是,SLAX目前还不能识别windows的引导程序,如果在安装时选择了安装引导程序lilo,那么windows的菜单会被覆盖掉,然后只能进入SLAX。当然,在进入SLAX修改lilo.conf添加上windows的相关行重新运行lilo就可以添加 windows的引导菜单了。但是你可以选择不安装引导程序,那一栏留空就可以。我一般不安装,用loadlin引导:

进入dos
D:\>
D:\>loadlin vmlinuz root=/dev/hda4 //安装分区为hda4

进入系统后就可以进行裁减工作了,先把我们刚做好的中文支持包装上就有中文环境了,必要的话退出重新登录一下系统。然后把自己想要添加的东西一股脑儿全部安装上,并且修改配置好。想要删除一些软件包的话,推荐使用用一款tgz包的图形界面工具slackins,用它可以轻松完成软件包的安装和卸载。在slackins的界面中还可以看到系统究竟安装了些什么软件包,slackware系统设置等等。

提示,如果你觉得kde太耗资源而想删除的话,将/opt文件夹删掉就可以了。可以考虑安装其它的桌面环境比如xfce。

到现在为止只有FAT32分区的中文挂载问题了。上面提到先umount,然后用 –o iocharset=cp936重新mount一下就可以解决问题了,如果你还嫌麻烦(其实用这种方法定制SLAX的人已经不觉的麻烦了),在本版找找 BOoRFGOnZ为FanX写rc.local脚本,替换/etc/rc.d/下的空文件rc.local即可;其实最根本的解决办法就是重新编译内核,为FAT分区指定字符编码为cp936。FanX-1.1就是重新编译了vmlinuz的,不过就修改了这一项内容。SLAX的内核配置文件是 /proc/config.gz

修改完后就可以制作iso文件了,每一个版本的SLAX都会有带有新版本的linux-live脚本,将其解压到/tmp,进入目录下运行. /runme.sh /tmp/myslax.iso 就可以等我们定制的iso文件出来了,如果添加的东西不是很多的话,不到10分钟就可以完成了,接下来就是在虚拟机上测试,刻盘,使用……
发表于 2006-4-6 00:19:35 | 显示全部楼层
感谢带来如此优秀的文章,谢谢共享!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2008-7-4 17:07:08 | 显示全部楼层
哪里能下载到编译器模块~
gcc之类的...
可以自己编译源文件生成xx包吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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