LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: langzhiwu

如何架FireBird BBS服务器?[相关主题合并,集中解决]

[复制链接]
发表于 2005-4-20 13:42:58 | 显示全部楼层
我在fedora3下用fb3.0-20000220-SNAP安装时出错

[root@dj bbssrc]# make install
== Making main program and relatve src ==
--> lib
make[1]: Entering directory `/home/bbs/bbssrc/lib'
rm -rf *.a
--> lib/libBBS
make[2]: Entering directory `/home/bbs/bbssrc/lib/libBBS'
gcc -s -Wunused -I../include -Wunused -c dlm.c
In file included from dlm.c:6:
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>."
make[2]: *** [dlm.o] 错误 1
make[2]: Leaving directory `/home/bbs/bbssrc/lib/libBBS'
<-- lib/libBBS

make[1]: Leaving directory `/home/bbs/bbssrc/lib'
<-- lib

--> src
make[1]: Entering directory `/home/bbs/bbssrc/src'
echo "Generate version info.."
Generate version info..
sh ver.sh ../include/version.h
gcc -Wunused -I../include -DSHOW_IDLE_TIME -DWITHOUT_CHROOT -DLINUX -DTERMIOS -DHAVE_VERSION_H -c screen.c
In file included from screen.c:30:
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>."
screen.c:542: error: syntax error before "va_dcl"
screen.c:543: error: syntax error before '{' token
screen.c:548: warning: parameter names (without types) in function declaration
screen.c:548: warning: data definition has no type or storage class
screen.c:549: error: conflicting types for 'fmt'
screen.c:545: error: previous declaration of 'fmt' was here
screen.c:549: error: `ap' undeclared here (not in a function)
screen.c:549: error: syntax error before "char"
screen.c:556: error: syntax error before '++' token
screen.c:591: warning: parameter names (without types) in function declaration
screen.c:591: error: conflicting types for 'outs'
screen.c:488: error: previous definition of 'outs' was here
screen.c:591: warning: data definition has no type or storage class
screen.c:592: error: syntax error before '}' token
screen.c:603: warning: data definition has no type or storage class
screen.c:604: error: syntax error before "if"
screen.c:624: error: non-static declaration of 'hd' follows static declaration
screen.c:547: error: previous declaration of 'hd' was here
screen.c:624: error: non-static declaration of 'indx' follows static declarationscreen.c:547: error: previous declaration of 'indx' was here
screen.c:624: warning: data definition has no type or storage class
screen.c:625: error: syntax error before "while"
screen.c:636: error: redefinition of 'hd'
screen.c:624: error: previous definition of 'hd' was here
screen.c:636: error: redefinition of 'hd'
screen.c:624: error: previous definition of 'hd' was here
screen.c:636: warning: data definition has no type or storage class
screen.c:637: error: syntax error before '0'
screen.c:637: error: conflicting types for 'outc'
screen.c:396: error: previous definition of 'outc' was here
screen.c:637: warning: data definition has no type or storage class
screen.c:647: warning: parameter names (without types) in function declaration
screen.c:647: warning: data definition has no type or storage class
screen.c:648: error: syntax error before "break"
screen.c:658: error: syntax error before '*' token
screen.c:658: warning: data definition has no type or storage class
screen.c:659: error: syntax error before '++' token
screen.c:545: error: register name not specified for 'fmt'
screen.c:547: error: register name not specified for 'i'
screen.c:547: error: register name not specified for 'count'
screen.c:547: error: register name not specified for 'hd'
screen.c:547: error: register name not specified for 'indx'
screen.c:391: warning: 'nullstr' defined but not used
make[1]: *** [screen.o] 错误 1
make[1]: Leaving directory `/home/bbs/bbssrc/src'
<-- src

echo "done."
done.
== Installing Everything ... ==
--> lib
make[1]: Entering directory `/home/bbs/bbssrc/lib'
--- lib: no install skip ---
make[1]: Leaving directory `/home/bbs/bbssrc/lib'
<-- lib

--> src
make[1]: Entering directory `/home/bbs/bbssrc/src'
sh Install.sh
This script will setting up the BBS directory for you on /home/bbs ..
Press <Enter> to continue ...
Setup bbs directory tree .....
creating necessary empty directory (user mail, user home)
in mail ..
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z done.
in home ..
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z done.
in boards ..
bbslists deleted junk newcomers notepad sysop syssecurity vote done.
in vote ..
bbslists deleted junk newcomers notepad sysop syssecurity vote done.

installing movie items (into boards/notepad) .. /usr/bin/install: stat‘bbs’失败: 没有那个文件或目录
/usr/bin/install: stat‘chatd’失败: 没有那个文件或目录
/usr/bin/install: stat‘thread’失败: 没有那个文件或目录
/usr/bin/install: stat‘expire’失败: 没有那个文件或目录
/usr/bin/install: stat‘paging.so’失败: 没有那个文件或目录
Install is over....
Check the configuration in /home/bbs/etc/sysconf.ini
Then login your BBS and create an account called SYSOP (case-sensitive)
make[1]: Leaving directory `/home/bbs/bbssrc/src'
<-- src



参考的教程是:

FireBird 3.0 20000220 版本 安装於REDHAT 6.2版安装指南
作者:singer@etwebs.com  singer.bbs@jorsindo.twbbs.org

本文章若有错误,请不吝指教。也欢迎大家转载,唯请注明原出处和作者即可。

注: 以下文件乃编改自中正资工 Firebird BBS 2.5 版之使用手册。
$Id: Firebird-30,v 1.5 2000/02/20 12:31:08 edwardc Exp $

此文件由原本FIREBIRD 3.0 2000-0220版本内附说明文件改编而来,
若要详尽的安装资讯,请参见档案内附的标准说明文件!
(於:   /bbs/bbssrc/doc 内)

会撰写此份文件的主要目的在於目前大多数BBS系统皆安装於BSD系统下,
以REDHAT为基本架构的可说是少之又少,就算有也大多是FIREBIRD 2.55版居多,
在网路上寻找了一段时间的旧文章和网路上前辈的指责後,几经波折终於安装完成。
也希望後来有兴趣安装BBS系统的网友们能减少一点摸索的时间和少挨一点前辈的骂!
也希望後来有兴趣安装BBS系统的网友们能减少一点摸索的时间和少挨一点前辈的骂!

目前FIREBIRD的最新版是3.0 RELEASE,为何使用20000220的旧版安装,待文章看完
後即可明了。

注意:希望各位有一点linux系统的操作基础,可以事半功倍。
      本文不会详细说明要下哪些指令,但相信有基础的您一定看的懂!

=======================================
这篇文章是针对REDHAT上要安装FIREBIRD BBS的人所写。
所以首先您必须已经安装好RedHat Linux 6.2,若这台机器就是要跑BBS的,建议直接
选SERVER MODE,将HD切成SWAP、root和/home/bbs三个即可。

此外,本人的经验建议不要装REDHAT 6.2 + CLE 0.9,在compiler的时候比较容易有状况。
不知道怎麽搞的,就是比较容易莫名其妙出怪问题!

说明步骤大纲如下:
    A.系统相关前置作业
    B.设定及安装BBS程式
    C.外部工具安装及使用
    D.最烦人的sendmail.cf修改和E-mail POST安装!
    E.转信程式INNBBSD & BBSNNRP安装及设定!
-----------------------------------------------------------------------------

1.建立 BBS 的相关帐号

    在安装 BBS 之前,请您先在系统中加入bbs这个帐号。
    一般建立新帐号的步骤是在 /etc/passwd 中加入以下的内容,然後再为 bbs 这个
    帐号设好密码:(采用 UID 9999 的原因是为了避免与一般使用者的 UID 产生冲突)

      bbs:*:9999:98:BBS user:/home/bbs:/bin/sh

    ※原本的说明文件建议的GROUP ID为99,但因REDHAT内定GROUP ID 99是nobody,
      所以在此建议改为98,比较不会混淆。

    此外,在 /etc/group 内加上 bbs 的 group,如下所示:

      bbs:*:98:bbs

    以方便您管理目录的读写权限。

    以上都设定完成後,在 /home 建立 bbs 这个目录,并在 /home 目录执行:

    chown -R bbs.bbs /home/bbs

    将/home/bbs这个目录权限设定为bbs这个帐号使用!

2.取得 BBS 程式

    请以 bbs login,再抓取 BBS source,本版的 source 可由以下位址取得:

      ftp://ftp.frirebird.org.tw/pub/Firebird/3.0-current.tgz
      ftp://ftp2.firebird.org.tw/pub/Firebird3.0/3.0-current.tgz
    ※请尽量往 ftp2 抓资料,因该机器在 TANet 上,速度较快!

    除此之外,ftp://ftp.nctu.edu.tw/Network/BBS/Firebird
    也有相关档案。

    取回後,解开 FirebirdBBS 3.0 的原始程式,以进行安装程序。
    解开 FirebirdBBS3.0.tar.gz 的方法:

      % cd /home
      % tar zxvf 3.0-xxx.tar.gz
        (xxx 视版本而定)

    程式解开之後,BBS 原始程式码会放置在 /home/bbs/bbssrc 下。


3.设定及安装 BBS

    1.手动设定

    以 bbs login,编辑 bbssrc/include/functions.h,这个档定义了一些 bbs 的
    重要功能,您可以视需要打开或关闭。目前 FB3 预设使用 bbsd,不但速度快,使用
    上也比较方便。

    2.自动设定系统环境及填写主要 BBS 资料

    同样以 bbs login,到 bbssrc/ 目录底下执行以下指令:

      % ./configure

    执行的过程应类似以下画面:

..................................
   Please fill data for your BBS
..................................
Home directory of BBS --> [/home/bbs]                   ==> bbs 目录所在
BBS Source Code directory --> [/home/bbs/bbssrc]        ==> bbs主程式目录
UID of BBS --> [9999]                                   ==> bbs 的系统 UID
UID of BBS --> [9999]                                   ==> bbs 的系统 UID
GID of BBS --> [98]                                     ==> bbs 的系统 GID
The ID of your site --> [NoName]                        ==> 贵站的英文代号
The name of your site --> [火鸟系统 3.0]                ==> 贵站名称 (中文可)
The domain name of your site --> [some.where.on.earth]  ==> 贵站 domain name
The IP address of your site --> [127.0.0.1]             ==> 贵站 IP address
The Default board of your site, only change it if upgrading
from old system with different default board --> [sysop]==> 预设看板
Maximum number of users --> [20236]                     ==> 最大使用人数
Maximum number of boards --> [256]                      ==> 开板最大数目
Maximum number of on-line users --> [256]               ==> 最大同时上线人数
Show idle time of BBS users ? --> [Y]                   ==> 显示 idle 时间
PLEASE CHOOSE THIS CAREFULLY
Is libcrypt "DES" correct? --> [Y]                      ==> 密码编码方式
........................................
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h
creating Install.sh

........................................................................
You may review the Makefile now. Then, type 'make' to build your system.
........................................................................

一般除了GID要改成98,英文代号、中文代号、DOMAIN NAME和IP需要输入外,其他的
都可以用Y一路安装到底。

    在设定一些数值时,请确切考虑您的硬体设备是否足够支撑。特别是最大同时上
    线人数,它是与记忆体的大小非常有关的。不过现在记忆体价格大幅滑落,拿个
    P-133 + 64M RAM + 1.2G HD跑个小站已经绰绰有馀,如果要架个千人大站就另当
    别论。

    程式会自动判断您所用的系统,并且询问您所架设的 BBS 之基本资料,以造出必
    要的 Makefile。顺利的话,您应该可以在 bbssrc/ 目录底下找到刚打造出来的
    Makefile。您可以观看此档的设定,若有必要,可手动修改之。

    在 bbssrc/include 下亦可找到 config.h 这个档,在编译程式之前您亦可对它
    作一些手动的修改。同一个目录下可找到 chat.h 这个档, 您可以在此更改聊天
    室的名称和 port number。

    还有一个要注意的地方,在 bbssrc/src/Makefile 中,有个 EXTRADEF 的定义,
    您可以在最後面加上 -DWITHOUT_ADMIN_TOOLS,这样就不会编译 SYSOP 会用到的
    系统管理程式,可以节省记忆体,对大型 BBS 本功能尤其有效。


4.编译 BBS 程式

    以 bbs 登入,在 /home/bbs/bbssrc 下执行如下指令:

      % make

    进行编译动作。编译过程无错误的话,bbssrc/src 目录底下应该会产生 bbsd(或
    bbs), chatd 以及 thread 几个执行档。这几个档案都已产生的话,代表 BBS 程
    式的编译已经完成。

    如果因为任何 error 导致 BBS 程式无法产生的话,请先检查安装程序是否有错
    误,然後重新。若无法解决,可将编译过程产生的讯息张贴至各大站 Firebird
    安装讨论区或 installbbs 板求助。

    4.安装 BBS 程式

    以 root login,在 /home/bbs/bbssrc 目录底下执行:
      ^^^^^^
      特别注意!!

      # make install

    即可大功告成。请继续测试您刚架设完成的 BBS 站。


5.测试 BBS 程式及错误的排除

    1.测试前准备

    如果您要使用 bbsd,请先以 root 身分执行:

      # /home/bbs/bin/bbsd port


    port 请随意用您喜欢的 port number,一般BBS的 port多预设为23,这个也恰好是
    telnet的Default Port,所以建议把REDHAT的telnet port改掉,反正只要不是23就好

    (如9999也不错...)
    还是建议您保留telnet的能力,以方便远端管理!
    更改方式如下:
    找/etc/services ,并以文字编辑器编辑之(如vi、joe、pico皆可)
    大概会看到如下的内容:


tcpmux          1/tcp                           # TCP port service multiplexer
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
daytime         13/tcp
daytime         13/udp
netstat         15/tcp
qotd            17/tcp          quote
msp             18/tcp                          # message send protocol
msp             18/udp                          # message send protocol
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source
ftp-data        20/tcp
ftp             21/tcp
fsp             21/udp          fspd
ssh             22/tcp                          # SSH Remote Login Protocol
telnet          23/tcp
# 24 - private
smtp            25/tcp          mail
# 26 - unassigned
time            37/tcp          timserver

看到telnet          23/tcp了没?
把那个23改成你要的数字即可!

    2.测试BBS并取得 SYSOP 权利

    Telnet 到您的 BBS 主机,然後以 bbs 当 username 来 login,应该可见到 BBS
    的进站画面。此时,当 BBS 程式要求您输入代号时,请输入 new,以便注册一个
    新使用者。由於名称为 SYSOP 的使用者拥有一切权利,因此您必须先注册 SYSOP
    ,并且设定密码。

    ※请注意:SYSOP 必需完全为大写字母。

    接下来,请再注册 guest 帐号,此帐号为 BBS 的参观帐号,不须输入密码即可
    进入 BBS(注册时随便打个密码即可)。如果您不想提供 guest 帐号,可以略过此
    步骤,并记得把 guest 加入 "不可注册之ID" 的名单内。若您提供了 guest 帐
    号,请参考稍後的文件说明替 guest 设定「恰到好处」的权限。通常 guest 帐
    号是只能参观不可发言的,因此通常不具有发表文章或聊天的功能。
回复 支持 反对

使用道具 举报

发表于 2005-4-20 13:44:29 | 显示全部楼层
还有人来讨论fb问题吗?
很急!!
希望加我一起讨论
msn:shaddaa@hotmail.com
回复 支持 反对

使用道具 举报

发表于 2005-4-20 19:25:38 | 显示全部楼层
Post by jackyd
还有人来讨论fb问题吗?
很急!!
希望加我一起讨论
msn:shaddaa@hotmail.com


不建议使用FireBird BBS
如果架设者都很难理解FireBird的概念,很难理解现在教育网的Telnet文化的话
事实上,对FB稍微了解一点的人,都不会在这儿问,而是去一些大站的BBSdev板问问题了
当然。。。现在教育网一片萧瑟之气,找不到门路是可能的

那么现在有两个地方
dev.kcn.cn,直接可以下载
http://yjrg.net,这个去找BBSdev板
如果你要去yjrg的bbsdev板问问题
给你两条建议:一、不要叫别人兄弟,二、尽量少用甚至不用感叹号。
我们叫telnet下的交流平台叫bbs,叫web下的交流平台叫论坛
bbs有bbs的文化氛围,有点君子淡如水的感觉...hehe

再次强调,不推荐使用FB
本人架设并维护着几个站点,也做过一些开发工作
这是因为我的学校有着习惯telnet交流方式的大量目标客户
如果你是从头做起,不要看着那些著名高校的BBS就以为是个好东西
web下的,基于LAMP的论坛程序更方便使用和维护
很认真地强调,不要等到后期维护会让人吐血再后悔,而且用户群的习惯培养也不是一件容易的事情
回复 支持 反对

使用道具 举报

发表于 2005-4-20 19:36:47 | 显示全部楼层
非常感谢blkf
受教了
回复 支持 反对

使用道具 举报

发表于 2005-4-22 10:17:09 | 显示全部楼层
我现在只想安装成功一次FB,但出现以下错误,我看不懂,能告诉我哪出错了吗,谢谢

sh-3.00$ make
== Making main program and relatve src ==
--> lib
make[1]: Entering directory `/home/bbs/bbssrc/lib'
rm -rf *.a
  --> lib/libBBS
make[2]: Entering directory `/home/bbs/bbssrc/lib/libBBS'
gcc -s -Wunused -I../include -Wunused -c dlm.c
In file included from dlm.c:6:
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>."
make[2]: *** [dlm.o] 错误 1
make[2]: Leaving directory `/home/bbs/bbssrc/lib/libBBS'
  <-- lib/libBBS

make[1]: Leaving directory `/home/bbs/bbssrc/lib'
<-- lib

--> src
make[1]: Entering directory `/home/bbs/bbssrc/src'
echo "Generate version info.."
Generate version info..
sh ver.sh ../include/version.h
gcc -Wunused -I../include -DSHOW_IDLE_TIME -DWITHOUT_CHROOT -DLINUX -DTERMIOS -DHAVE_VERSION_H -c screen.c
In file included from screen.c:30:
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:4:2: #error "GCC no longer implements <varargs.h>."
/usr/lib/gcc/i386-redhat-linux/3.4.2/include/varargs.h:5:2: #error "Revise your code to use <stdarg.h>."
screen.c:542: error: syntax error before "va_dcl"
screen.c:543: error: syntax error before '{' token
screen.c:548: warning: parameter names (without types) in function declaration
screen.c:548: warning: data definition has no type or storage class
screen.c:549: error: conflicting types for 'fmt'
screen.c:545: error: previous declaration of 'fmt' was here
screen.c:549: error: `ap' undeclared here (not in a function)
screen.c:549: error: syntax error before "char"
screen.c:556: error: syntax error before '++' token
screen.c:591: warning: parameter names (without types) in function declaration
screen.c:591: error: conflicting types for 'outs'
screen.c:488: error: previous definition of 'outs' was here
screen.c:591: warning: data definition has no type or storage class
screen.c:592: error: syntax error before '}' token
screen.c:603: warning: data definition has no type or storage class
screen.c:604: error: syntax error before "if"
screen.c:624: error: non-static declaration of 'hd' follows static declaration
screen.c:547: error: previous declaration of 'hd' was here
screen.c:624: error: non-static declaration of 'indx' follows static declarationscreen.c:547: error: previous declaration of 'indx' was here
screen.c:624: warning: data definition has no type or storage class
screen.c:625: error: syntax error before "while"
screen.c:636: error: redefinition of 'hd'
screen.c:624: error: previous definition of 'hd' was here
screen.c:636: error: redefinition of 'hd'
screen.c:624: error: previous definition of 'hd' was here
screen.c:636: warning: data definition has no type or storage class
screen.c:637: error: syntax error before '0'
screen.c:637: error: conflicting types for 'outc'
screen.c:396: error: previous definition of 'outc' was here
screen.c:637: warning: data definition has no type or storage class
screen.c:647: warning: parameter names (without types) in function declaration
screen.c:647: warning: data definition has no type or storage class
screen.c:648: error: syntax error before "break"
screen.c:658: error: syntax error before '*' token
screen.c:658: warning: data definition has no type or storage class
screen.c:659: error: syntax error before '++' token
screen.c:545: error: register name not specified for 'fmt'
screen.c:547: error: register name not specified for 'i'
screen.c:547: error: register name not specified for 'count'
screen.c:547: error: register name not specified for 'hd'
screen.c:547: error: register name not specified for 'indx'
screen.c:391: warning: 'nullstr' defined but not used
make[1]: *** [screen.o] 错误 1
make[1]: Leaving directory `/home/bbs/bbssrc/src'
<-- src

echo "done."
done.
回复 支持 反对

使用道具 举报

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

本版积分规则

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