GNU Guix 軟體套件管理器 1.4 及其衍生的 GNU 發行版已經發布。Linux. Для загрузки сформированы образы для установки на USB Flash (814 МБ) и использования в системах виртуализации (1.1 ГБ). Поддерживается работа на архитектурах i686, x86_64, Power9, armv7 и aarch64.
此發行版既可以作為獨立作業系統安裝在虛擬化系統、容器和普通硬體上,也可以在已安裝的 GNU/Linux 發行版中運作。Linux作為一個應用程式部署平台,它為使用者提供依賴管理、可重複建置、無根操作、出現問題時回滾到先前的版本、組態管理、環境複製(在其他電腦上建立軟體環境的精確副本)等功能。
主要創新:
- 改進了軟體環境管理。 「guix environment」命令已被新的「guix shell」命令取代,該命令不僅允許開發人員創建建置環境,還可以使用環境來熟悉程序,而無需在設定檔中反映它們,也無需執行「guix install」。例如,要下載並執行 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» для создания отдельных deb-пакетов, которые могут быть установлены в Debian.
- 為了建立各種類型的系統映像(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. Удалено более 500 пакетов, использующих Python 2.

讓我們回想一下,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
