kbs on debian

都是逼出来的,.PASSWDS 的问题快要把人整疯了。干脆快点移植到KBS上算了。 等我有空了,再写一下KBS在debian上的安装吧。现在比较详细的安装说明可以参考这里:http://www.newsmth.net/bbsanc.php?p=196-4-1-2-4-1 关于.PASSWDS .PASSWDS存放userec在smth1.2和KBS之间数据结构不同,所以是需要转换的。不过我比较了一下lilac版本和kbs的userec结构,大小一样,居然能够兼容,也就是说可以不加转换的使用。不过好事多磨,在kbs的登陆界面,输入marvel居然说错误用户,在水母求助无果。后来仔细一看,原来是kbs的MAXCLUB定义是256,而lilac定义是1024,所以结构体的大小变化了,也就无法载入用户信息了。修改这个定义,重新编译,done。发现marvel能够进入,但是marvela、marvelb等都无法进入,sigh。仔细一对比,原来是kbs的MAXUSERS才定义20000,而lilac定义为40000。所以很多用户都被截掉了。这次索性全部对照着修改define值,编译,启动,ok。 关于十大 /* *本部分于2007.07.10添加。*/ 前两天就发现无法添加十大,以为问题不大,所以就没放在心上,而且主体部分没有完成,所以打算以后处理。昨晚把东西弄得差不多了,今天准备看看十大。 今天带实验的时候看这部分东西,发现不是那么简单的。poststat 这个东西比较 e,涉及到/etc/posts/day.0,还有共享内存的部分。查了半天,无果,逼我使用gdb。调试到最后,发现是writestat函数中的get_records_from_id每次都失败。不解,但是涉及到结构体的东西,就不好做了。(从这点上来说,相对于结构体串行化,我还是喜爱xml这种数据存储方式,简单明了,损坏易恢复)于是自己写了一个程序来读讨论区的.DIR文件。结果发现新发的帖子的id号突然变大,例如原来是2000,新发的帖子变成了200000。涉及到共享内存的东西我就郁闷了,不好调试。最后没有办法,停服务,清共享内存,覆盖.BOARDS文件,覆盖.DIR,世界清静了…… 这个解决了。但是诡异的事情在后面: KBS 对十大增加了不少功能,最特出的就是十大模式了,用户能够实时的读取十大信息。但是我怎么弄就是不行,告诉我当前没有十大信息,但是/etc/posts/day明明已经生成了,ft!没办法,这种情况下唯一的做法就是读代码。kbs 是将十大信息放在了全局的共享内存 public_data结构体 的top_header中。poststat 的时候读入,但是我猜程序启动的时候应该会读day.0载入。最后终于发现错误在哪里了。原来我在调试的时候增加了一个新版,但是后来覆盖.BOARDS文件的时候这个版消失了。但是day.0文件依然存在,所以程序会加载旧的十大信息。不幸的是那个消失的版面的文章在十大第一,所以当程序处理到这里的时候,误认为十大的信息不存在。 解决方法很简单,删除day.0,整个世界又安静了…… 刚刚收到lanslot的信,收到KCN的授权书了。可惜给我的信箱是基本上废弃的hit信箱…… /* *本部分于2007.07.10添加完毕。*/ 关于automake /* *本部分于2007.07.12添加。*/安装kbs的时候先要运行以下./autogen.sh。但是我运行之后出现错误:automake: bbs2www/phplib/Makefile.am: not supported: source file ../../src/lilacfuncs.c’ is in subdirectoryautomake: … Continue reading