Cacti中文版:安装及汉化说明(内含cacti中文版软件包)

时间:2023-01-26 13:01:01

 

开发环境:
1. Linux 2.6.17-gentoo-r8 #2 SMP sparc64 sun4u TI UltraSparc II (BlackBird) GNU/Linux

2. perl, v5.8.8 built for sparc-linux

3. PHP 5.1.6-pl6-gentoo (cli) (built: Nov 24 2006 06:04:31)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
'./configure' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-mod_charset' '--enable-cli' '--enable-safe-mode' '--enable-sigchild' '--enable-magic-quotes' '--enable-rpath' '--enable-short-tags' '--enable-libgcc' '--enable-versioning' '--enable-ipv6' '--with-pcre-regex' '--with-zlib' '--with-bz2' '--enable-bcmath' '--enable-calendar' '--enable-ctype' '--enable-dba' '--with-curl' '--enable-dio' '--with-regex' '--enable-zend-multibyte' '--enable-zend-memory-manager' '--enable-memory-limit' '--enable-inline-optimization' '--enable-xml' '--enable-wddx' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-sockets' '--with-mm' '--enable-shmop' '--enable-session' '--with-readline' '--with-libedit' '--with-qtdom' '--enable-pcntl' '--with-ncurses' '--with-mysql' '--with-mime-magic' '--with-mcrypt' '--enable-mbstring' '--enable-mbregex' '--enable-java' '--with-iconv' '--with-gd' '--enable-ftp' '--with-dom' '--with-mod_charset'
'--with-libmbfl'

4.mysql Ver 14.12 Distrib 5.0.26, for unknown-linux-gnu (sparc) using readline 5.1
./configure --with-big-tables --enable-thread-safe-client --enable-assembler --enable-largefile --with-mysqlfs --with-isam --with-extra-charsets=all

5.Apache/2.0.58
./configure --enable-shared=max

6.RRDtool 1.2.15

7.cjkuni-fonts中文字体,字体名ukai.ttf,下载地址
http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz


安装说明:
1.php要求支持mbstring,mbstring需要libmbfl库,Cacti使用了pcre,所以在编译中一定要加入--with- pcre-regex --with-mbstring --with-libmbfl三项,都无需指定路径(切记).其它如gd,mysql等的支持当然不用说了.

2.RRDtool 1.2.15已经支持多字节语言了,我只修改了rrd_graph.c.将
行51:     {60,          24*3600,   TMT_MINUTE,30, TMT_HOUR,2,    TMT_HOUR,4,           0,"%d日(%H:%M)"},


53:     {180,         24*3600,   TMT_HOUR,1,    TMT_HOUR,6,    TMT_HOUR,12,          0,"%d日(%H:%M)"},

55:     {600,               0,   TMT_HOUR,6,    TMT_DAY,1,     TMT_DAY,1,      24*3600,"周%a(%d日)"},
56:     {1200,              0,   TMT_HOUR,6,    TMT_DAY,1,     TMT_DAY,1,      24*3600,"%d日"},
57:     {1800,              0,   TMT_HOUR,12,   TMT_DAY,1,     TMT_DAY,2,      24*3600,"周%a(%d日)"},
58:     {2400,              0,   TMT_HOUR,12,   TMT_DAY,1,     TMT_DAY,2,      24*3600,"周%a(%d日)"},
行59:     {3600,              0,   TMT_DAY,1,     TMT_WEEK,1,    TMT_WEEK,1,    7*24*3600,"%V周"},
行60:     {3*3600,            0,   TMT_WEEK,1,    TMT_MONTH,1,   TMT_WEEK,2,    7*24*3600,"%V周"},

行3065: //setlocale(LC_TIME,"");
秆3066: #ifdef HAVE_MBSTOWCS
行3067: setlocale(LC_ALL,"zh_CN"); //zh_CN,zh_CN.GB2312,zh_CN.UTF-8都可以.

注:
1)Freebsd下最好使用zh_CN.UTF-8,详见/usr/share/locale/目录,此目录下有当前支持的locale文件,若无相关 zh_CN*,自行安装,使用locale -a命令可以查看当前系统支持的locale,经尝试使用zh_CN与zh_CN.GB2312都有问题。
另外在编译时,可能会有一个错误发生在生成rrdupdate.o时,是由于编译时没有指定 -c后参数,到src目录下手动编译一下,然后回到主目录,make继续即可, -c后的参数为 rrd_update.c.(rrdtool-1.2.15时的错误,freebsd6.1下)

在编译时,可能会有一个错误在sed 's,@''exec_prefix@,/usr/local/rrdtool,' > cgi-demo.cgi.此时ctrl-c中止编译,到example目录下手运行sed 's,@''exec_prefix@,/usr/local/rrdtool,' cgi-demo.cgi.in > cgi-demo.cgi,然后回到主目录,make继续即可.(rrdtool-1.2.18的错误,freebsd6.1下)

2)使用UTF-8时,请打上cacti-xxx-cn-***-utf8.patch补丁。若按以上修改了rrd_graph.c,确认此文件编码为utf-8。

3)建议使用1.2.15以上版本.^_^

3.如何生成cacti库
mysql>
create database cacti default character set gb2312 ;// utf-8环境为 set utf8
mysql> set NAMES 'gb2312'; // utf-8环境为 set utf8
mysql> use cacti;
mysql> source /你的路径/cacti.sql
(上述是为了在cacti.sql中的中文不会受影响)

因为为了更好的支持中文,并且少受环境影响我在Cacti的lib/adodb/drivers/adodb-mysql.inc.php文件中加入
行461:              mysql_query("SET NAMES 'gb2312'");
使每次查询时都使用gb2312编码.(utf-8环境为Set Names 'utf8')

4.为了更好的支持中文,将Cacti中的ereg相关函数全部更新为mb_ereg相关函数.所以需要上述1的支持.

5.没有必要建立linux的中文环境,但一定要在系统中有支持中文的TrueType字体, 安装完成后, 在全局设置中加入此中文字体完整路径,图像即可正常显示中文.

6.由于本人近视严重,所以此版的默认字体大小为16px/14px,原始版为14px/12px/10px,用户可根据个人喜好自行修改.

7.加入了xml输出和输入中文支持,范例为
resource/snmp_queries/interface.xml,修改部分为lib/xml.php:(在测试apache2.0.58,php5.1.6中)

行48: if ($vals[$i]['value']) array_push($children, mb_convert_encoding($vals[$i]['value'],'GB2312','UTF-8'));
行56: array_push($children, mb_convert_encoding($vals[$i]['value'],'GB2312','UTF-8'));
行62: $children{($vals[$i]['tag'])} = mb_convert_encoding($vals[$i]['value'],'GB2312','UTF-8');

注意:在有些版本的php中,xml模块函数对于编码的处理可能是正确的,此时应改回来。即(在测试apache1.3.37,php4.4.4中)
行48: if ($vals[$i]['value']) array_push($children, $vals[$i]['value']);
行56: array_push($children,$vals[$i]['value']);
行62: $children{($vals[$i]['tag'])} = $vals[$i]['value'];

我想可能是xml的模块函数有所改进吧。

8.此汉化版本纯属答谢CU中关心,热爱Cacti的人们所做,如有翻译不当或错误之处,敬请谅解.]

软件包为最新版本(Cacti0.8.6j)的汉化版,(patch为rrdtool设置为zh_CN.UTF-8时使用)下载为:

Cacti中文版:安装及汉化说明(内含cacti中文版软件包)
文件: cacti-0.8.6j-cn.tar.gz
大小: 1094KB
下载: 下载
Cacti中文版:安装及汉化说明(内含cacti中文版软件包)
文件: cacti-0.8.6j-cn-utf8.patch.gz
大小: 114KB
下载: 下载

cacti使用的Plugin Architecture v1.1的中文使用的补丁.

Cacti中文版:安装及汉化说明(内含cacti中文版软件包)
文件: cacti-0.8.6j-cn-1min.diff.gz
大小: 2KB
下载: 下载

Cacti中文版:安装及汉化说明(内含cacti中文版软件包)
文件: cacti-0.8.6j-cn-utf8-1min.diff.gz
大小: 2KB
下载: 下载

9. 汉化版日志:
1)2006年11月6日在CU中戏言过两天提供一个汉化包.
2)2006年11月21日开始汉化工作,基于0.8.6h版,rrdtool 1.2.6.
3)2006年11月22日解决中文方式的库读写,重编php加入mbstring支持,解决页面显示中文显示问题.
4)2006年11月23日在汉化之余偶然看到*的某个论坛有人说rrdtool1.2.15版全面支持多字节语言,重建环境,使用rrdtool1.2.15.
5)2006年11月25日决定工作进程转向汉化并升级到版0.8.6i.
6)2006年11月26日在手动比对1万多条更新信息后完成升级工作.
7)2006年11月27日完成最后的页面翻译及调试工作后发布版本.
8)2006年11月28日00:00:5分完成此文,由此耽误了汉化版于27日发布的任务,自嘲一下.
9)2006年11月29日更改翻译错误,加入了xml生成和读取的中文支持,xml文件格式范例为resource/snmp_queries/interface.xml.
10)2006年11月30日修改添加图像查看中一个有关安全的选项,修改了一些小错误.
11)2006年12月13日打上官方补丁.
12)2006年12月14日加入关于升级安装建议。
13)2006年12月15日修改了安装文档中的一些错误,对于它们给您带来的不便深感慊意。
14)2006年12月16日修改cacti.sql中的几处汉化错误,加入相关软件的我的编译选项.
15)2006年12月29日修改xml.php,将iconv替换为mb_convert_encoding.对于此处的问题做了测试,暂时没有好的方案适合所有平台.
16)2007年1月6日完成在freebsd上的测试(vmvare-ws6 freebsd6.1 apache 1.3.37 php4.4.4 mysql4.1.22).
17)2007年1月13日打上官方3个安全补丁,完成UTF-8版,在开发环境及vmvare-ws6 freebsd6.1 apache 1.3.37 php4.4.4 mysql4.1.22测试通过.修改安装文档。尽可能详细描述安装过程。
18)2007年1月22日升级为0.8.6j版.
19)2007年1月30日测试rrdtool-1.2.18,可以正常使用.
20)2007年2月2-15日打上官方3个补丁.
21)2007年6月5日加入 Plugin Architecture v1.1的中文版补丁.(感谢"李寻欢"同学的帮助)
22)2007年6月19日更新安装包,测试rrdtool-1.2.23,开始plugin的支持工作.
10.升级安装建议

1)先用英文版升级看行不行,如果行,mysqldump -n cacti > bakcacti.sql 备份库.
vi bakcacti.sql 第一行加入 SET NAMES 'gb2312'; //UTF-8环境为SET NAMEs 'utf8'
grep -v '///*' bakcacti.sql | sed '/DROP TABLE/d' | sed "s/latin1 /gb2312/" > bakcacti2.sql
//UTF-8环境为"s/latin1/utf8/"

注意"s/latin1 /gb2312/"是为了替换原来的charset设置,

2)在mysql下
mysql>drop database cacti;
mysql>create database cacti default character set gb2312;
/ utf-8环境为 set utf8
mysql>source /你的路径/ bakcacti2.sql

3)tar -zxvf cacti-0.8.6i-cn-***.tar.gz
   cp -pvR
cacti-0.8.6i-cn-***/* /你的cacti安装路径/
(UTF-8环境下还要打上
cacti-xxx-cn-***-utf8.patch补丁)

4)汉化库的备份及导入:
备份mysqldump -uroot -p cacti --default-character-set=gb2312 > cacti.sql
导入 (
utf-8环境为 --default-character-set=utf8)
mysql>set NAMES 'gb2312'; //UTF-8环境为SET NAMEs 'utf8'
mysql>use cacti;
mysql>source
/你的备份路径/cacti.sql

11.关于UTF-8
由于前面提供的都是以gb2312编码的cacti,用的locale为UTF-8,所以文件都得用iconv进行转换.
形式为iconv -f GB2312 -t UTF-8 输入文件 > 输出文件.
另外使用gb2312的地方改为UTF-8即可.
注:
1)iconv批量修改方式为在shell下运行
find cacti-xxxx -type d -exec mkdir -p utf/{} ';'
find cacti-xxxx -type f -exec iconv -f GB2312 -t UTF-8 {} -o utf/{} ';'
2)我已经提供关于UTF-8的补丁,此部分为编码转换参考,你可以轻松获得big5,big5-utf8的cacti汉化版本.

Cacti中文版:安装及汉化说明(内含cacti中文版软件包)
文件: cacti-plugin-0.8.6j-cn.diff.gz
大小: 10KB
下载: 下载

 

Cacti中文版:安装及汉化说明(内含cacti中文版软件包)
文件: cacti-plugin-0.8.6j-cn-utf8.diff.gz
大小: 10KB
下载: 下载


cacti-0.8.6j的1分钟更新补丁(支持cmd.php,cactid)