post by tommy @ 15 九月, 2006 14:33
由於自行 build 這個 rpm 時, 需要安裝一些我們原本沒有安裝的東西, 因為我們自己的 CentOS 4 的 mirror, 已經更新到最新的 4.4 了, 所以使用 yum 安裝時, 自然抓到的都是 4.4 的東西, 而不是 4.3 的東西.
在安裝完後發現, 只要我們一執行 yum 指令, 系統的 CPU 就被 yum 佔用了 (後來發現應該是記憶體會被一直用掉), 然後 loading 持續往上跑, 最後... 完全沒辦法使用.
到 Google 找了一下, 發現有人碰過這個問題, 也提出的解決的方法如下:
rpm -e sqlite python-sqlite yum sqlite-devel
rm -rf /var/cache/yum
rpm -ivh http://centos.cs.ucr.edu/centos/4.3/os/x86_64/CentOS/RPMS/python-sqlite-1.1.6-1.x86_64.rpm \
http://centos.cs.ucr.edu/centos/4.3/os/x86_64/CentOS/RPMS/sqlite-3.2.2-1.x86_64.rpm \
http://centos.cs.ucr.edu/centos/4.3/os/x86_64/CentOS/RPMS/sqlite-devel-3.2.2-1.x86_64.rpm \
http://centos.cs.ucr.edu/centos/4.3/os/x86_64/CentOS/RPMS/yum-2.4.2-2.centos4.noarch.rpm
把 sqlite, yum, sqlite-devel, python-sqlite 移除後, 然後重裝 4.3 版本的 yum 就可以了.
經過上頭的方式處理後, 果然可以正常使用了.
注意:
- 猜測這個是因為 sqlite 所引起的, 因為我們那時安裝的軟體有 sqlite-devel, 那時會把 sqlite 也更新到新的版本上頭去, 而 yum 及 python-sqlite 仍是舊的版本吧. 不過...我沒試過是不是只要把 sqlite 換回 4.3 的版本就可以了.
- 如果照正常的 yum update, 直接把 CentOS 4.3 升到 4.4, 並不會有這個問題.
- 關於自行 build php 5.1.6 的部份, 使用原本系統的 gcc 3.3 版本, 無法編譯, 我們是安裝 gcc4, gcc4-++ 兩個軟體, 然後到 /usr/bin 下頭, 把原本的 gcc, g++ 先改名, 再把 gcc4, g++4 改成 gcc, g++. 這樣子就可以使用 rpmbuild 由 FC5 中的 php 5.1.6 的 srpm 來產生相關的 rpm 檔案了.