Linux 版 (精华区)
发信人: hbt (书生21), 信区: Linux
标 题: 把bbs从redhat搬到solaris上遇到的问题.
发信站: 紫 丁 香 (Mon Dec 7 19:59:32 1998), 转信
发信人: Leeward (1% completed★蝗虫街), 信区: BBSMan_Dev
标 题: Re: 开版有益,问个问题;))
发信站: BBS 水木清华站 (Sun Dec 6 02:24:27 1998) WWW-POST
【 在 CuteGuy (治理riverofchina) 的大作中提到: 】
∶ 我们现在正想把原来装在Slackware Linux 3.5下的BBS挪到
∶ 一台Sun Ultra 5上,BBS系统都是FireBird 2.66M,SUN的
∶ 操作系统是Solaris 2.6。转移过程简直是一场噩梦,先是找
∶ 不到gcc,这个好办,去下了个gcc2.8.1来。在Solaris上硬
∶ 生生编译不过,说找不到cc....*I^*&^*&%$$*&^(*&)*(***
∶ cc当然有,只是路径不对,后来干脆不装gcc 了,用cc编译
∶ FireBird,编译成功,将bin 目录下的东东全部换掉,呵呵,
∶ 可以用了,但是偶一看偶自己的经验值,-324352,//faint!
∶ 进站的时候看到——注册人数四人,这下好,只剩三个站长和
∶ 一个SYSOP在了,也就是说,所有的用户信息都掉了。如果有
∶ 别的用户登陆提示:帐号已经停止使用(咣铛!)小弟才疏学
∶ 浅,有哪位大哥搞定过,麻烦提醒小弟一声,不胜感激,小生
∶ 在这里给各位大哥鞠躬了:))
不知道具体你是如何在 SUN 上重新安装的。
我想可能把 FireBird 的原始 package 拿来,重新 make install 比较好吧。
然后再把你在 Linux 下修改过的代码覆盖安装后的原始代码,再编译和更新一下。
最后 reboot 一下也是比较好的选择。
这些可能你都做过了。
如果你 Linux 和 SUN 下的代码版本完全一致,
或者具体说,两个系统下的 struct.h 中的 struct userinfo 定义完全一样,
那么建议写个小程序遍历一下 .PASSWDS 文件,就象 showuser 那样。
然后把这个程序分别在两个系统下运行(两个系统下的 .PASSWDS 必须是相同的文件),
看看输出有什么不同,以便定位可能的错误。
也许和不同操作系统、不同编译器的结构体对齐方式有点关系?
但是这个感觉只和内存分配有关,和文件系统似乎无关。
无论如何试试看吧:PP
如果两个系统下的 struct.h 中的 struct userinfo 定义不一样(通常是 BBS 的版本
不一致导致的),那就必须对相关结构的文件进行转换了。
比如 FireBird 2.5 和 FireBird 2.6 有若干结构体的定义不一样,
即使未必都导致问题,但是如果你自己改动的地方恰好用到了这些结构体,
那么你要保持相应的功能,是必须做处理的,比如对数据文件,就必须作转换。
--
书 中 自 有 黄 金 屋 ,
网 络 更 胜 千 本 书 .
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: hs8.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.494毫秒