現代操作系統為您提供了設置新應用程序的簡單方法。其中包括自動安裝程序包以及一次安裝多個軟件位的命令。但是當你運行安裝程序或者發出命令時,會發生什麼呢?
讓我們看看軟件是如何安裝在三大桌面平臺上的:Windows、macOS和Linux。
有幾種不同的方法可以讓新應用程序在計算機上運行。按照複雜性增加的順序,包括:
在本文中,我們將研究安裝程序包,因為大多數軟件經理/商店最終都會在幕後處理這些類型的包。對於今天的主要桌面平臺——Windows、macOS和Linux——我們將瞭解這些軟件包的組成,以及安裝它們時會發生什麼。
您可能會遇到的Windows安裝程序包有兩種主要風格。可執行文件(EXE)可以通過將文件放置在正確的位置和執行Windows註冊表更新來設置程序。WindowsInstaller軟件包(MSI)通過提供標準化的服務(如卸載)來增加這一點。
您可以通過使用7-Zip打開歸檔文件來檢查exe或msi的內容。如果您使用它來查看7-Zip自己的EXE安裝程序,您會在其中找到許多不同的文件:
雖然這些文件在安裝程序中沒有包含文件夾,但開發人員會將每個文件指向一個目標目錄。它們中的大多數最終都會出現在“默認安裝位置”——這與您通常看到的“C:\Program Files\[Program name]”或“C:\Program Files(x86)\[your new app]”等文件夾的建議相同
當使用像InstallShield這樣的複雜工具來創建安裝程序包時,應用程序開發人員可以自定義安裝。例如,它們可以指定要安裝的Windows版本,在“開始”菜單和/或桌面上設置要創建的快捷方式,或收集用戶信息,如名稱、地址等。下圖中的示例InstallShield項目顯示了用於設置是否應創建或更新Windows註冊表項的屏幕。
使用InstallShield,應用程序文件和其他自定義項將打包在一個安裝程序.exe文件。用7-Zip打開它會顯示裡面是一個MSI包,當運行時,它看起來就像我們都習慣的安裝。讓我們回顧一下在這個過程中發生了什麼。
安裝程序將採取以下步驟設置應用程序以供使用(具體順序可能因開發人員的自定義而有所不同):
與列表中的下一個操作系統相比,這個過程可能看起來很複雜。讓我們看看在macOS上安裝軟件。
Windows安裝程序有很多祕密。但是如果你使用過Mac,你就知道安裝應用程序通常和下載應用程序副本、打開磁盤映像(DMG)以及遵循一些簡單的提示一樣簡單。有時下載甚至會提供一個“拖到這裡!”偶像。
讓我們深入瞭解應用程序包及其對應的PKG安裝程序。
表面上的應用程序文件實際上比Windows簡單,主要有兩個原因。首先,它是一個標準文件夾。唯一的區別是它以“.APP”後綴結尾。如果您在Windows上下載其中一個,您將看到它的顯示方式與資源管理器中的任何其他文件夾一樣。其次,應用程序文件要求包含程序所需的所有內容。對於這些類型的安裝程序,不必擔心缺少依賴項。
這些包必須在名為“Contents”的文件夾中包含三個內容:1)一個信息列表包含應用程序元數據的文件,如名稱、語言、版本號等;2)保存主可執行文件的“MacOS”目錄;3)保存應用程序運行所需資產的“Resources”目錄(如應用程序圖標)。還有其他可選文件夾,如“Frameworks”(不是特定於應用程序的功能包)、“Plug-Ins”(運行應用程序不需要的功能)和“SharedSupport”(與模板無關的數據)。
相反,PKG格式是類Windows安裝程序與類Unix結構的組合。7-Zip應用程序還將打開一個以xar格式壓縮的PKG文件。其中包含一個或多個有效負載文件,這也是一個存檔文件。要提取其內容,請在Mac或Linux終端中使用以下命令鏈(cpio是一種存檔格式,也是一個用於操作它們的程序):
cat Payload | gunzip -dc | cpio -i完成後,您將看到一個熟悉的類Unix目錄樹。
在下面的示例中,我使用了文檔轉換器Pandoc。它包括/usr/local/bin中的二進制文件和/usr/local/share/man中的一些文檔。這些東西到底是如何到位的?我們來看看每一個都是如何安裝到你的Mac上的。
我使用了Windows版本的7-Zip來說明這一點,而不是隻使用命令行的Linux版本。
當你把這個應用程序文件放到你的應用程序文件夾中時,它並沒有改變那麼多。記住,運行程序所需的一切都是獨立的。與標準拖放的唯一區別是信息列表“文件在系統中註冊。
這將配置諸如啟動應用程序時調用哪個可執行文件、顯示哪個圖標、它支持的文件類型等等。但是你的應用程序(比如下面顯示的Atom編輯器的應用程序包)現在已經可以使用了。
另一方面,打開PKG文件會啟動“嚮導式”安裝程序。對於簡單的程序,這通常是一個組件安裝程序,通常會經歷以下步驟:
然後,開發人員可以將多個組件組合到單個產品歸檔安裝中。這將添加一些選項,例如顯示供用戶接受的EULA、從用戶收集信息以及選擇要安裝的組件。同時,蘋果安裝程序負責在後臺逐個安裝必要組件的所有細節。
說到基於Unix的安裝程序,我們將在下一節繼續討論兩種主流的Linux包格式。
啊,黛比和轉速。一場偉大的火焰之戰,只被vi對emacs或KDE對GNOME這樣的對手打敗。然而,這些格式與其說是不同的,不如說是相似的。我們來看看。
要查看DEB文件的內部,可以嘗試使用GUI歸檔管理器。否則,請使用ar命令。在終端中輸入的以下命令將提取Debian包的內容:
ar -x name-of-your-package.deb這將產生三個文件:
在Fedora中,可以使用rpm2cpio和cpio命令提取RPM包並瀏覽其文件:
rpm2cpio name-of-your-package.rpm | cpio -idvm對於kde-cli-tools-5.9.4-2.fc26.x86_64.rpm包,您將看到一個類似於DEB包的文件樹。但它不提供元數據,至少在二進制包中不提供。您需要下載源RPM(。SRC.RPM轉速)對應於二進製版本,然後對該文件使用上面相同的命令。其中包括一個SPEC文件,其中包含許多與Debian包中的控制文件相同的項。
既然我們已經瞭解了Linux軟件包的結構,那麼讓我們來研究一下實際安裝它們時會發生什麼。
當您安裝任何一種格式的軟件包時,不管前端是什麼,都會發生一組類似的步驟:
因為操作系統的開發人員和在其上運行的軟件在簡化軟件安裝方面做了大量的工作,所以您實際上不需要關注細節。但是對幕後發生的事情有一些瞭解會讓你對安裝在你係統上的東西心平氣和,同時也有助於排除故障。
上面的軟件安裝方法你做了多少?你喜歡DEB還是RPM?或者Mac的應用捆綁包代表了易用性的頂峰?噩夢發生過嗎?請在下面的評論中告訴我們!
... 作為開源媒體軟體,VLC媒體播放器可以在Linux上使用。具體而言,VLC media player的版本可用於: ...
...你選擇的Linux發行版提供的。在這一點上,你唯一的方法就是從外部安裝它。許多Linux指南建議您這樣做,並指導您完成整個過程。 ...
...少的投入,但是它可能會影響Ubuntu效能的質量和速度。也就是說,有些Linux作業系統可能更適合執行USB驅動器。 ...
...售帶有自己定製的Linux發行版的膝上型電腦。你所要做的就是把膝上型電腦從盒子裡拿出來,開始使用Linux。 ...
...“發行版”)之後,您發現您的硬體仍然太慢。除非,也就是說,您安裝了類似Xfce的東西。 ...
PPA代表個人包裹檔案。它們提供的軟體沒有捆綁在預設的Linux作業系統中。Linux上的軟體安裝與Windows和Mac上的有點不同。相反,軟體來自於儲存庫。但PPA提供對第三方程式的訪問。 ...
...中的預設桌面環境,它很快將成為Ubuntu中的預設環境。也就是說,可以安裝GNOME是大多數Linux發行版。openSUSE提供了一個預設為GNOME的livecd。如果您剛剛開始使用Linux,那麼這三個發行版中的任何一個都是一個很好的切入點。 ...
...位置。其中一些甚至可以在系統托盤中使用。你所要做的就是用滑鼠右鍵單擊它的設定,然後從“額外專案”部分啟用它。 ...
... 你所需要做的就是依次點選每一個。從Select Image開始,然後瀏覽到所選作業系統的ISO或IMG檔案。接下來,單擊選擇驅動器以選擇SD卡。蝕刻機足夠智慧,可以檢測到任何連線到電腦或**...