之前我曾在這版建議過一些階段性步驟, 以學習 package management 的基本概念. 若真的有按建議去學習過的朋友, 不妨來思考一下 tarball 安裝方式的卻點有哪些不足之處. 比方說: * 各 packages 及 libraries 之間的相依性如何為護及保證? * 如何維護與查詢/驗證 packages 的各項資訊?(啥版本? 裝哪去了? 改了哪些? 影響了哪些? 等等) * 在多人管理的情況下如何為持統一標準?(將心比心, 先將自己代入為接管貴系統的人來思考.)
然後, 再思考一下如何解決上述問題? * 以書面寫下詳細工作日誌? * 以文檔格式寫日誌? * 以數據庫來管理?
若你認為用數據庫是好的, 那麼: * 自己開發? * 用別人寫好的?
若用別人的, 那麼有哪些可用? * dpkg? * RPM? * others?
若你選用 RPM , 那最好了解一下 RPM DB 可以幫助我們維護哪方面的資訊? 如何查詢? 如何靠之來確保 packages 之間的和協與統一? 最好了解一下 RPM spec 如何影響 binary rpm 及 rpm db 的行為?
最後, 再看看一旦系統已經導入了 RPM db, 如何善用它? 又, 若這時再混用了 tarball , 而放棄掉 rpm db 的一切優點, 將會導致甚麼結果? * packages 資訊的完整性會否殘缺? * packages 相依性是否遭到破壞? * 導入 rpm db 的目的是否失去義意了? * 那跟沒有 db 來管理有啥不同? (回想前面請你思考的 tarball 之卻點?)
若你認為 rpm db 對你來說是毫無意義的, 或說是一種限制. 那真的不必理我前面提出的各種思考. 若你認同 rpm db (或其他 package management tools)的意義. 再下來, 想想 tarball 的便利性, 是否也可透過自己的努力, 使之也可應用於 rpm db 裡? (tips: RPM spec)
若你已經開始著手自己來 build rpm 了. 最後, 請思考一下: 你自己 build 出來的 binary rpm , 一定可順利的跑在別人的系統上嗎? 有想過彼此環境上的差異嗎? 這時再反過來: 若你用的是別人 build 的 RPM, 那一定可順利跑在自己的系統上嗎? (這正是樓主碰到的問題之所在啦!)
(出处:http://www.sheup.com)