o lançamento do gerenciador de pacotes e do sistema operacional baseado nele GuixSD GNU/Linux (Distribuição do Sistema Guix). A significativa mudança de versão se deve à conclusão da implementação de todas , estabelecidas para a formação do lançamento significativo. O lançamento resulta de sete anos de trabalho no projeto e é considerado pronto para uso diário. Para download imagens para instalação em USB Flash (243 MB) e para uso em sistemas de virtualização (474 MB). A operação é suportada nas arquiteturas i686, x86_64, armv7 e aarch64.
A distribuição permite a instalação tanto como em sistemas de virtualização, containers e em hardware comum, quanto ao em distribuições GNU/Linux já instaladas, atuando como uma plataforma para o desenvolvimento de aplicações. Os usuários têm acesso a funções como controle de dependências, compilações reprodutíveis, operação sem root, reversão para versões anteriores em caso de problemas, gerenciamento de configuração, clonagem de ambientes (criação de cópias exatas do ambiente de software em outros computadores), etc.
Principais :
- Um novo recurso de , que funciona em modo texto;
- uma nova imagem para máquinas virtuais, adequada tanto para familiarização com a distribuição quanto para criação de ambientes de trabalho para desenvolvimento;
- Novos serviços de sistema foram adicionados: cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent e zabbix-server;
- As versões dos programas em 2104 pacotes foram atualizadas, e 1102 novos pacotes foram adicionados. Entre eles, as versões de clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3,
gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1,
guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4,
libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1,
octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0,
sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1 e xorg-server 1.20.4; - O gerenciador de serviços GNU Shepherd foi atualizado para a versão , que implementou o modo de operação one-shot, no qual o serviço é marcado como parado imediatamente após um início bem-sucedido, o que pode ser necessário para executar tarefas únicas antes de outros serviços, como limpeza ou inicialização;
- Para o comando «guix package», foram adicionados os atalhos típicos de outros gerenciadores de pacotes «install», «remove», «upgrade» e «search». Para buscar um pacote, é possível usar o comando «guix search», para instalação «guix install», e para atualização «guix pull» e «guix upgrade»;
- O gerenciador de pacotes agora possui um indicador de progresso para operações e destaca mensagens de diagnóstico com cores. Por padrão, a maioria dos comandos agora é executada sem exibição detalhada no console, que pode ser ativada com a opção separada "-v" (—verbosity).
- No gerenciador de pacotes guix, foi adicionando um novo comando "guix system delete-generations" e as opções "guix pack —save-provenance", "guix pull —news", "guix environment —preserve", "guix gc —list-roots", "guix gc —delete-generations", "guix weather —coverage".
- Novas opções adicionadas "—with-git-url" e "—with-branch".
- O sistema inclui novos campos de configuração "keyboard-layout" para definição do layout do teclado, "xorg-configuration" para configuração do servidor X, "label" para o rótulo da partição e "essential-services" para definição dos serviços essenciais.
- Adicionado o comando "guix pack -RR" para criar arquivos tar com executáveis móveis, que podem ser executados tanto em caminhos relativos no espaço de nomes do usuário quanto em relação ao PRoot.
- No "guix pull", foi implementada a geração de cache de pacotes para acelerar operações de busca por nome e foi incorporado o pacote "glibc-utf8-locales".
- Garantida a repetibilidade completa (bit a bit) das imagens ISO geradas pelo comando "guix system".
- O GDM foi escolhido como gerenciador de login em vez do SLiM.
- Apoio à construção do Guix usando Guile 2.0 foi encerrado.
Lembramos que o gerenciador de pacotes GNU Guix baseia-se nos resultados do projeto e, além das funções típicas de gerenciamento de pacotes, suporta recursos como atualizações transacionais, a capacidade de reverter atualizações, operação sem privilégios de superusuário, suporte a perfis vinculados a usuários específicos, instalação simultânea de várias versões do mesmo programa e ferramentas de limpeza para identificar e remover versões não utilizadas de pacotes. Para determinar cenários de construção de aplicativos e regras de formação de pacotes, é recomendado utilizar uma linguagem de alto nível orientada a domínio especializada e componentes da Guile Scheme API, que permitem realizar todas as operações de gerenciamento de pacotes em uma linguagem de programação funcional Scheme.
A possibilidade de usar pacotes preparados para o gerenciador de pacotes Nix e disponíveis no repositório é suportada.
. Além das operações com pacotes, é possível criar scripts para gerenciar a configuração de aplicativos. Ao construir um pacote, todas as dependências relacionadas são automaticamente carregadas e compiladas. É possível tanto carregar pacotes binários prontos do repositório quanto compilar a partir dos textos-fonte com todas as dependências. Ferramentas foram implementadas para manter as versões dos programas instalados atualizadas, organizando a instalação de atualizações a partir de repositórios externos.
O ambiente de construção para pacotes é formado na forma de um contêiner que contém todos os componentes necessários para o funcionamento dos aplicativos, permitindo a formação de um conjunto de pacotes que podem funcionar sem se preocupar com a composição do ambiente de sistema base da distribuição, na qual o Guix é utilizado como uma camada adicional. Entre os pacotes do Guix, é possível definir dependências, enquanto a busca de dependências já instaladas é realizada por meio da verificação de hashes-IDs no diretório de pacotes instalados. Os pacotes são instalados em uma árvore de diretórios separada ou em um subdiretório dentro do diretório do usuário, permitindo sua coexistência paralela com outros gerenciadores de pacotes e oferecendo suporte a uma ampla gama de distribuições existentes. Por exemplo, um pacote é instalado como /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, onde 'f42d58...' é um identificador único do pacote usado para controle de dependências.
A distribuição inclui apenas componentes livres e é fornecida com o núcleo GNU Linux-Libre, limpo de elementos não livres de binários de firmware. Para a construção, o GCC 8.3 é utilizado. O sistema de inicialização emprega um gerenciador de serviços. (), desenvolvido como uma alternativa ao SysV-init com suporte a dependências. O daemon de gerenciamento e as utilidades do Shepherd são escritas na linguagem Guile (uma das implementações da linguagem Scheme), que também é usada para definir os parâmetros de inicialização dos serviços. A imagem base suporta operação em modo console, mas para instalação 9714 pacotes prontos, incluindo componentes da pilha gráfica baseada em X.Org, gerenciadores de janelas dwm e ratpoison, a área de trabalho Xfce, bem como uma seleção de aplicativos gráficos.
Fonte: opennet.ru
