Trình quản lý gói GNU Guix 1.3 và bản phân phối GNU dựa trên nó đã được phát hành.Linux. Для загрузки сформированы образы для установки на USB Flash (610 МБ) и использования в системах виртуализации (972 МБ). Поддерживается работа на архитектурах i686, x86_64, Power9, armv7 и aarch64.
Hệ điều hành này cho phép cài đặt như một hệ điều hành độc lập trong các hệ thống ảo hóa, trong container và trên phần cứng thông thường, cũng như chạy trên các bản phân phối GNU/Linux đã được cài đặt sẵn.LinuxNó đóng vai trò là nền tảng để triển khai các ứng dụng. Người dùng được cung cấp các tính năng như quản lý phụ thuộc, xây dựng lặp lại, hoạt động không cần quyền root, khôi phục về phiên bản trước trong trường hợp gặp sự cố, quản lý cấu hình, sao chép môi trường (tạo bản sao chính xác của môi trường phần mềm trên các máy tính khác), và nhiều hơn nữa.
Những đổi mới chính:
- Hỗ trợ ban đầu cho kiến trúc POWER9 (powerpc64le-linux) đã được triển khai.
- Có thể sử dụng chế độ triển khai khai báo, trong đó, thay vì một loạt lệnh “guix install” và “guix Remove”, một lệnh duy nhất “guix package –manifest=manifest.scm” được chạy, xác định trong tệp kê khai. scm tập tin tất cả các ứng dụng cần được cài đặt. Để tạo một bảng kê khai dựa trên hồ sơ cài đặt hiện có, lệnh “guix package” cung cấp các tùy chọn “--export-manifest” và “--export-channels”.
- Đã thêm tùy chọn chuyển đổi gói "--with-mới nhất", hữu ích cho những ai muốn có phiên bản chương trình mới nhất, ngay cả khi gói tạo sẵn cho Guix chưa được tạo cho ứng dụng. Tùy chọn “--with-patch” cũng được thêm vào để xây dựng một loạt gói có bản vá được áp dụng cho một hoặc nhiều gói trong số đó.
- Các lệnh “guix” triển khai đầu ra của các đề xuất kèm theo các đề xuất thay thế trong trường hợp có lỗi chính tả hoặc có các lệnh phụ thay thế. $ guix package --export-manifests guix package: error:export-manifests: unrecognized option gợi ý: Ý bạn là `export-manifest'?
- “Làm mới Guix” đã bổ sung hỗ trợ tải xuống các bản cập nhật từ dịch vụ lưu trữ SourceForge, cũng như chế độ generic-html để nhận các bản cập nhật từ trang chủ dự án.
- Đã thêm lệnh mới “guix import go” để nhập đệ quy các gói bằng ngôn ngữ Go, có tính đến các phần phụ thuộc. Lệnh "guix import opam" hiện hỗ trợ các gói Coq. “Thùng nhập guix” tính đến phiên bản ngữ nghĩa ở chế độ tải đệ quy. Lệnh "guix import nix" đã bị xóa.
- Việc cài đặt các gói nhị phân dựng sẵn (thay thế) đã được tối ưu hóa và công việc của lệnh “guix system init” đã được tăng tốc.
- Đã thêm tùy chọn "--profile" vào lệnh "guix môi trường".
- Đã thêm tùy chọn "--discover" vào guix-daemon để phát hiện mạng cục bộ. may chủ, dùng để cung cấp các gói nhị phân đã được lắp ráp (thay thế) bằng cách sử dụng các giao thức mDNS/DNS-SD. Tùy chọn "--advertise" đã được thêm vào lệnh "guix publish" để cho phép gửi thông báo từ các máy chủ.
- Khả năng sử dụng thuật toán Zstd để nén gói đã được triển khai.
- Ở chế độ “--verbosity=1”, việc xuất các URL đã tải xuống sẽ bị dừng.
- Thay vì các lệnh phụ “disk-image” và “vm-image”, lệnh chung “guix system image” được đề xuất.
- Trong hình ảnh phân phối cho máy ảo Đã thêm hỗ trợ cho giao thức SPICE.
- Chế độ cài đặt tự động đã được thêm vào tập lệnh cài đặt.
- Добавлен сервис lvm-device-mapping для поддержки менеджера томов LVM (Linux Logical Volumne Manager).
- Đã thêm chế độ “hình ảnh hệ thống guix -t rock64-raw” để tạo hình ảnh phân phối cho bảng Rock64.
- initrd có hỗ trợ bachefs được bật theo mặc định.
- Máy chủ in CUPS có dịch vụ "brlaser" được bật theo mặc định để hỗ trợ máy in Brother.
- Добавлены новые системные сервисы agate, cuirass-remote-worker, ipfs, keepalived, laminar, radicale, syncthing, transmission-daemon, wireguard, xorg-server.
- Các phiên bản chương trình trong 3100 gói đã được cập nhật, 2009 gói mới đã được thêm vào. Bao gồm các phiên bản cập nhật của gcc 10.3.0, glibc 2.31, Gnome 3.34.5, gnupg 2.2.27, go 1.14.15, guile 3.0.5, Icecat 78.10.0-guix0-preview1, Icedtea 3.7.0, inkscape 1.0.2 , Julia 1.5.3, libreoffice 6.4.7.2, linux-libre 5.11.15, ocaml 4.11.1, quãng tám 6.2.0, openjdk 14.0, python 3.8.2, vợt 8.0, rỉ sét 1.51.0, r 4.0.4, sbcl 2.1.3, Xfce 4.16.0 và xorg-server 1.20.10.
- Đã khắc phục lỗ hổng CVE-2021-27851 trong guix-daemon, cho phép người dùng cục bộ nâng cao đặc quyền của họ trên hệ thống. Vấn đề là trong quá trình thực thi lệnh "guix build", thư mục bản dựng vẫn có thể ghi và người dùng có thể tạo liên kết cứng đến tệp do root sở hữu và nằm bên ngoài thư mục bản dựng, ví dụ: "/etc/shadow" . Nếu tùy chọn “--keep-failed” được chỉ định trong quá trình xây dựng thì trong trường hợp thất bại, guix-daemon đã thay đổi chủ sở hữu của toàn bộ cây hợp ngữ thành người dùng hiện tại, bao gồm cả các liên kết cứng.
Chúng ta hãy nhớ lại rằng trình quản lý gói GNU Guix dựa trên sự phát triển của dự án Nix và ngoài các chức năng quản lý gói điển hình, còn hỗ trợ các tính năng như thực hiện cập nhật giao dịch, khả năng khôi phục các bản cập nhật, hoạt động mà không cần có đặc quyền siêu người dùng, hỗ trợ hồ sơ gắn liền với người dùng cá nhân, khả năng cài đặt đồng thời nhiều phiên bản của một chương trình, công cụ thu gom rác (xác định và xóa các phiên bản gói không sử dụng). Để xác định các kịch bản xây dựng ứng dụng và quy tắc hình thành gói, chúng tôi đề xuất sử dụng ngôn ngữ dành riêng cho miền cấp cao chuyên biệt và các thành phần API Guile Schema, cho phép bạn thực hiện tất cả các hoạt động quản lý gói trong Lược đồ ngôn ngữ lập trình chức năng.
Hỗ trợ khả năng sử dụng các gói được chuẩn bị cho trình quản lý gói Nix và được đặt trong kho Nixpkgs. Ngoài các thao tác với gói, có thể tạo tập lệnh để quản lý cấu hình ứng dụng. Khi một gói được xây dựng, tất cả các phần phụ thuộc liên quan đến gói đó sẽ được tự động tải xuống và xây dựng. Có thể tải xuống các gói nhị phân làm sẵn từ kho lưu trữ hoặc xây dựng từ văn bản nguồn với tất cả các phụ thuộc. Các công cụ đã được triển khai để cập nhật phiên bản của các chương trình đã cài đặt bằng cách tổ chức cài đặt các bản cập nhật từ kho lưu trữ bên ngoài.
Môi trường xây dựng cho các gói được hình thành dưới dạng một thùng chứa tất cả các thành phần cần thiết để ứng dụng hoạt động, cho phép bạn tạo một tập hợp các gói có thể hoạt động mà không cần quan tâm đến thành phần môi trường hệ thống cơ sở của bản phân phối, trong đó Guix được sử dụng như một tiện ích bổ sung. Các phần phụ thuộc có thể được xác định giữa các gói Guix bằng cách quét các giá trị băm định danh trong thư mục gói đã cài đặt để tìm sự hiện diện của các phần phụ thuộc đã được cài đặt. Các gói được cài đặt trong một cây thư mục hoặc thư mục con riêng biệt trong thư mục của người dùng, cho phép nó cùng tồn tại song song với các trình quản lý gói khác và cung cấp hỗ trợ cho nhiều loại bản phân phối hiện có. Ví dụ: gói được cài đặt dưới dạng /nix/store/452a5978f3b0b426064a2b64a0c6f41-firefox-88.0.0/, trong đó "452a59..." là mã định danh gói duy nhất dùng để giám sát phần phụ thuộc.
Bản phân phối này chỉ bao gồm các thành phần miễn phí và đi kèm với nhân GNU. Linux-Libre, очищенным от несвободных элементов бинарных прошивок. Для сборки применяется GCC 9.3. В качестве системы инициализации используется сервисный менеджер GNU Shepherd (бывший dmd), развиваемый как альтернатива SysV-init с поддержкой зависимостей. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется и для определения параметров запуска сервисов. Базовый образ поддерживает работу в консольном режиме, но для установки подготовлено 17243 готовых пакета, среди которых и компоненты графического стека на базе X.Org, оконные менеджеры dwm и ratpoison, рабочий стол Xfce, а также подборка графических приложений.
Nguồn: opennet.ru
