雅勒尼恩
Athenaeum
似乎最近BBS越來越少人在用了,大多數人的社交選擇都變成了Facebook、Twitter、Plurk等地方,雖然PTT上還是有近10萬人在線上,但其他站幾乎都沒落了。所以我打算架好屬於INFOR的BBS,讓大家可以回味一下過
網的時代。
根據 https://goo.gl/fgKQjM 及 https://goo.gl/02ye5S 中hialan學長所述,雅勒尼恩是由WD BBS修改而成,其中混和了一些Maple BBS的東西,由下圖可知其實WD是
來自PTT,而PTT又是來自
Maple,所以PTT跟WD的
相仿性仍是有的。
git是一個去中心化的版本控制軟體。同時,我們也可以將有些人放在網路上的資料複製下來,以PTTBBS來說,其就是放在GitHub上,所以要載下來需要先裝個git。
Clang是一個C/C++、Objective-C/C++的編譯器前端,並且採用了LLVM作為其後端。其在錯誤提示與編譯速度上幾乎都比GCC來得優良
為了避免編譯大型C/C++專案時會花上過久的時間,ccache透過將標頭檔快速緩衝到原始碼中改進了編譯時的效能,減少了編譯時加入標頭檔所花的時間,因而提高了整體編譯時的效率
Libevent是一個C/C++函式庫,用來處理異步事件,它使得我們能在C/C++中做到類似JS的event功能,在許多網路伺服器上都有很好的應用。
開發C程式時常會用到許多系統已裝好的Library,這時,我們可能會需要知道header跟library放在哪裡,若僅僅手動去尋找所花時間太高,因此使用pkg-config可以讓我們方便查詢其位置甚至是編譯時可能會需要用到的參數。
Mutt是一個能夠讓你透過命令列寄信的前端軟體,BBS系統中若要寄信,將會由他實現
在使用root權限下
vim /etc/passwd之後,加入兩隻帳號bbs及bbsadm
在使用root權限下
vim /etc/group之後,將先前所設之群組確實建立出來
在使用root權限下,執行
passwd bbsadm
在使用root權限下,執行
mkdir /home/bbs
chown bbs:bbs /home/bbs
chmod 700 /home/bbs
前面有提到目前pttbbs的原始碼是放在github上面,所以要下載就需要一些git的指令。
這裡稍微說明一下可能會用到的git指令
git clone將他人的程式碼下載下來到自己的資料夾中
git pull將本地版本更新至最新的版本
git rebase將兩版本合併
用bbsadm登入後
cd 到自己的家目錄,並執行
git clone https://github.com/ptt/pttbbs.git
並且複製一份config出來
vim ~/pttbbs/pttbbs.conf
若是採用遠端連線登入主機時,可能會出現亂碼的情況,這是因為該檔案的編碼是big5,所以可能會需要將檔案下載回自本機端修改才會比較方便。
因為我們的主機是64bit的,但是預設PTTBBS是裝在32bit的電腦上,所以要特別注意要在config中,將原先被註解掉的
SHMALIGNEDSIZE跟TIMET64回復,或是直接在任意的地方鍵入
#define SHMALIGNEDSIZE
#define TIMET64
SHMALIGNEDSIZE其實是 shared memory aligned size 的縮寫。其中shared memory簡單來說是讓多個程式能夠訪問同一塊記憶體,進而達到高速的程式與程式之間的溝通。
在創建一塊shared memory
時,需要指定大小,而在
x86-64的環境時需要4MB的
記憶體。
time_t是C/C++中的一個型別,但是其大小並沒有一個統一,會視作業系統而定,而這裡因
為我們是要灌在64位元的電腦
上,所以記得把它改成8 bytes
若是先前有修改到bbsadm的gid跟uid時,請記得在這裡將之改好,而若是當初帳號名稱不是叫做bbs也需在此修改。
另外,PTTBBS很貼心的提供
了一些預設的板,有些板若是
覺得沒有必要的話,可以將其
註解掉。但是這些預設開啟的
板除了在這註解掉,還要去修
改include/config.h
記得先確定以下套件都有裝
除了要安裝那些以外,也請注意自己的python版本,記得讓你在打python時要是執行python2
先將make alias 成pmake,也就是alias make='pmake *'
接者cd 到 ~/pttbbs底下,執行
make BBSHOME=/home/bbs all install
期間會跳出許多的Warning,幾乎都是
說有東西沒用到,所以基本上可以忽略
他們。
因為有些人會是要把原先的PTTBBS更新,所以只執行上面的動作並不會完整編譯好一個BBS所需的東西,所以可以cd至sample後,執行make install,並且再去執行bin/initbbs 將整個bbs初始化好
先將原本的共用記憶體清乾淨,並初始化,也就是執行
/home/bbs/bin/shmctl init
接下來就真的可以把bbs跑起來了,只要執行
sudo /home/bbs/bin/mbbsd -p 23 -d
其中-p是指定他去聆聽23 port,23port預設都是telnet在走的,而-p則是讓他在daemon
mode下跑。
bbsctl是一個PTTBBS自帶的管理套件,基本用法是
bbsctl start
bbsctl stop
bbsctl restart
但是bbsctl預設不會開啟,要
使用的話,要再去編譯
先用bbsadm去pttbbs/util去make,把整個檔案編譯好。
再用root的權限去執行make
installbbsctl,這時就可以執行
bin/bbsctl了。
?
不是自己new就好了嗎?可是我要new什麼?
要獲得管理權限,首先要去new一個名叫SYSOP的帳號,登出再登入後,他就會自動擁有管理權限。
那這時就可以管理大家的申請了
阿自己new一個阿(?
new的時候會發現他被保留起來了,所以就先隨便new一個帳號,之後再用SYSOP的權限,將其名稱改回guest即可
Thank Everyone