imaq 发表于 2004-7-4 21:50:18

前两日想到Knoppix的一个外挂式中文支持方法

要定制一个中文版本的Knoppix其实很费事,主要是最后制作压缩映象一步,一般得等半个小时或者一个小时才能完事,而且必须得有一个这个才能测试,为了做出一个确实可用的版本,常常需要反复制作多次进行试验

大约半个月前就想到了不用remastering就让Knoppix支持中文的一个外挂式持方法,而且试了一下kde的中文显示,大家可以看一下效果(http://www.oliwen.com/bamanzi/linux/knx-clx/knx-clx-kde-fonts.png)

对中文的支持主要也就是中文字体配置、中文文字信息和中文输入这三个部分

这里面一个关键就是新的内核(2.4以上)mount支持--bind方式,就是把一个已有目录mount到另外一个mount point上面去(有点象原来DOS下的subst),这也就是说我们可以将原本应该存放在/usr/share/locale/zh_CN/的文字翻译(比如kde-i18n-zhcn里面的内容)随便放到什么地方,然后mount --bind映射过去(原来光盘上这个文件夹下的内容需要先拷贝到新的目录去,不过这一点可以通过启动脚本来解决)

中文字体文件同样可以放到一个目录里面,然后用mount --bind到~/.fonts,也可以~/.fonts下建立符号链接,后者还有一个好处就是可以将windows下面的simsun.ttf等字体动链接进来,扩展包不会太大

至于中文输入法,因为直接安装程序需要安装文件到不同的目录,所以只能下载源代码来编译,将prefix设置为我们可以控制的目录(为了方便,不设置prefix为某个用户下的目录~knoppix/fcitx等),好在编译自己想要的一个输入法相当简单,从debian上apt-get source然后自己make rules一下就可以了
——这个方法不仅仅陷于中文输入法,其他要添加的程序也可以这样操作
至于firefox等不限定prefix解压到哪里都可以用的程序,就更简单了


最后的问题就是这些东西怎么自动加载,其实留意一下knoppix提供的saveconfig保存配置的方法就知道怎么解决了,然后启动时用home=/dev/hda? myconf=/dev/hda?
这个扩展包也可以刻录到光盘上,knoppix本身支持自动加载光盘上的knoppix.sh

我试验的的扩展包分成三个部分
一个是loop文件,ext2或者ext3格式,用来存放中文字体、中文翻译(.mo)、中文输入法程序,一般64M大小就足够了(如果你还要加firefox, Acrobat Reader当然得扩大)。启动后会mount到/usr/local,而/usr/local/share/fonts存放中文字体,/usr/local/share/locale/zh_CN会被映射到/usr/share/locale/zh_CN上去
一个是knoppix的HOME目录,也是一个loop文件,大小自定。knoopix本身支持将HOME下的所有文件保存起来(这个程序好像是叫makepersisthome),下次启动时用home=/dev/hdXX进行加载。我们不用makepersithome,而是一开始就提供一个可用的home目录,里面有我们提供的配置
第三部分是其他一些配置。knoopix本身支持将/etc/等目录下更改多的配置用saveconfig保存下来,下次启动用myconf=....进行加载,我们也是直接就提供一些针对中文支持修改过的脚本,首次启动就使用

当然还有些问题,比如opera这种又不开源无法重新编译又不能随便安装到那个位置的程序就有些难办,而openoffice的中文字体配置需要修改的文件也无法更改到(除非也将该文件所在的目录整个给重新映射了)

另外一个问题就是制作者得对knoppix熟悉——上面说得很多东西大家如果不熟悉knoppix的话可能就看不明白。

只是最近时间少,否则还真有心来做一个,提供给大家,毕竟要不了多少空间,上载上去也就容易

wjping119 发表于 2004-7-5 16:43:44

强烈支持!!!cloop的架构太庞大了,这样做会方便很多.但是,我觉得用saveconfig保存的改动很小,限制在/root,/etc和/usr/ocal.现在fcitx3.0要安装在/usr/local里,输入法解决不成问题.

我觉得做一个cloop就够了,这个cloop把我们所有要修改的东西都添加进来,启动系统的时候先加载主cloop,我们的cloop必须是后加载,这样才可以.

imaq还是新鲜会员啊,我的基于slack的livecd slax的中文版fanx已经诞生了,我觉得slax的架构非常好,拓展性非常灵活.只要将你需要的软件啦,修改啦,做成一个模块就可以了.比knoopix要强.不过这个想法非常好!

imaq 发表于 2004-7-5 21:19:38

LiveCD有很多,Mandrake, SuSE我都用过一些
但我还是喜欢以Knoppix这样基于cloop的,毕竟容量大

Morphix这样的版本也有极强的扩展能力,但Mini, KDE, GNOME, Games这样划分反而分散了,不象Knoppix可以一碟在手,上网、演示、救援均可
Gnoppix基于我喜欢的GNOME,也挺强,但这个版本运行起来很慢(至少原来的几个版本都这样,估计是没有进行速度优化的原因)
另外,还是Knoppix的用户群大,邮件列表中不断有人提出改进

BTW:我觉得这个扩展模块完全可以不用cloop,毕竟不需要太大容量,而且我觉得cloop在效率上也会低一些吧(Knoppix里面毕竟大部分情况是只读不写,而且也不知道cloop是否支持写操作),另外就是引入了复杂性

BTW 2: 好多年没有用过Slackware了,那可是当年俺最喜欢的distro,从3.1用到5.0,怀念啊

wjping119 发表于 2004-8-6 18:27:31

imaq, 能不能把knoppix(不是中文版)是怎么做出来的详细的写一下??
很需要这样一片好的文章.......

cnhnln 发表于 2004-8-6 22:03:47

受教

spring@fans 发表于 2005-7-4 13:59:19

老大我用你的knoppix.img(3.7版)安装于3.9版上,只能看到修改的字体,没有fcitx也没有中文KDE菜单,请教如何更改img文件才能在3.9上用上fcitx等,在启动过程中是如下提示:
WARING /mnt/hda5/knoppix.img is probably an old version of "knoppix persistent homedir" You should create a new one soon.
>>/home/knoppix mounted OK from /mnt/hda5/knoppix.img
Cannot create union system from old knoppix home-only format,sorry

且在运行patch时死机,进程不动,可能就是fcitx和KDE菜单没有的原因?
另是否是你的3.7的文件格式与3.9的要求不同,这是不是patch死掉的原因?

我在你的新窝去找过,没有找到如何自制img的说明,看了你的blog,我也认为处挂是个好办法
页: [1]
查看完整版本: 前两日想到Knoppix的一个外挂式中文支持方法