作者holishing ()
看板PttCurrent
标题[心得] CurrentPtt个人记录 - 相关外部程式安装
时间Sat Jun 3 23:33:48 2017
这篇是对於以上一篇的方法 (改完 pttbbs.conf 相关定义後重新编译)
无法完全处理到的相关设定, 或没说清楚的部分做一些补充
这篇会提到以下主题
1. crontab 设定微调
2. 外部套件设定安装 (BBSLua)
3. 背景伺服外部程式安装 (故乡)
4. 背景伺服外部程式安装 (文章/推文记录)
注意 2.~4. 安装的东西都算是站方正在开放较实验性质的功能,
若之後此部分有重大修改, 自己需要摸索调整的地方可能较多
> ----------
1. crontab 设定微调
crontab 是作业系统的「例行性工作排程」,更详尽的入门导引请参考
鸟哥的相关文章:
http://linux.vbird.org/linux_basic/0430cron.php
按照github上面安装说明(doc/INSTALL)的指示,
是不用调整太多的, 但还是有些东西需要留意
安装方法:
1. 直接将 ~/pttbbs/sample/crontab 里的内容复制起来
(先将「~」当BBS家目录,「~/pttbbs」当放CurrentPtt程式码的地方)
再到shell指令介面输入:
$ crontab -e
後, 在编辑器介面里直接贴上
2. 或是直接
$ crontab ~/pttbbs/sample/crontab
即可将 BBS 需要的 crontab 安装到作业系统上
crontab -e进入编辑介面时, 建议可以调整一些东西:
1.
# 每天 2:00, 11:00, 16:00, 21:00 开奖
# 0 2,11,16,21 * * * bin/openticket.sh
如果自己的BBS没有想要开全站赌盘的功能, 可以在前面加上 # 注解掉
这样排程就不会被执行
2.
# 每周三, 六统计转信所有板
# 35 6 * * 6 bin/showboard .BOARDS > etc/BOARD.rec
现在的Ptt已经没有转信功能了, 所以可以注解掉
3.
# 清版 (视情况用每天或每周)
20 3 * *
1 bin/expire
有需要删除文章屍体以及设定开启看板容量上限的话需要留意这个排程
自己决定要清文章/文章屍体的时间
并不是每次你将BBS系统重开机就会把这些东西清掉的
(当然你也可以利用之前已介绍的rc.local来让作业系统做这个事情)
4.
# 天气, 股票
# 0 5,11,17,23 * * * bin/weather.sh
现在的天气/股票预报程式已经抓不到东西了, 故可先把此排程关掉
不然会有以下情形:
#1P8Mdyaa (PttBug)
5.
# 每日砍除 ALLPOST
# 30 5 * * * /bin/rm boards/A/ALLPOST boards/A/ALLHIDPOST; mkdir boards/A/ALLPOST boards/A/ALLHIDPOST
如果不想让每天早上 5:30, ALLPOST板的文章就消失一次 (e.g.
#1P8Z8lSL (PttBug) )
可以将此排程注解掉
如果想把 crontab 的设定汇出, 让自己之後若有需要换BBS主机搬资料时方便转移设定
可以用以下方法
$ crontab -l > ~/
crontab (也可以自己随便取其他档名,知道自己放到哪个档案即可)
> -----
2. 外部程式设定安装 (BBSLua)
首先记录如何在 CurrentPtt 安装 BBSLua 功能
关於 BBSLua 的介绍与讨论建议可至 telnet://ptt2.cc 的 BBSLua 板参考
如果你在 Linux 系统里的套件安装软体可以找到 lua5.1 lua5.1-dev,
请先将此二套件安装起来, 或是自行到
https://www.lua.org/ 下载相关程式码编译
之後再去 ~/pttbbs/pttbbs.conf 加上以下定义後重新编译:
#define USE_BBSLUA
另外拿有些ptt2的BBSLua板上程式码文章, 移植过来测试执行时
可能会发生画面爆炸的情况
这时就需要再配合开启以下的定义并重新编译来解决:
#define USE_PFTERM
完成这些步骤後, 你架的BBS站应该就可以很顺利的执行BBSLua相关功能了
> -----
3. 背景伺服外部程式安装 (故乡)
刚架完自己的 CurrentPtt 後,
应该就可以在 (
0)Admin【 系统维护区 】里 的 (
X)file 编辑系统档案 中
里面的 etc/domain_name_query.cidr
(或直接去 ~/etc/domain_name_query.cidr)
发现站方给的故乡对应表
(虽然版本好像比较旧...?)
但要让它能够派上用场需要编译安装以下资料夹里的程式:
~/pttbbs/daemon/fromd (故乡)
*因应近期相关的程式码更新:
-------------------------------------------------------------------------------
2017/06/04 定期更新
1. [系统] 故乡现在可以显示国家。
-------------------------------------------------------------------------------
https://github.com/ptt/pttbbs/commit/49fd16bf73656abc1604efb157eb23fc04da14ca
请先另行将您的作业系统安装以下套件再继续进行安装步骤:
libgeoip1 libgeoip-dev geoip-bin
(ref:
https://github.com/maxmind/geoip-api-c )
以下记录相关安装步骤:
先至 pttbbs.conf 加上以下定义:
/* 使用 daemon/fromd, 使用外部daemon纪录上站故乡名称 */
#define FROMD
#define FROMD_ADDR ":5130"
编译fromd外部程式:
$ cd ~/pttbbs/daemon/fromd/
检查里面的 Makefile 档案, 确认要 make (pmake *)的指令後, 执行:
make clean
(第一次安装不需做此步骤); make fromd
重新编译整个CurrentPtt程式:
$ cd ~/pttbbs
$ make BBSHOME=/home/bbs clean all install
将相关程式 kill 掉後重新启动: (或直接reboot, 让作业系统重新开机)
~/pttbbs/daemon/fromd/fromd
(第一次安装不需做此步骤)
~/bin/mbbsd -d -p [你要开的port]
之後也可以加在 /etc/rc.local 或是其他 shell script 里当作
开机後自动执行的脚本, 这样一上BBS就可以在使用者名单查看自己上站故乡了
> --------------
4. 背景伺服外部程式安装 (文章、推文记录)
文章、推文记录主要分别是由
postd.py comment.py 为主的 python 程式负责执行
再加上其他小程式辅助
对於大家而言最直接的功用, 在於板主可以透过系统记录下来的
推文记录
Ctrl+E V 进入推文管理介面, 快速水桶推文违规的人, 或直接把违规推文砍掉
至於文章记录部分就不确定功用了orz
(以下步骤也仅为个人尝试的结果, 如果有更好的安装方法还麻烦补充)
要让它能够派上用场需要编译安装以下资料夹里的程式:
~/pttbbs/daemon/postd (文章记录)
首先先去 ~/pttbbs/pttbbs.conf 编辑, 加上以下定义後重新编译:
#define USE_POSTD
#define USE_COMMENTD
之後再去
$ cd ~/pttbbs/daemon/postd
之後, 会发现里面除了c语言档案及Makefile外, 还有 python 程式
(还不确定rebuild.c等相关的程式码的功用, 所以先暂时放着不管..)
如果直接执行里面的 post.py 的话, 会跳出很多错误讯息
要你安装一些 python 的 module(模组), 大部分都可以用 pip 装起来
有些东西却怎麽找也找不到 (big5和big5_tb1)
这时重点在於里面的一个 symbolic link 连结到的
pyutil 目录里的东西
因为几乎所有的BBS主要介面与里面的档案支援的都是Big5编码
但python若要认得&可以处理的中文字元主要是UTF-8等字元
(待确认...)
所以要让相关的python程式顺利执行, 里面附上的相关编码转换套件就得先装好:
查看code里面所需要用到的文件, 请先将两个Big5与UTF-8互转的编码表下载下来:
( uao250-b2u.big5.txt , uao250-u2b.big5.txt )
Google以上档名或「Unicode补完计画」可以找到相关资源,
以下仅列举看到的相关连结: (若仍有版权相关疑虑, 还麻烦站内信告知, 感谢)
https://moztw.org/docs/big5/table/uao250-b2u.txt
https://moztw.org/docs/big5/table/uao250-u2b.txt
将相关档案下载下来并放置在 ~/pttbbs/common/sys/ 目录里後
此时请先按照 pyutil 里面有一个档案 big5_gen.py 所附上的指示执行:
$ cd pyutil
$ ./big5_gen.py > big5_tbl.py
此时相关编码问题即可解决
之後我是直接执行相关程式并自行将相关输出的记录放在 ~/log/ 目录里备用
(如果有更好的方法还麻烦补充..)
$ python ~/pttbbs/daemon/postd/postd.py &>> ~/log/postd.log &
$ python ~/pttbbs/daemon/commentd/commentd.py &>> ~/log/commentd.log &
即可让程式开始执行
然後如果就 BBS主程式 而言还有执行的话可以先 Kill 掉後重新启动
或reboot重新开机後, 再执行 postd.py commentd.py 等相关指令
同理, 之後也可将这些执行脚本放到 /etc/rc.local 或是其他类似设定档
这样开机後就可以自动启用此类功能了
--
▄▅◣ ◢▆▄
┼───
◢████◣
◢▄▅▄◣ ◢████◣
┼ 敲敲hh,呼叫小天使。
◢█
╱ " █◣
▌ ▌◢██
" █
╲█◣
│
◢
∕/ █◤
◥▄▅▄◤ ◥█
\﹨ ██◣
│ 虽然不是无时无刻都在, │
◢█
/ ██◤
ψ阿鬼 ◥██
\ █◣
┼
◤ ◥
但祂会尽力地服务您。─┼
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.101.29
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PttCurrent/M.1496504056.A.EB6.html
这边没有介绍到全部相关的外部程式,
像是daemon里还有一些:
1. 可以跟 Ptt 网页介面连结的程式
2. (可能Ptt等级的人气才会用到的) 海量登入前导程式
3. 小天使相关程式与统计外部程式
等之後有更多资讯再补充, 或麻烦其他板友分享这样
==
已将之後修正的相关内容放到 github 的 wiki 上
如果有需要指正的也可以直接到那里编辑文件:
https://github.com/ptt/pttbbs/wiki/
※ 编辑: holishing (140.116.101.37), 09/20/2017 22:53:55