NixOS

Uma revisão do NixOS

Uma revisão do NixOS
A maioria das revisões aborda ferramentas de desktop e ferramentas padrão, mas tais revisões não são muito úteis para descrever o NixOS, já que o poder do NixOS está em outro lugar. As pessoas que escolhem o NixOS devem estar dispostas a fazer seu próprio particionamento, e você não estará fazendo nenhum favor a elas dizendo que o gerenciador de desktop padrão pode atender às suas necessidades.

Com isso dito, se você puder seguir o manual do NixOS, você ficará bem. Você pode escolher um ambiente de área de trabalho padrão se quiser, mas certifique-se de estar familiarizado com a linha de comando e pode editar um arquivo de texto para tarefas de configuração.

Uma configuração poderosa

A capacidade de configurar o NixOS é uma vantagem e um desafio. Os gerenciadores de pacotes tradicionais trazem o pacote para a estrutura LSB dos arquivos estabelecida. No NixOS, o instalador coloca os arquivos na loja com um hash antes dele. Esta convenção pode parecer complicada, mas permite muitos recursos.

Quando você instala um programa, o gerenciador de pacotes prepara um diretório com todos os arquivos e adiciona links para as posições onde eles devem ser colocados. Ele também copia as dependências no mesmo diretório e as vincula na estrutura. Para rastrear quais programas precisam de quais dependências, um perfil é usado. Com a loja e os perfis, você pode ter muitas combinações diferentes de pacotes.

Você também pode alternar com alguns comandos, e reverter é muito fácil: basta escolher a geração antiga na próxima reinicialização. Se você está brincando com configurações, vai acabar com muitas gerações. No entanto, você pode usar nix-collect-garbage -d para limpar a partição de inicialização (embora você deva executar o comando nixos-rebuild!).

Lidando com revisões

Na Nix Store, onde todo o seu software é armazenado, você tem um arquivo para cada executável. À primeira vista, essa convenção não parece diferente das adotadas por outros sistemas; no entanto, há uma grande diferença: cada vez que você atualiza, um novo binário é adicionado e, em seguida, vinculado ao seu perfil, o que pode levar rapidamente ao desperdício de espaço em disco.

Para resolver esse problema, há outra opção de coleta de lixo, que é o mesmo programa que é usado com todo o sistema. Se você precisar de revisões antigas por apenas um curto período de teste, você pode definir o systemctl para ser executado em um intervalo regular. Além disso, você pode economizar espaço em disco usando o comando 'nix-store -optimise', que encontra arquivos idênticos na loja e vincula os arquivos a esse único arquivo.

Configurando ambientes de desenvolvimento

No início, parece difícil desenvolver software com este sistema. Na verdade, você pode iniciar um shell com um ambiente de desenvolvimento específico a cada vez. Quando você escolhe um ambiente, o nix-shell instala o ambiente que você precisa para que você possa iniciar um ambiente específico para algum idioma estranho que você nunca usa ou criar um arquivo que reúna tudo que você normalmente precisa.

Docker e outras nuvens

NixOS é um sistema operacional e Nix é um gerenciador de pacotes. Os dois trabalham juntos para fornecer um processo de configuração simples e reproduzível. Em outras palavras, se você criar um arquivo de configuração completo que cubra todas as suas necessidades, você pode usá-lo para sua próxima máquina.

O procedimento de instalação começa detectando o hardware. Na segunda etapa, você define seu ambiente e pacotes de sistema usando a configuração.arquivo nix. Depois de ter o conteúdo correto no arquivo, o instalador irá recriar o mesmo sistema quando você usá-lo em uma segunda máquina.

Esta funcionalidade é útil porque, para sistemas regulares, um novo disco precisa apenas do arquivo para reconstruir seu sistema (além do backup de arquivo do usuário, é claro). Além disso, para a computação em nuvem, você tem uma vantagem ainda maior: embora os arquivos que você precisa escrever para uma imagem docker sejam realmente longos, o arquivo correspondente para NixOS é curto e fácil de mover entre sistemas. Além disso, você pode usar a função de importação para criar arquivos nix especiais para suas configurações estranhas e importá-los para sua configuração.

Appimage, snap e flatpak

Embora o NixOS tenha muitas maneiras brilhantes de executar seus aplicativos e separá-los uns dos outros, muitos softwares são fornecidos de outras maneiras. Appimages e Flatpak são fáceis de usar para distribuir pacotes. Felizmente, o NixOS tem pacotes para lidar com esses formatos, e você pode instalar esses pacotes para executar seus AppImages e Flatpaks favoritos. Você pode definir os pacotes em sua configuração.arquivo nix e tê-los disponíveis quando você precisar deles.

Conclusão

NixOs parece intimidante porque não tem instalador gráfico e você precisa criar um arquivo de configuração. No entanto, apenas no NixOS você define os mesmos valores em ambos os casos. Para fazer backup de um sistema NixOS, sem incluir os arquivos do usuário, apenas um único arquivo é necessário. Com este arquivo, o sistema recria os pacotes e configurações. Além disso, o NixOS fornece um método integrado para executar um shell em um ambiente específico: Basta usar o mesmo tipo de arquivo! No arquivo padrão.nix, você pode definir todas as suas bibliotecas e dependências e, em seguida, executar nix-shell nesse diretório.

Este sistema tem muito potencial. Experimente: você pode começar com sua própria distribuição e o gerenciador de pacotes nix.

Como reverter a direção de rolagem do Mouse e Touchpads no Windows 10
Mouse e Touchpads não apenas torna a computação mais fácil, mas mais eficiente e menos demorada. Não podemos imaginar uma vida sem esses dispositivos,...
Como alterar o ponteiro do mouse e tamanho do cursor, cor e esquema no Windows 10
O ponteiro do mouse e o cursor no Windows 10 são aspectos muito importantes do sistema operacional. Isso também pode ser dito para outros sistemas ope...
Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...