NixOS 系列 #1:你為什麼要考慮使用 NixOS?
NixOS……又一個使用不同軟體包管理器的發行版??
好吧,NixOS 是 高級 Linux 發行版 之一。
所以如果我寫這個,我一定有一個充分的理由,對嗎?嗯,有很多!
我已經使用它 3 個月了,它是如此之好,以至於我正在考慮從我一直以來最喜歡的 Pop!_OS 切換到 NixOS。
在本指南中,我將分享 NixOS 在眾多 Linux 發行版中脫穎而出的主要特點。
別擔心,在我們繼續之前,讓我告訴你什麼是 NixOS:
它是一個以 Nix 包管理器為核心的 Linux 發行版,為你省去了在其它的 Linux 發行版上設置 Nix 的麻煩,可以讓你充分利用它的優勢。由開發 Nix 的同一個團隊構建。
使用 NixOS 的 6 個理由
NixOS 是一個有趣的從零開始構建的 獨立 Linux 發行版。
每個人都可以通過使用 NixOS 學到很多東西,但在我看來,如果你是一個開發人員或計算機科學的學生,NixOS 應該非常合適。
讓我告訴你為什麼。
1、不易損壞/易於恢復
就其核心而言,NixOS 是為長期使用而構建的。
這並不意味著它像 Debian 那樣用多年前的軟體包來保證穩定性,而是遵循一種不同的方法。
為了理解 NixOS 為何如此穩定,讓我們談談用戶一般是如何破壞他們的系統的,即「依賴性問題或軟體包衝突」
在更新系統或安裝一個新的軟體包時,你一般會面臨系統崩潰的風險。主要是因為你的軟體包管理器無法滿足依賴性,或者安裝的軟體包與現有系統衝突導致的。
而 NixOS 有一個非常聰明的方法來處理這個問題。
你看,每當你升級你的系統或安裝一個軟體包時,系統的狀態就會被重建,被稱為超過當前的「 新世代 」。
因此,如果你在使用新的軟體包或更新時遇到任何麻煩,你可以隨時回滾到「 舊世代 」,在那裡你會找到系統以前的狀態。
即使系統無法訪問,你也能在啟動時找到以前幾代。
2、可重複性
通過一個配置文件,你可以為其他物理系統創建一個你當前環境的副本。
這個功能給你帶來的好處是,你可以使用 Nix 配置文件進行安裝和配置。
當你有了適合你的用途的配置文件,將該文件發送到新的系統中,用你的配置文件替換默認的配置文件。就是這麼簡單!
重建配置,升級系統,並通過給定的命令進行切換:
sudo nixos-rebuild switch --upgrade
你將在幾分鐘內擁有與你的主機上完全相同的開發環境,並進行複製。
3、輕鬆回滾
雖然你可能已經從 NixOS 的 「 世代 」 特性中得到了靈感。
但還有更多的內容。?️
NixOS 在很大程度上依賴於符號鏈接。如果這對你來說是一個新概念,請參考下面的指南:
一般來說,在其他 Linux 發行版中,當你升級一個軟體包時,新的軟體包會取代舊的。
但 NixOS 不是這樣的。
在 NixOS 中,軟體包被隔離並存儲在一個單獨的目錄中,這就是使用符號鏈接的原因。
每當你升級一個軟體包時,NixOS 會調整符號鏈接來定位新的軟體包,但不會刪除舊的。
因此,如果你面臨與新包的衝突,只需切換到舊世代,符號鏈接有助於定位舊版本的包。?
4、Nix 包管理器
Nix 包管理器允許你訪問超過 80,000 個軟體包!不僅僅局限於 Linux,它還可以在 macOS、WSL2、Docker 等平台上使用。
而且,軟體包的可用性與 AUR 相似,甚至比 AUR 更好,因為你應該在 Nix 包管理器上找到幾乎所有的東西(我是認真的)。
例如,我想安裝 Librewolf 瀏覽器,這在大多數 Linux 發行版的默認倉庫中是不可用的。
但是,Nix 有它!這意味著你可以依靠 Nix 包管理器來安裝幾乎所有的軟體包。
如果你有先前的 Linux 經驗,它也相對容易理解。總而言之,Nix 包管理器令人印象深刻!
5、使用同一軟體包的多個版本
這對開發者來說可能是至關重要的,有些應用需要特定依賴的舊版本,而有些則需要最新的版本。
而且,正如我前面提到的,Nix 將包安裝到一個特定的子目錄中,每個包都是隔離的,所以一個包不會干擾另一個包!
在使用 Nix 之前,我使用虛擬機和容器來滿足同一軟體包的不同依賴性,尤其是 PHP,但 NixOS 為我的工作流程帶來了奇蹟。
6、無需安裝就能測試軟體包的能力
你可以使用 nix-shell,它通過臨時修改 $PATH
環境變數來測試一個包。
而且沒有任何限制。你能夠測試每一個可供安裝的軟體包!
NixOS 系列:讓我們探索更多!
這是我們 Nix 系列的第一部分,我介紹了使用 NixOS 的原因。我相信更多的 Linux 用戶應該去了解它,如果他們還沒有了解的話。
在下一部分,我將解釋如何在你的虛擬機中安裝 NixOS。
? 歡迎在下面的評論中分享關於 NixOS 的其他內容的建議。
via: https://itsfoss.com/why-use-nixos/
作者:Sagar Sharma 選題:lkxed 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive