回覆列表
  • 1 # zwwmmz

    軟體安裝目前據我所見大概有幾種方式,試總結如下:

    installer模式。windows下常見的exe安裝包,osx下的pkg安裝包,unix下也有不少bin安裝包。由開發者負責開發另一個程式來部署應用程式及其反安裝程式。package模式。由OS內建的包管理器管理。linux下每個發行版都有一個;windows有msi;等等。打包者(可能是開發者自己也可能是專職的)負責將主程式和一些指令碼寫好,打包;包管理器負責解析和具體的安裝/反安裝操作。bundle模式。從osx的app開始,ipa/apk都是這個模式的派生;windows下的“綠色軟體“馬馬虎虎也算這個模式。開發者只負責打包;OS只負責執行;使用者隨意增刪。ports模式。算是package的一個分支,技術人群熟悉,不必詳談。對解除安裝而言,問題一般有這幾個:零是程式本身的清理,這個所有模式都可以保證解決;一是配置資料的清理;二是installer模式下解除安裝程式本身的清理(別笑!十幾年前這可是個大問題……),事實上我覺得OS引入包管理有一部分原因就是為了解決這個問題(另外還為了OS自身的模組化,包之間的依賴關係,等等),畢竟有些OS不允許程式在執行時刪除自身。剩下的問題主要就出在配置資料上。(其實對配置資料,我記得大多包管理系統預設都是不加刪除的,以備下次安裝上還可以用;除非使用者手動指定刪除)。配置資料在表現上有兩種形式:檔案、系統配置資料庫中的表項(登錄檔/dconf/keychain, etc)。檔案這部分沒什麼好說的。系統配置資料庫本來也不應該有什麼問題,但具體到windows的登錄檔,其早期的實現有個大問題:增刪乃至讀效率都會隨著其節點數提高而降低。這使得對windows而言,徹底的解除安裝除了潔癖上的意義還具有實際使用上的意義。回到解除安裝不乾淨的問題,就是uninstaller寫法上的問題了。精心設計的話,installer這個模式是不存在什麼死角的。

  • 中秋節和大豐收的關聯?
  • PPR鋁塑複合管主要特點是什麼?