軟件安裝和包管理器如何在 Linux 上工作
已發表: 2022-01-29在 Linux 上安裝軟件涉及軟件包管理器和軟件存儲庫,而不是從 Windows 等網站下載和運行 .exe 文件。 如果您是 Linux 新手,這似乎是一種戲劇性的文化轉變。
雖然您可以在 Linux 上自己編譯和安裝所有內容,但包管理器旨在為您完成所有工作。 使用包管理器使安裝和更新軟件比在 Windows 上更容易。
Linux 與 Windows
有各種各樣的 Linux 發行版和各種各樣的包管理器。 Linux 是由開源軟件構建的,這意味著每個 Linux 發行版都使用所需的庫版本和編譯選項編譯自己的軟件。 編譯 Linux 應用程序通常不會在每個發行版上運行 - 即使可以,安裝也會受到競爭包格式的阻礙。如果您找到 Linux 應用程序的網站,您可能會看到各種不同包格式和 Linux 的下載鏈接發行版——假設應用程序的網站提供了預編譯版本。 該應用程序可能會告訴您下載源代碼並自行編譯。
軟件存儲庫
Linux 用戶通常不會像 Windows 用戶那樣從應用程序的網站下載和安裝應用程序。 相反,每個 Linux 發行版都託管自己的軟件存儲庫。 這些存儲庫包含專門為每個 Linux 發行版和版本編譯的軟件包。 例如,如果您使用的是 Ubuntu 12.04,則您使用的存儲庫包含專門為 Ubuntu 12.04 編譯的軟件包。 Fedora 用戶使用一個包含專門為他們的 Fedora 版本編譯的軟件包的存儲庫。
包管理器
把包管理器想像成一個移動應用商店——只不過它們早在應用商店之前就已經存在了。 告訴包管理器安裝軟件,它會自動從其配置的軟件存儲庫中下載適當的包,安裝並設置它——所有這些都無需您單擊嚮導或在網站上查找 .exe 文件。 發布更新時,您的包管理器會注意到並下載相應的更新。 在 Windows 上,每個應用程序都必須有自己的更新程序才能接收自動更新,而包管理器會處理所有已安裝軟件的更新——假設它們是從軟件存儲庫安裝的。
什麼是套餐?
與 Windows 不同,應用程序以 .exe 安裝程序文件形式出現,可以對系統執行任何操作,Linux 使用特殊的包格式。 有多種軟件包類型——最著名的是 Debian 和 Ubuntu 上的 DEB,以及 Fedora、Red Hat 等上的 RPM。 這些包本質上是包含文件列表的檔案。 包管理器打開存檔並將文件安裝到包指定的位置。 包管理器仍然知道哪些文件屬於哪些包——當你卸載一個包時,包管理器確切地知道系統上的哪些文件屬於它。 Windows 不知道哪些文件屬於已安裝的應用程序——它讓應用程序安裝程序自己管理安裝和卸載。
包還可以包含在安裝和刪除包時運行的腳本,儘管這些通常用於系統設置而不是將文件移動到任意位置。

在 Linux 上安裝軟件
要在 Linux 上安裝軟件,請打開包管理器,搜索軟件,然後告訴包管理器安裝它。 您的包管理器將完成其餘的工作。 Linux 發行版通常為包管理器提供各種前端。 例如,在 Ubuntu 上,Ubuntu 軟件中心、更新管理器、Synaptic 應用程序和 apt-get 命令都使用 apt-get 和 dpkg 來下載和安裝 DEB 包。 您可以使用任何您喜歡的實用程序——它們只是提供不同的界面。 您通常會在 Linux 發行版的菜單中找到一個簡單的圖形包管理器。
更新延遲
新的 Linux 用戶經常注意到包管理器和存儲庫的一件事是新軟件版本到達他們的系統之前的延遲。 例如,當新版本的 Mozilla Firefox 發佈時,Windows 和 Mac 用戶將從 Mozilla 獲取它。 在 Linux 上,您的 Linux 發行版必須打包新版本並將其作為更新推出。 如果您在 Linux 上打開 Firefox 的首選項窗口,您會注意到 Firefox 無法自動更新自身(假設您使用的是 Linux 發行版存儲庫中的 Firefox 版本)。
您也可以自己下載和安裝應用程序——例如,直接從 Mozilla 下載 Firefox——但這可能需要從源代碼編譯和安裝軟件,並消除了包管理器的好處,例如自動、集中的安全更新。
雖然新版本的 Firefox 是優先考慮的,因為它們包含安全更新,但其他應用程序可能無法快速交付。 例如,LibreOffice 辦公套件的主要新版本可能永遠不會作為當前 Linux 發行版本的更新發布。 為避免潛在的不穩定並留出時間進行測試,此版本可能要等到您的 Linux 發行版的下一個主要版本(例如 Ubuntu 12.10)成為發行版軟件存儲庫中的默認版本時才可用。
為了解決這個問題,一些 Linux 發行版,例如 Arch Linux,提供了“滾動發布週期”,新版本的軟件被推送到主軟件存儲庫中。 這可能會導致問題——雖然您可能需要新版本的桌面應用程序,但您可能並不關心新版本的低級系統實用程序,這可能會導致不穩定。
Ubuntu 提供 backports 存儲庫以將重要軟件包的新版本引入舊發行版,儘管並非所有新版本都進入 backports 存儲庫。
其他存儲庫
雖然 Linux 發行版附帶預配置了自己的存儲庫,但您也可以將其他存儲庫添加到系統中。 擁有後,您可以從該存儲庫安裝軟件存儲庫,並使用您的包管理器從它接收更新。 您添加的存儲庫必須針對您的 Linux 發行版和包管理器而設計。
例如,Ubuntu 提供了各種各樣的個人軟件包檔案 (PPA),其中包含由個人和團隊編譯的軟件。 Ubuntu 不保證這些存儲庫中軟件包的穩定性或安全性,但您可以添加來自受信任個人的 PPA,以下載尚未在 Ubuntu 存儲庫中的軟件包——或下載現有軟件包的較新版本。
一些第三方應用程序也使用自己的軟件存儲庫。 例如,當您在 Ubuntu 上安裝 Google Chrome 時,它會將自己的 apt 存儲庫添加到您的系統中。 這可確保您通過 Ubuntu 的更新管理器和標準軟件安裝工具接收到 Google Chrome 的更新。