天天看點

bugzilla更新出現perl子產品無法安裝問題解決辦法

終極解決方案:

修改Config.pm

urllist為空

cpan

CPAN>reload index

CPAN>reload cpan

<a href="http://blog.csdn.net/bjbs_270/archive/2007/09/20/1793835.aspx">http://blog.csdn.net/bjbs_270/archive/2007/09/20/1793835.aspx</a>

在對公司的bugzilla伺服器更新過程中,碰到了perl下載下傳出錯的問題.以前都沒碰到過,并且查找網絡解決方案,國内外也沒有這方面的明确解決問題的辦法。但其實問題解決又很友善,關鍵是找到根源,順藤摸瓜。

公司的bugzilla伺服器是3.1版本的,至今還不是很清楚為什麼在送出或者更改bug狀态時,頁面進度條非常慢,送出一個Bug似乎需要兩三分鐘,但其實資料庫已經寫進去了。我剛接手這個伺服器,工程師向我反映這個問題後,我立馬做了個測試系統進行測試,用的是最新bugzilla-3.2.3的版本,資料庫版本不變。

測試結果顯示,我的測試bugzilla伺服器在送出和更改bug狀态頁面進度條運作很快,頁面也重新整理很快。不存在以上問題,是以我大緻推測如下:

1:buzilla伺服器的mysql資料庫安裝有問題,在這發覺偶的前輩并沒有編譯mysql資料庫,是直接下載下傳源代碼然後直接運作的。

2:bugzilla的問題或其它。

//************以下為編譯mysql工作***********************

按照推測思路,我就在半夜等工程師沒有使用伺服器時開始進行更新工作了.....(幹IT的就是苦命啊....)

我先将mysql重新進行了編譯安裝,加入了子產品靜态安裝選項。指令如下:

% &gt;CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"

./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static

安裝好後,将原來備份的資料庫檔案導入(用的是mysqldump備份資料庫,直接導入回去即可),運作Bugzilla,送出一個測試bug,發現速度似乎沒有改觀,還是老問題,網頁進度條速度太慢,等了2分鐘也看不到回訪結果。看來第一步并不是問題根源。

//*************以下為安裝更新Bugzilla工作****************

下一步,我決定更新bugzilla版本,下載下傳最新版本3.2.3後,解壓到/usr/loca/bugzilla下,執行./checksetup.pl,這段過程bugzilla會自動搜尋缺少子產品并提示安裝,但剛開始,就發現出現了問題:

.........

...........

//**************perl安裝錯誤***********************

Going to read /root/.cpan/sources/modules/02packages.details.txt.gz

Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Line-Count header.

Please check the validity of the index file by comparing it to more

than one CPAN mirror. I'll continue but problems seem likely to

happen.

Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Last-Updated header.

Can't locate object method "data" via package "CPAN::Modulelist" (perhaps you forgot to load "CPAN::Modulelist"?) at (eval 20) line 1.

我把錯誤主要提示摘抄如上,看提示似乎是檔案錯誤,提示沒有last-updated header.

到/root/.cpan/sources/modules/目錄下看這幾個檔案,都隻是200個位元組。肯定有問題,沒有從将檔案下載下傳下來。

......

中途走了很多彎路,用google搜了半天,沒好到有效的解決辦法。問題依舊,靜下心來仔細想想,肯定是有配置檔案在搞鬼了。

//*************解決CPAN安裝錯誤方法******************

經過一番摸索,找到了問題根源,解決辦法如下:

到/usr/lib/perl5/5.8.5/CPAN/目錄下,編輯Config.pm檔案,

将'urllist' =&gt; [q[http://cpan.modperl.cn/]],

更改為:'urllist' =&gt; [],

讓系統自己去找尋最佳子產品源網站,perl程式會自動到 ftp://ftp.perl.org/ 網站找尋檔案,以前的http://cpan.modperl.cn/ 是錯誤的。我很奇怪這個網站是手動添加還是系統自動的呢?看來這已成為個謎了。

經過bugzilla一番長時間的下載下傳和安裝,基本缺失的子產品都已經下載下傳下來了。拷貝老的bugzilla裡面的data檔案夾和localconfig檔案到新目錄。

将老的bugzilla檔案夾mv bugzilla_old,新的bugzilla檔案夾代替成bugzilla,apache伺服器配置可以保持不變。這樣,就完成了新的Bugzilla更換工作。

測試結果顯示一切都和原來我在自己電腦上測試結果一樣,頁面進度條運作緩慢的問題不再出現。

-----------------------

//*************安裝GD錯誤*******************

在安裝更新bugzilla過程中,安裝GD時出現一個錯誤,

/usr/bin/perl install-module.pl GD

..........

**UNRECOVERABLE ERROR**

Could not find gdlib-config in the search path. Please install libgd

2.0.28 or higher.

If you want to try to compile anyway, please rerun this script with

the option --ignore_missing_gd.

但是,我在通過RPM包檢查發現2.0.28是安裝了的:

rpm -qa |grep "^gd-/|^gd-devel-"

gd-2.0.28-4

gd-devel-2.0.28-4

//*************解決GD安裝錯誤方法**************

我的系統是RHEL AS4的版本哦,後來RED HAT官方說是因為RHEL AS4中不帶glib-config指令的,隻有RHEL AS5帶了這個指令,我們需要做的就是重新下載下傳gd源包,編譯生成glib-config檔案然後拷貝到/usr/bin下即可。

下載下傳URL:http://www.boutell.com/gd/manual2.0.28.html#getgd

編譯:./configure --prefix=/usr/local/gd &amp;&amp; make make install

編譯完成後生成目錄裡,拷貝/bin/glib-config到/usr/bin下。可以删除/usr/local/gd檔案夾。

再重新安裝GD,順利通過。

<a href="http://carywu.blog.51cto.com/13185/156197">本文出自 51CTO.COM技術部落格</a>