bugzilla更新出現perl模組無法安裝問題解決辦法

leixue0906發表於2015-11-18


轉自:http://carywu.blog.51cto.com/13185/156197




在對公司的bugzilla伺服器升級過程中,碰到了perl下載出錯的問題.以前都沒碰到過,並且查詢網路解決方案,國內外也沒有這方面的明確解決問題的辦法。但其實問題解決又很方便,關鍵是找到根源,順藤摸瓜。
公司的bugzilla伺服器是3.1版本的,至今還不是很清楚為什麼在提交或者更改bug狀態時,頁面進度條非常慢,提交一個Bug似乎需要兩三分鐘,但其實資料庫已經寫進去了。我剛接手這個伺服器,工程師向我反映這個問題後,我立馬做了個測試系統進行測試,用的是最新bugzilla-3.2.3的版本,資料庫版本不變。
測試結果顯示,我的測試bugzilla伺服器在提交和更改bug狀態頁面進度條執行很快,頁面也重新整理很快。不存在以上問題,所以我大致推測如下:
1:buzilla伺服器的mysql資料庫安裝有問題,在這發覺偶的前輩並沒有編譯mysql資料庫,是直接下載原始碼然後直接執行的。
2:bugzilla的問題或其它。


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


按照推測思路,我就在半夜等工程師沒有使用伺服器時開始進行升級工作了.....(幹IT的就是苦命啊....)
我先將mysql重新進行了編譯安裝,加入了模組靜態安裝選項。命令如下:
% >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' => [q[]],
更改為:'urllist' => [],
讓系統自己去找尋最佳模組源網站,perl程式會自動到 ftp://ftp.perl.org/ 網站找尋檔案,以前的 是錯誤的。我很奇怪這個網站是手動新增還是系統自動的呢?看來這已成為個謎了。


經過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:
編譯:./configure --prefix=/usr/local/gd && make make install
編譯完成後生成目錄裡,複製/bin/glib-config到/usr/bin下。可以刪除/usr/local/gd資料夾。
再重新安裝GD,順利透過。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26845409/viewspace-1840394/,如需轉載,請註明出處,否則將追究法律責任。

相關文章