<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>后院&#124;kevin’s backyard &#187; perl</title>
	<atom:link href="http://kevin.9511.net/archives/tag/perl/feed" rel="self" type="application/rss+xml" />
	<link>http://kevin.9511.net</link>
	<description>立志做一个混事业型男人</description>
	<lastBuildDate>Fri, 30 Apr 2010 16:55:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>安装Bugzilla遇到的问题</title>
		<link>http://kevin.9511.net/archives/294.html</link>
		<comments>http://kevin.9511.net/archives/294.html#comments</comments>
		<pubDate>Tue, 28 Jul 2009 10:27:57 +0000</pubDate>
		<dc:creator>kevin</dc:creator>
				<category><![CDATA[技术备案]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[ldconfig]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://kevin.9511.net/?p=294</guid>
		<description><![CDATA[几天前，要为公司架设Bugzilla系统，因为一个DBD::mysql的问题，花费了整整一宿的时间。该问题的解决，又是在浩瀚的英文互联网资源的帮助下得到的解决。中文资料，除了复制就是粘贴，根本没有解决问题的方法，而且按照资料根本无法安装成功，也不知道这些人是怎么弄成的。现在就做个简单的中文版的备份吧。
由于checksetup.pl脚本的存在，其实bugzilla的安装应该是非常顺利的，10多分钟，基本所有bugzilla需要的cpan扩展包都安装成功，最后出了一个数据库选择的提示。bugzilla目前可支持MySQL、PostgreSQL、Oracle三种数据库，需要要按自己的实际环境安装不同数据库的CPAN模块。所有的中文文档里，对这个步骤的形容都是跟其他模块一样，一条“/usr/bin/perl install-module.pl DBD::mysql”就可以搞定，可实际上……并非如此，起码我这么装没有成功，我个人估计，是因为他们安装Bugzilla的服务器跟mysql所运行的服务器在一台上面。我要安装Bugzilla的服务器，只编译安装了mysqlclient，并没有server存在。
在安装Bugzilla的时候，通过其提供的“install-module.pl”命令安装的CPAN模块，都是装在Bugzilla所在目录的lib目录下。而手动下载CPAN模块并安装的时候，在我的这台服务器上，默认是安装到“/usr/lib/perl5/5.8.5/”目录下的。这两个目录的结构相同。Bugzilla的checksetup.pl脚本在检测安装所需模块的时候，这连个路径都会扫描。
通过http://search.cpan.org搜索“DBD-mysql”，并下载“DBD::mysql”。解压缩后运行下面命令：
perl Makefile.PL &#8211;libs=&#8221;-L/usr/local/mysql-5.1.36/lib/mysql -lmysqlclient -L/usr/lib -lz&#8221; &#8211;cflags=-I/usr/local/mysql-5.1.36/include/mysql &#8211;mysql_config=/usr/local/mysql-5.1.36/bin/mysql_config &#8211;testhost=192.168.1.208 &#8211;testdb=test &#8211;testuser=bugs &#8211;testpassword=bugs
其中的“/usr/local/mysql-5.1.36”是安装mysqlclient的路径。在安装DBD::mysql的时候，会检测与mysql服务器的联通性，这里的testhost、testdb、testuser、testpassword就是做这个用的。用户bugs我事先在mysql服务器添加好了。
安装好“DBD::mysql”后，再次运行checksetup.pl脚本，出现了如下提示：
Reading ./localconfig&#8230;
Checking for       DBD-mysql (v2.9003) ok: found v4.005
Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 1213, &#60;DATA&#62; line 228.
Use of uninitialized value in subroutine entry at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 1213, &#60;DATA&#62; line 228.
Had to create DBD::mysql::db::imp_data_size unexpectedly at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBI.pm line 1243, [...]]]></description>
			<content:encoded><![CDATA[<p>几天前，要为公司架设Bugzilla系统，因为一个DBD::mysql的问题，花费了整整一宿的时间。该问题的解决，又是在浩瀚的英文互联网资源的帮助下得到的解决。中文资料，除了复制就是粘贴，根本没有解决问题的方法，而且按照资料根本无法安装成功，也不知道这些人是怎么弄成的。现在就做个简单的中文版的备份吧。<span id="more-294"></span></p>
<p>由于checksetup.pl脚本的存在，其实bugzilla的安装应该是非常顺利的，10多分钟，基本所有bugzilla需要的cpan扩展包都安装成功，最后出了一个数据库选择的提示。bugzilla目前可支持MySQL、PostgreSQL、Oracle三种数据库，需要要按自己的实际环境安装不同数据库的CPAN模块。所有的中文文档里，对这个步骤的形容都是跟其他模块一样，一条“/usr/bin/perl install-module.pl DBD::mysql”就可以搞定，可实际上……并非如此，起码我这么装没有成功，我个人估计，是因为他们安装Bugzilla的服务器跟mysql所运行的服务器在一台上面。我要安装Bugzilla的服务器，只编译安装了mysqlclient，并没有server存在。</p>
<p>在安装Bugzilla的时候，通过其提供的“install-module.pl”命令安装的CPAN模块，都是装在Bugzilla所在目录的lib目录下。而手动下载CPAN模块并安装的时候，在我的这台服务器上，默认是安装到“/usr/lib/perl5/5.8.5/”目录下的。这两个目录的结构相同。Bugzilla的checksetup.pl脚本在检测安装所需模块的时候，这连个路径都会扫描。</p>
<p>通过http://search.cpan.org搜索“DBD-mysql”，并下载“DBD::mysql”。解压缩后运行下面命令：</p>
<blockquote><p>perl Makefile.PL &#8211;libs=&#8221;-L/usr/local/mysql-5.1.36/lib/mysql -lmysqlclient -L/usr/lib -lz&#8221; &#8211;cflags=-I/usr/local/mysql-5.1.36/include/mysql &#8211;mysql_config=/usr/local/mysql-5.1.36/bin/mysql_config &#8211;testhost=192.168.1.208 &#8211;testdb=test &#8211;testuser=bugs &#8211;testpassword=bugs</p></blockquote>
<p>其中的“/usr/local/mysql-5.1.36”是安装mysqlclient的路径。在安装DBD::mysql的时候，会检测与mysql服务器的联通性，这里的testhost、testdb、testuser、testpassword就是做这个用的。用户bugs我事先在mysql服务器添加好了。</p>
<p>安装好“DBD::mysql”后，再次运行checksetup.pl脚本，出现了如下提示：</p>
<blockquote><p>Reading ./localconfig&#8230;<br />
Checking for       DBD-mysql (v2.9003) ok: found v4.005<br />
Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 1213, &lt;DATA&gt; line 228.<br />
Use of uninitialized value in subroutine entry at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/DBI.pm line 1213, &lt;DATA&gt; line 228.<br />
Had to create DBD::mysql::db::imp_data_size unexpectedly at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBI.pm line 1243, &lt;DATA&gt; line 228.<br />
Use of uninitialized value in subroutine entry at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBI.pm line 1243, &lt;DATA&gt; line 228.<br />
There was an error connecting to MySQL:</p>
<p>Undefined subroutine &amp;DBD::mysql::db::_login called at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/mysql.pm line 142, &lt;DATA&gt; line 228.</p></blockquote>
<p>在网上查了很长时间，按照网上的描述，修改localconfig文件n次，重新安装配置DBD::mysqln次，依然未果，而且就网上的说法，造成这个错误提示的原因有很多种。正在抓耳挠腮，郁闷之极的时候，突然看到一个邮件里表里有说mysql lib的问题。马上想到自己安装mysql的时候，是rpm卸载掉系统默认的4.0后，手动编译安装的mysql5.1。赶紧运行ldconfig，靠的，还真没有mysql的lib。修改/etc/ld.so.conf文件，把mysql的lib路径加进去，运行ldconfig。然后回到bugzilla目录重新运行checksetup.pl，一切哦耶了。</p>
<p>在中文论坛里，也看到一些人说mysql本来是4.x，bugzilla运行正常，后来升级成5.x之后，就出错了。这些错误应该也是跟我的问题一样，跟mysql的版本没什么关系。</p>
<p>关于ldconfig的问题，再次提醒下自己……<a href="http://kevin.9511.net/archives/177.html" target="_blank">http://kevin.9511.net/archives/177.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kevin.9511.net/archives/294.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

