為什麼 Windows 的軟體通常需要一步步安裝,而 OS X 下直接能用?

Mac把軟體圖標直接拖進Application就能用了,沒有win的安裝步驟。


Windows下的程序,除了以.exe為後綴名的可執行文件,還需要一些配置文件.ini,需要對註冊表進行配置,需要動態鏈接庫.dll,需要資源庫,才能運行。

Mac下呢?也是需要的!

一種就是.pkg和.mpkg的文件,即安裝包,這種不用說,就像Windows內的安裝文件,用安裝器打開後也需要一步步安裝,這裡應該沒有問題。

不過還是補充張圖片,以MacPorts的安裝程序為例子

那.dmg文件呢?它的各種支持文件在哪裡呢?你下載的.dmg其實是一個Disk Image(磁碟映像)文件,和ISO是功能類似的格式,即虛擬一個磁碟,只是.dmg可以虛擬HFS+ Journaled的磁碟格式,也就是Mac所需要的磁碟格式。這裡面就是放了一個.app文件。

簡單層面上,你完全可以認為.dmg就是一個.zip壓縮包的功能!

那.app文件是如何把所需要的各種資源和配置文件壓進去的呢?還是Mac的程序不需要這些文件?

Mac的程序當然也需要這些文件。這裡大家每天接觸的.app文件,其實是一個文件夾!(大家可以把.app文件拷貝到U盤,然後去Windows機器上打開,就是一個文件夾) Mac把這些文件夾自動識別成Application(應用程序),但本質還是一個文件夾。

那如何在Mac下查看這個文件夾?

很簡單,右鍵-顯示包內容 (抱歉我使用英文,即Show Package Contents)

打開以後,可以看到一個.app文件「夾」,其實是這樣的文件結構。

接下來是各文件介紹:

1、_CodeSignature是存儲可執行文件的簽名信息,這是為了防止可執行文件被惡意修改,來自AppStore的應用程序均已簽名。

2、Frameworks內是各種各種框架,即.dylib文件,可以認為功能類似Windows下的.dll(所以其實相當於自帶了)

3、Info.plist是一個Property List文件,即屬性文件,用來存儲這個應用的一些諸如版本、可運行它的系統版本、版權等信息。

4、MacOS文件夾是大頭!裡面就是可執行文件啦。不信?你雙擊裡面的可執行文件,就會從Terminal(終端)運行,之後GUI界面就出現了。

5、Resources?應該可以猜到,就是程序需要使用的各種圖片、語言配置文件、圖標等資源文件。.app的圖標,也來自於這個文件夾。

6、至於類似註冊表的東西?這些配置文件會放在用戶的Library文件夾里,第一次運行程序時候寫入,這裡就不多介紹了。

這樣,我們總結一下:

1、Mac也有安裝文件pkg/mpkg文件,比如Office for Mac就是要這樣安裝的。

2、.dmg文件打開後,直接拖.app的安裝方式,其實不是不需要安裝,而是程序所需要的所有東西,都按規矩放在了一個文件夾里,而這個文件夾被系統識別後,可直接雙擊運行裡面的可執行文件。有點類似Windows下的綠色免安裝程序,只不過Windows下類似程序通常比較雜亂放在文件夾里,需要自己在文件夾里找到主程序.exe運行而已。

希望有幫助。。。第一次寫知乎回答。。。


Mac 上 dmg 封裝的軟體安裝是在第一次運行時(比如寫全局配置文件之類),在 PC 上你要是願意你也可以這麼干……

還有你忘了 pkg 封裝包了?


那是 Mac OS X 下的安裝包模式問題。絕大多數 Mac OS X 下的安裝包擴展名都是 *.dmg,這就意味著,開發者只需要負責打包好應用程序,系統則負責解壓(安裝)。這種 bundle 模式的安裝通常都是基於 zip,包括 Mac OS X 下的 dmg,iOS 下的 ipa,Android 下的 apk,Windows 8 起的 appx。另外 Windows 的綠色軟體也勉勉強強算是 bundle 模式的一種吧(用戶需自行解壓然後運行,廢話...)。

至於說有安裝步驟的應用程序,屬於 installer 模式。包括 Mac OS X 下的 pkg,Windows 下的 exe 等等。


能用拖拽方式安裝的,在Win下對應的其實是綠色軟體,只是Win用安裝程序的形式做出來了。很多所謂的安裝程序其實就是把文件放到目的地,然後在控制面板里加個卸載項而已。

真正需要系統級支持的大型生產力應用Mac也不是拖拽式安裝的,像Office和Adobe系列都是用PKG安裝包安裝的


OS X 的 .app bundle 中,可執行文件位於 Contents/MacOS ,其實很類似於 Windows 軟體一個綠色版然後手動開 exe

(和綠色版相比,這貨的 Info.plist 等等信息提供了文件關聯一類的信息)

(並且既然是一發行就是綠色版本,那麼第一次運行的各種操作軟體本身基本上也會做好)

按照習慣,配置文件有時候會直接往 bundle 裡面走(嗯,可以認為像 RA2 存檔,不過基本上還是有專門的文件夾),或者就是 "~/Library/Application Support/軟體名" 那樣走了。

如果配置在 bundle 內部,那麼和「綠色版軟體」一個玩法(UNIX 大法好!註冊表好討厭!)

如果不在 bundle 內部,並且有一些瀏覽器拓展甚至內核拓展之類的,(我實在不知道拖進廢紙簍刪除有沒有 postremove 之類的,至少我不知道有),那麼就是 CleanMyMac 的事情了……(內核拓展這種東西沒幾個人會喜歡 .app 發行加第一次自動安裝,請找 pkg 包)

當然不刪除用戶個人數據有時候也還算好事……

某些複雜的傢伙還是該怎麼樣怎麼樣,基本就是 pkg/mpkg 這種類 tar 部署了……(腦補 Windows msi 或者 Linux 眾包管理器,不過這貨依賴比較。。)

(為什麼我也不知道這貨有包管理提供的卸載……喂喂明明有文件列表的)

另外其實是不需要拖進 Applications 的,這種軟體包放哪裡基本都可以運行啦

關於 dmg:

一個硬碟鏡像,Windows 用戶就當虛擬光碟機看吧

(其實我個人還是喜歡 tar,可惜 Finder 不給圖形化前端 QAQ

* 編輯歷史什麼的看評論啦


啊哈哈哈,當你第一次運行Mac下的應用程序時,它會執行安裝操作。

同理,當你把應用丟進廢紙簍幹掉時,它會*可能*自動執行卸載。

(當然有些系統級的應用還是會做成pkg安裝包)


聽說過綠色免安裝嗎?聽說過硬碟版嗎?


謝邀

我沒用過mac,所以具體也不清楚

mac基於UNIX,mac下軟體,有的也是需要自己手動安裝的

比如一些需要源代碼編譯的軟體。

lz看似是把圖標拖過去完事兒,其實背後可會有一些文件解壓操作,類似於android和iOS的app安裝,本質上還是解壓二進位文件,鏈接依賴庫,然後配置參數,生成圖標之類,mac沒有在表面顯示這些。

windows安裝過程也是類似的,只不過把這個過程顯示出來了。


因為在windows安裝時,程序應該提供一步可以把安裝路徑的c盤改成d盤。


謝邀,前面大家說了很多了,我說一些自己的理解:

1、windows程序是由Windows Installer組件來安裝,包括.exe和.msi程序,需要由該組件按流程一步步將軟體安裝到系統中。

2、OS X屬於類Unix系統,它的安裝只需要把文件拷貝在相應目錄就能運行(類似於Linux安裝軟體)


windows也有不用安裝的,disk genius下載解壓,裡面有exe文件打開就用,Universal USB Installer下載就是一個exe文件,不用安裝,打開就用,sublime text在windows要安裝,在ubuntu打開就用。


如果你不需要在安裝時選擇安裝位置,選擇安裝哪些組件,選擇安不安插件等,windows也可以做到這些。

確切的說你所用到的大多數都是綠色軟體,真正的大型軟體還是得有安裝過程。


Mac系統負責解壓安裝包 這個過程沒有展現出來而已 和Windows平台自解壓形式的安裝過程類似


都沒說道重點上,大型軟體為了配置固然是一部分原因。安裝界面更多的時候是用在軟體基本介紹,國內的XX全家桶(我們很為用戶著想的好吧,看我有提示你安裝的),然後國外的一般會推薦XX收費軟體的提示,說到底不是做不到,而是不願意這麼做而與


推薦閱讀:

為什麼2016年的MacBook Pro的默認解析度是1680*1050?
為什麼蘋果公司不將 Mac 的 command 鍵和 control 鍵合併?
用 MacBook Pro with Retina 15" 下載電影,應該選擇什麼格式和解析度?
如何充分使用 Mac Pro 2013,發揮其性能?
現在能買到適用於 iMac 21.5 寸的 VESA 壁掛支架嗎?

TAG:Mac | macOS | macOS應用 | 軟體 | MicrosoftWindows |