星期一, 7月 16, 2007

Bye bye! FreeBSD 4

自從FreeBSD 4.11無法從母站下載新的Ports Index DB,就陷入痛苦的package版本錯亂時代。眼尖的同事早就發現最近的安全性更新都不再提供FreeBSD 4的更新。

為了要安裝新套件,只好勇敢的把沒有備援機的Server用CD升級成6.2 Release。這次升級雖然有用VM模擬過,但畢竟是用了六年的系統,一堆legacy so檔,升級時Server上的筆電用cdrom又會挑片,痛苦指數100%呀!這次升級遇到許多的問題:
  1. 升級完由於某些自動機制沒搞好,帳號必須自己再手動把master.passwd從/var/tmp/etc裏和新的帳號合併,這點我還可以接受。
  2. 再來則是升級完pop3馬上不能用,升級也發生錯誤,後來發現舊套件似乎相依性有問題,移除qpopper再重新編譯安裝後解決。
  3. 接著是發現mysql和postgresql都跑不起來,也只好重新安裝。在perl升級的過程中,才是真正的地獄,連compile都有錯誤,是真的Dll Hell呀!想到用別台FreeBSD 6.2,做出一個tbz丟過來安裝,似乎還能用,沒想到馬上openwebmail就掛了,維護者leeym最近到米國似乎很忙,要問也找不到人呀!雖然用了很多怪招,但一時之間太多舊的package需要升級,只好先把speedy-cgi關掉,才暫時化解危機,隔一天才看到這裏的解法。
    portupgrade -f "perl-5.8.*" -m "ENABLE_SUIDPERL=yes" -r "perl-5.8.*"
    再編輯
    /usr/local/www/cgi-bin-dist/openwebmail/etc/defaults/suid.conf

    has_savedsuid_support   yes → no

  4. 套件更新的過程中又遇到openssl升級的問題,openssl升級後apache之類與SSL相關的程式全掛,但因為升級順序必須自己手動重新編譯。
所以到現在過了兩天,那台機器仍在辛苦的更新套件中。敬告線上有服務的朋友,有機器時還是安裝在新硬碟搬過來比較實際,鳥毅是因為沒機器用才這樣惡搞。

如果真的照說的下 portupgrade -urRfa,大概三天三夜也跑不完,沒事千萬不要加-Rrfa,用 -Rrua,再手動更新一些套件就應該夠了。

參考:
[續] FreeBSD port tree 的保養: portupgrade 的用法
upgrade Perl with portupgrade
[FreeBSD] portupgrade 可能出現的問題和解決方法

沒有留言: