CentOS 5 上的 Firefox 4

隨著 mozilla.com 發佈 Firefox 4,CentOS 5.x 內的 libstd++ 無法滿足執行該版 Firefox 的需求。你按一般方法安裝 Firefox 會遇到以下的錯誤:

<某路徑>/firefox-bin: <某路徑>/libstdc++.so.6: version GLIBCXX_3.4.9 not found (required by <某路徑>/libxul.so)

該問題已記載在這個 mozillazine 論壇議題(Firefox 4.0b9 and CentOS 5.5)。以下的解決辨法適用於 Firefox 4.0 版及 CentOS 5.6。

Mozilla 在他們的 bugzilla 內(錯誤 621704)表示,他們決定不會修正這個問題。

權宜之計就是將一個來自 Fedora、可在 CentOS-5 下運行、並且滿足 Firefox-4 需求的 libstdc++.so.6 與 Firefox 的其它函式庫一併放置在 Firefox-4 的目錄裡。由於你將會使用一個不被支援的 libstdc++.so.6 版本,你務必要把這個函式庫放進 Firefox 目錄而不是系統般用的位置,因為後者會把它提供給其它程式。

安裝下列套件是執行 mozilla.com 網站的 Firefox 4 的先決條件:

你可以利用以下指令來安裝它們:

yum install alsa-lib atk cairo dbus-libs expat fontconfig freetype glib2 glibc gtk2 libcap libgcc libICE libjpeg libpng libSM libX11 libXau libXcursor libXdmcp libXext libXfixes libXi libXinerama libXrandr libXrender libXt pango xulrunner zlib

i386 版安裝

你需要下載 Mozilla 網站裡最新版的 Firefox 4(註:這是 en-US 語系的最新 4.0 版安裝。要取得其它語系或版本,你可瀏覽下列連結。最新的壓縮檔名叫 firefox-4.0.tar.bz2):

Firefox 4.0 i686

你也需要下載一個合適的 libstdc++.so.6。在這個例子中,你可採用 Fedora 9 i386 的版本:

libstdc++-4.3.0-8.i386.rpm

當你擁有這兩個套件,請用以下方法將它們解壓到一個目錄內:

mkdir firefox4
mv firefox-4.0.tar.bz2 libstdc++-4.3.0-8.i386.rpm firefox4
cd firefox4
tar xvjf firefox-4.0.tar.bz2

上述做法會在現有層級建立一個 firefox 目錄。現在我們須要解壓 libstdc++ rpm 並將 libstd++.so 檔複製至該 firefox 目錄:

mkdir libstdc
cd libstdc
rpm2cpio ../libstdc++-4.3.0-8.i386.rpm | cpio -idv
cp usr/lib/libstdc++.so.6.0.10 ../firefox/libstdc++.so.6
cd ..

現在你應該已返回你的 firefox4 目錄,並且把函式庫複製至 firefox 目錄內。這個指令能告該你它的位置是否正確:

ls firefox/libstdc++.so.6

結果應該是:

firefox/libstdc++.so.6

現在你已準備好把 firefox 目錄放置在任何一個用來執行它的位置。我一般會把它放置在 /usr/lib/firefox-4。首先,我先會轉換身份為 root:

su

接著我會設定 root 為擁有者及複製檔案:

chown -R root.root firefox
cp -a firefox /usr/lib/firefox-4

現在你可以退出 root 的指令殼及利用以下指令執行 firefox:

/usr/lib/firefox-4/firefox

x86_64 版安裝

你需要下載 Mozilla 網站裡最新版的 Firefox 4(註:這是 en-US 語系的最新 4.0 版安裝。要取得其它語系或版本,你可瀏覽下列連結。最新的壓縮檔名叫 firefox-4.0.tar.bz2):

Firefox 4.0 x86_64

你也需要下載一個合適的 libstdc++.so.6。在這個例子中,你可採用 Fedora 9 x86_64 的版本:

libstdc++-4.3.0-8.x86_64.rpm

當你擁有這兩個套件,請用以下方法將它們解壓到一個目錄內:

mkdir firefox4
mv firefox-4.0.tar.bz2 libstdc++-4.3.0-8.x86_64.rpm firefox4
cd firefox4
tar xvjf firefox-4.0.tar.bz2

上述做法會在現有層級建立一個 firefox 目錄。現在我們須要解壓 libstdc++ rpm 並將 libstd++.so 檔複製至該 firefox 目錄:

mkdir libstdc
cd libstdc
rpm2cpio ../libstdc++-4.3.0-8.x86_64.rpm | cpio -idv
cp usr/lib64/libstdc++.so.6.0.10 ../firefox/libstdc++.so.6
cd ..

現在你應該已返回你的 firefox4 目錄,並且把函式庫複製至 firefox 目錄內。這個指令能告該你它的位置是否正確:

ls firefox/libstdc++.so.6

結果應該是:

firefox/libstdc++.so.6

現在你已準備好把 firefox 目錄放置在任何一個用來執行它的位置。我一般會把它放置在 /usr/lib64/firefox-4。首先,我先會轉換身份為 root:

su

接著我會設定 root 為擁有者及複製檔案:

chown -R root.root firefox
cp -a firefox /usr/lib64/firefox-4

現在你可以退出 root 的指令殼及利用以下指令執行 firefox:

/usr/lib64/firefox-4/firefox

Translation of revision 3

zh-tw/TipsAndTricks/Firefox4onCentOS5 (last edited 2011-04-19 04:26:34 by TimothyLee)