使用 Linux 軟件包管理器的 5 個理由
在 2021 年,人們喜歡 Linux 的理由比以往任何時候都多。在這個系列中,我將分享 21 個使用 Linux 的不同理由。今天,我將談?wù)勡浖}庫。
在我使用 Linux 之前,我認(rèn)為在計算機上安裝的應(yīng)用是理所當(dāng)然的。我會根據(jù)需要安裝應(yīng)用,如果我最后沒有使用它們,我就會把它們忘掉,讓它們占用我的硬盤空間。終于有一天,我的硬盤空間會變得稀缺,我就會瘋狂地刪除應(yīng)用,為更重要的數(shù)據(jù)騰出空間。但不可避免的是,應(yīng)用只能釋放出有限的空間,所以我將注意力轉(zhuǎn)移到與這些應(yīng)用一起安裝的所有其他零碎內(nèi)容上,無論是媒體內(nèi)容還是配置文件和文檔。這不是一個管理電腦的好方法。我知道這一點,但我并沒有想過要有其他的選擇,因為正如人們所說,你不知道自己不知道什么。
當(dāng)我改用 Linux 時,我發(fā)現(xiàn)安裝應(yīng)用的方式有些不同。在 Linux 上,會建議你不要去網(wǎng)站上找應(yīng)用的安裝程序。取而代之的是,運行一個命令,應(yīng)用就會被安裝到系統(tǒng)上,并記錄每個單獨的文件、庫、配置文件、文檔和媒體資產(chǎn)。
什么是軟件倉庫?
在 Linux 上安裝應(yīng)用的默認(rèn)方法是從發(fā)行版軟件倉庫中安裝。這可能聽起來像應(yīng)用商店,那是因為現(xiàn)代應(yīng)用商店借鑒了很多軟件倉庫的概念。Linux 也有應(yīng)用商店,但軟件倉庫是獨一無二的。你通過一個包管理器從軟件倉庫中獲得一個應(yīng)用,它使你的 Linux 系統(tǒng)能夠記錄和跟蹤你所安裝的每一個組件。
這里有五個原因可以讓你確切地知道你的系統(tǒng)上有什么東西,可以說是非常有用。
1. 移除舊應(yīng)用
當(dāng)你的計算機知道應(yīng)用安裝的每一個文件時,卸載你不再需要的文件真的很容易。在 Linux 上,安裝 31 個不同的文本編輯器,然后卸載 30 個你不喜歡的文本編輯器是沒有問題的。當(dāng)你在 Linux 上卸載的時候,你就真的卸載了。
2. 按你的意思重新安裝
不僅卸載要徹底,重裝也很有意義。在許多平臺上,如果一個應(yīng)用出了問題,有時會建議你重新安裝它。通常情況下,誰也說不清為什么要重裝一個應(yīng)用。不過,人們還是經(jīng)常會隱隱約約地懷疑某個地方的文件已經(jīng)損壞了(換句話說,數(shù)據(jù)寫入錯誤),所以希望重裝可以覆蓋壞的文件以讓軟件重新工作。這是個不錯的建議,但對于任何技術(shù)人員來說,不知道是什么地方出了問題都是令人沮喪的。更糟糕的是,如果不仔細(xì)跟蹤,就不能保證所有的文件都會在重裝過程中被刷新,因為通常沒有辦法知道與應(yīng)用程序一起安裝的所有文件在第一時間就刪除了。有了軟件包管理器,你可以強制徹底刪除舊文件,以確保新文件的全新安裝。同樣重要的是,你可以研究每個文件并可能找出導(dǎo)致問題的文件,但這是開源和 Linux 的一個特點,而不是包管理。
3. 保持你應(yīng)用的更新
不要聽別人告訴你的 Linux 比其他操作系統(tǒng)“更安全”。計算機是由代碼組成的,而我們?nèi)祟惷刻於紩孕碌?、有趣的方式找到利用這些代碼的方法。因為 Linux 上的絕大多數(shù)應(yīng)用都是開源的,所以許多漏洞都會以“常見漏洞和暴露Common Vulnerability and Exposures”(CVE)的形式公開。大量涌入的安全漏洞報告似乎是一件壞事,但這絕對是一個知道遠(yuǎn)比不知道好的案例。畢竟,沒有人告訴你有問題,并不意味著沒有問題。漏洞報告是好的。它們對每個人都有好處。而且,當(dāng)開發(fā)人員修復(fù)安全漏洞時,對你而言,及時獲得這些修復(fù)程序很重要,最好不用自己記著動手修復(fù)。
包管理器正是為了實現(xiàn)這一點而設(shè)計的。當(dāng)應(yīng)用收到更新時,無論是修補潛在的安全問題還是引入令人興奮的新功能,你的包管理器應(yīng)用都會提醒你可用的更新。
4. 保持輕便
假設(shè)你有應(yīng)用 A 和應(yīng)用 B,這兩個應(yīng)用都需要庫 C。在某些操作系統(tǒng)上,通過得到 A 和 B,就會得到了兩個 C 的副本。這顯然是多余的,所以想象一下,每個應(yīng)用都會發(fā)生幾次。冗余的庫很快就會增加,而且由于對一個給定的庫沒有單一的“正確”來源,所以幾乎不可能確保你使用的是最新的甚至是一致的版本。
我承認(rèn)我不會整天坐在這里琢磨軟件庫,但我確實記得我琢磨的日子,盡管我不知道這就是困擾我的原因。在我還沒有改用 Linux 之前,我在處理工作用的媒體文件時遇到錯誤,或者在玩不同的游戲時出現(xiàn)故障,或者在閱讀 PDF 時出現(xiàn)怪異的現(xiàn)象,等等,這些都不是什么稀奇的事情。當(dāng)時我花了很多時間去調(diào)查這些錯誤。我仍然記得,我的系統(tǒng)上有兩個主要的應(yīng)用分別捆綁了相同(但有區(qū)別)的圖形后端技術(shù)。當(dāng)一個程序的輸出導(dǎo)入到另一個程序時,這種不匹配會導(dǎo)致錯誤。它本來是可以工作的,但是由于同一個庫文件集合的舊版本中的一個錯誤,一個應(yīng)用的熱修復(fù)程序并沒有給另一個應(yīng)用帶來好處。
包管理器知道每個應(yīng)用需要哪些后端(被稱為依賴關(guān)系),并且避免重新安裝已經(jīng)在你系統(tǒng)上的軟件。
5. 保持簡單
作為一個 Linux 用戶,我要感謝包管理器,因為它幫助我的生活變得簡單。我不必考慮我安裝的軟件,我需要更新的東西,也不必考慮完成后是否真的將其卸載了。我毫不猶豫地試用軟件。而當(dāng)我在安裝一臺新電腦時,我運行 一個簡單的 Ansible 腳本 來自動安裝我所依賴的所有軟件的最新版本。這很簡單,很智能,也是一種獨特的解放。
更好的包管理
Linux 從整體看待應(yīng)用和操作系統(tǒng)。畢竟,開源是建立在其他開源工作基礎(chǔ)上的,所以發(fā)行版維護(hù)者理解依賴棧的概念。Linux 上的包管理了解你的整個系統(tǒng)、系統(tǒng)上的庫和支持文件以及你安裝的應(yīng)用。這些不同的部分協(xié)調(diào)工作,為你提供了一套高效、優(yōu)化和強大的應(yīng)用。