GNU Guix 1.4 包管理器和基於它的分發可用

GNU Guix 1.4 套件管理器和基於其建置的 GNU/Linux 發行版發布。 為了供下載,已產生用於安裝在 USB 快閃記憶體 (814 MB) 上並在虛擬化系統 (1.1 GB) 中使用的映像。 支援在 i686、x86_64、Power9、armv7 和 aarch64 架構上運行。

該發行版既可以作為獨立作業系統安裝在虛擬化系統、容器和傳統設備中,也可以在已安裝的 GNU/Linux 發行版中啟動,充當部署應用程式的平台。 提供使用者考慮依賴性、可重複建置、免root工作、出現問題時回滾到先前版本、組態管理、複製環境(在其他電腦上建立軟體環境的精確副本)等功能。

主要創新:

  • 改善軟體環境的管理。 「guix環境」命令已被新的「guix shell」命令取代,它不僅可以為開發人員創建建置環境,還可以使用環境來熟悉程序,而無需反映在設定檔中,也無需執行「 guix 安裝」。 例如,要下載並啟動 supertuxkart 遊戲,您可以執行「guix shell supertuxkart - supertuxkart」。 下載後,該包將保存在快取中,下次啟動不需要重新解壓縮。

    為了簡化開發人員環境的創建,「guix shell」提供了對描述環境組成的 guix.scm 和 manifest.scm 檔案的支援(可以使用「--export-manifest」選項來產生檔案)。 為了建立模擬經典系統目錄層次結構的容器,「guix shell」提供了「--container --emulate-fhs」選項。

  • 新增“guix home”指令來控製家庭環境。 Guix 可讓您定義家庭環境的所有元件,包括套件、服務和以點開頭的檔案。 使用「guix home」指令,可以在 $HOME 目錄或容器中重新建立所描述的主環境的實例,例如,將您的環境轉移到新電腦。
  • 在「guix pack」命令中新增了「-f deb」選項,以建立可以安裝在 Debian 上的單獨 deb 軟體包。
  • 為了建立各種類型的系統映像(raw、QCOW2、ISO8660 CD/DVD、Docker 和 WSL2),建議使用通用的「guix system image」命令,它允許您確定建立的映像的儲存類型、分割區和作業系統。
  • 在建置套件的命令中新增了「—tune」選項,它允許您指定將啟用特定最佳化的處理器微體系結構(例如,AVX-512 SIMD 指令可以在新的 AMD 和 Intel CPU 上使用) 。
  • 安裝程式實作了一種機制,可以在安裝失敗時自動保存重要的偵錯資訊。
  • 透過在動態連結期間使用緩存,減少了應用程式啟動時間,從而減少了搜尋庫時對 stat 和 open 系統呼叫的呼叫。
  • 使用了新版本的 GNU Shepherd 0.9 初始化系統,它實現了臨時服務(transient)的概念以及創建由網路活動激活的服務的能力(以 systemd 套接字激活的方式)。
  • 新增了用於在作業系統配置中設定交換分區大小的新介面。
  • 用於設定靜態網路配置的介面已經重新設計,現在提供了 ip 命令風格的聲明性設定模擬。
  • 新增了 15 個新的系統服務,包括 Jami、Samba、fail2ban 和 Gitile。
  • 啟動了packages.guix.gnu.org 以進行套件導航。
  • 更新了6573個軟體包中的程式版本,新增了5311個軟體包。 其中包括 GNOME 42、Qt 6、GCC 12.2.0、Glibc 2.33、Xfce 4.16、Linux-libre 6.0.10、LibreOffice 7.4.3.2、Emacs 28.2 的更新版本。 使用 Python 500 刪除了 2 多個套件。

GNU Guix 1.4 包管理器和基於它的分發可用

讓我們回想一下,GNU Guix 套件管理器基於 Nix 專案的開發,除了典型的套件管理功能之外,還支援執行事務更新、回滾更新的能力、無需獲得超級用戶權限即可運作、支援與個人用戶相關的設定檔、同時安裝一個程式的多個版本的能力、垃圾收集工具(識別和刪除未使用的軟體包版本)。 為了定義應用程式建立場景和套件形成規則,建議使用專門的高階領域特定語言和Guile Scheme API元件,它們允許您在函數式程式語言Scheme中執行所有套件管理操作。

支援使用為 Nix 套件管理器準備並放置在 Nixpkgs 儲存庫中的套件的能力。 除了對套件進行操作之外,還可以建立腳本來管理應用程式配置。 建置包時,會自動下載並建置與其關聯的所有相依性。 可以從儲存庫下載現成的二進位套件,也可以從具有所有相依性的來源文字進行建置。 已經實現了一些工具,透過組織來自外部儲存庫的更新安裝來保持已安裝程式的版本最新。

包的構建環境以容器的形式形成,其中包含應用程式工作所需的所有元件,這允許您創建一組可以工作的包,而無需考慮發行版的基本系統環境的組成,其中Guix被用作附加組件。 可以透過掃描已安裝套件目錄中的標識符雜湊值來確定 Guix 套件之間的依賴關係,以查找是否存在已安裝的依賴關係。 軟體套件安裝在使用者目錄中的單獨目錄樹或子目錄中,使其能夠與其他軟體套件管理器並行共存,並為各種現有發行版提供支援。 例如,軟體包安裝為 /nix/store/452a5978f3b1b426064a2b64a0c6f41-firefox-108.0.1/,其中「452a59...」是用於依賴項監視的唯一軟體包識別碼。

該發行版僅包含免費組件,並附帶 GNU Linux-Libre 內核,清除了二進位韌體的非免費元素。 GCC 12.2 用於組裝。 GNU Shepherd 服務管理器(以前稱為 dmd)用作初始化系統,是作為具有依賴性支援的 SysV-init 的替代方案而開發的。 Shepherd 控制守護程式和實用程式是用 Guile(Scheme 語言的實作之一)編寫的,它也用於定義啟動服務的參數。 基本映像支援在控制台模式下工作,但已準備好20526 個現成的軟體包可供安裝,包括基於X.Org 的圖形堆疊的組件、dwm 和ratpoison 視窗管理器、GNOME 和Xfce 桌面,以及精選的圖形應用程式。

來源: opennet.ru

添加評論