2010年2月28日 星期日

FreeBSD 的 Ports

(以下是抱怨文,請大家略過)

小弟從 FreeBSD 2.x 開始玩的。
FreeBSD 的 Ports 剛推出的時候,實在是很不錯的特色,因為其上收集了許多最新的軟體,免去以往都要先下載 tar.gz 檔案回來解壓縮、make install 的流程。

[[MORE]]
但近來隨著 ports 越來越龐大,我就覺得它實在可以退休了。目前 Linux 就已經做得很不錯,可以考慮像 rpm、deb 那樣,很方便直接安裝 binary 就好了。

雖然 package 的機制:pkg_add、pkg_delete、pkg_info 等也很早就有了,但是最重要的 pkg_update 卻被拿掉了,結果用 pkg_add 裝好的軟體卻還是擺脫不了要編譯原始碼的命運。(用 portupgrade 編譯)

(誰要編原始碼啊?拜託~)

有原始碼很好,強大的駭客們、程式設計師們可以進行修改,讓軟體更加好用。但絕大多數的人並不會去改到原始碼,那為什麼不直接提供編好的 binary 呢?在 Linux 上面有安全性更新,或是一般版本更新要升級,只要一鍵瞬間完成,但 FreeBSD 用 portupgrade 卻可能要先解決一堆 dependency 、library 的問題,例如我只是要更新 apache,因為卡到 php,php 又卡到 perl 與 mysql,然後就這樣 blahblah 沒完沒了,編譯過程沒問題還好,有時候噴出一堆 error,還是要一樣一樣慢慢解決。

除了 packages 之外,就連系統本身也是,幸好 6.x 之後有了 freebsd-update ,不然常常在創造世界(make world),真的有點累。那個 mergemaster 也一樣超累,有時候怕覆蓋到重要設定檔,總是得一一檢查,但是這些步驟真的有需要嗎?

因為這些煩人的步驟,會不會讓系統管理員對「升級、更新」這件事望而生畏,而導致「不更新」,進而造成更多系統安全問題呢?我相信提供這些原始碼、設定檔,就是為了讓系統更方便作微調、也可以避免不安全的程式碼或設定混進來,但我覺得這些東西應該由開發者把關,大多數的使用者是沒有能力去了解這些東西的,反而容易造成更新失敗導致系統掛點。

FreeBSD 要加油啊~

7 則留言:

  1. 但是FreeBSD的穩定、安全、高效率(聽說pixnet的DB就是跑FreeBSD)還是無法取代的。

    回覆刪除
  2. 非常有同感. 小弟玩的是 Macports. 每次要 port upgrade 的時候手都好抖. 自己的筆電又不是多猛, 編譯慢吞吞. 想編個 gtk, gimp, gcc 大概都要一整天. 要不是愛用自由軟體, 我還真的受不了啊! 人家 deb, rpm 或是 Arch Linux package 都做得很好, 難怪 linux 會紅.

    回覆刪除
  3. NickHsu: 所以我現在還是在用 FreeBSD 啊~ (雖然有一小部分想移往 Linux 了)

    Apan: 是啊,也難怪FreeBSD不紅,呵呵,當然其中還有 Xwindows 便利性的因素啦~無腦的東西比較容易被大眾接受。並不是每個人都想自己編譯 Xwindow、gimp 這種東西的!

    回覆刪除
  4. freebsd编译确实烦,配置低的机子不知道要编译多久

    回覆刪除
  5. 無聊: 編譯很久倒是還好,編譯出來發現一堆問題,舊版卻又已經移除的時候,要復原更是麻煩啊~

    回覆刪除
  6. portupgrade 有個參數 -PP 用過嗎:p

    回覆刪除
  7. gaod: 喔喔,我沒用過耶,晚點來試試看!多謝提供資訊啦!

    回覆刪除