劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-04-14 13:38
怎樣執行安裝程式?
7
回覆列表
1 # 使用者37688798790
軟體安裝目前據我所見大概有幾種方式,試總結如下:
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這個模式是不存在什麼死角的。
發表回復
∧
中秋節和大豐收的關聯?
∨
長歌行電視劇是什麼年代的?
熱門排行
2021TAYRON330動力怎樣?
甄貓靠譜嗎?
比亞迪唐冠軍版電池容量?
鹹魚之王黃金錦鯉與利刃哪個好?
龍華富士康ackn是流水線嗎?
適合露營自駕的車型?
騎手接單取消配送要付多少違約金?
清風抽紙190*132是什麼規格?
晶核冒險者小屋怎麼去?
我的世界攻擊力最高的武器是什麼?
軟體安裝目前據我所見大概有幾種方式,試總結如下:
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這個模式是不存在什麼死角的。