Simplifique a criação do Linux a partir da fonte usando o site Pacotes do UmVirt LFS

Talvez muitos dos usuários do GNU / Linux, à luz das recentes iniciativas do governo para criar uma Internet "soberana", tenham ficado confusos com o objetivo de estar a salvo da indisponibilidade de repositórios de distribuições populares do GNU / Linux.

Alguém que baixa os repositórios CentOS, Ubuntu, Debian, alguém cria suas distribuições com base nas distribuições existentes e alguém armado com os livros LFS (Linux From Scratch) e BLFS (Beyond Linux From Scratch) já começou a compilar suas distribuições a partir da fonte desde Ele acredita que, nas condições de ataques "soberanos" de hackers na Internet, surtos de vírus, certamente ocorrerão vazamentos de dados e os binários simplesmente ficarão desatualizados após algum tempo.

Recentemente, chegou ao ponto de compilar completamente uma máquina virtual a partir do código-fonte, com base nas instruções do livro Linux From Scratch Systemd Edition v.8.3. Corro para compartilhar os resultados com você.

Processo de compilação do Linux


O processo de criação do Linux a partir da fonte pode ser dividido em três estágios:

  1. Com base no sistema operacional existente, o ambiente de construção do LFS é construído.
  2. O ambiente de construção cria uma imagem da máquina virtual LFS.
  3. A máquina virtual instala pacotes adicionais do livro BLFS que não estão no livro LFS.

Arquivos de script estático


Ao trabalhar com o ambiente de construção, é conveniente usar a área de transferência e o SSH: copiar comandos do livro e colá-los no console do ambiente de construção.

Depois de iniciar a máquina virtual criada, problemas sérios apareceram. Diferente da janela do terminal, o código não pode ser inserido na janela do cliente da máquina virtual. Digitar comandos com o teclado é inconveniente e há um grande risco de erros de digitação. O perigo dos erros de digitação reside no fato de que eles podem não aparecer imediatamente, mas depois de um tempo e levar a problemas sérios.

É sabido que os comandos podem ser inseridos não apenas no teclado, mas também no fluxo padrão (STDIN). A fonte do fluxo padrão pode usar a porta serial e o resultado do programa de script chamado saída padrão (STDOUT).

Muitas pessoas sabem que o comando wget pode gerar o conteúdo do arquivo baixado para a saída padrão (STDOUT):

wget http://example.com -O - 

Se a saída do comando wget for enviada ao intérprete, um código arbitrário poderá ser executado. O código será executado como se tivesse sido digitado no teclado ou copiado da área de transferência:

 wget http://umvirt.com/linux/helloworld.sh -O - | bash 

Assim, você pode colocar arquivos com comandos em algum servidor Web e enviar seu conteúdo para o intérprete.

Arquivos de script dinâmico


É claro que os arquivos estáticos são uma coisa boa se você sabe exatamente o que deve ser feito e se o pacote está instalado, se as dependências não estão claramente instaladas ou não, e daí?

Um site dinâmico baseado no servidor da Web LAMP (Linux-Apache-MySQL-PHP) vem em socorro. Se um site puder gerar páginas dinamicamente (arquivos HTML) e imagens, ele poderá lidar com arquivos de texto comuns.

E assim aconteceu. Escreveu o site UmVirt LFS Packages, que gera scripts para o interpretador Bash. O banco de dados do site contém informações sobre pacotes, dependências, patches, adições e comandos de construção.

Agora, para instalar o pacote mc (comando da meia-noite), você pode escrever o comando:

 wget --no-check-cerificate https://umvirt.com/linux/packages/0.1/mc/install -O - | bash 

O próprio script do site receberá dados do banco de dados e gerará um código para verificar dependências e código de script para instalar o pacote. O intérprete processará as instruções do script.

Para tornar isso possível, as informações sobre os pacotes instalados no banco de dados são armazenadas no disco da máquina virtual.

O banco de dados de pacotes instalados está localizado no diretório / var / cache / ulfs-packages, é uma lista de arquivos vazios com nomes correspondentes ao nome dos pacotes.

Se o pacote não for encontrado no banco de dados, uma dependência será instalada recursivamente.

Amenidades


Para tornar a instalação dos pacotes mais conveniente, escrevi o script chimp em outro site do Assistente do UmVirt LFS que usa o banco de dados de Pacotes do UmVirt LFS . A principal tarefa do UmVirt LFS Assistant é a execução de outros comandos.

Usando o chimp, a instalação de pacotes é ainda mais fácil:

 chimp install mc 

Demonstração


Para se familiarizar com o trabalho dos serviços Pacotes do UmVirt LFS e Assistente do UmVirt LFS, você pode fazer o download da imagem básica Inicial 1 do UmVirt LFS v.0.1, Atualização 1 . Instale o Xorg executando um comando:

 chimp install X 

No processo do script serão instalados 141 pacotes no modo automático. Para economizar tempo de compilação, você pode substituir o valor no arquivo / etc / profile pela variável MAKEFLAGS de "-j1" (um fluxo), por exemplo, para "-j6" (seis threads).

Descentralização e personalização


Para garantir segurança, autonomia e personalização, o código-fonte dos serviços UmVirt LFS Packages e UmVirt LFS Assistant foi publicado em domínio público. Qualquer um pode fazer o download, implantar e ajustar os serviços em sua infraestrutura.

Source: https://habr.com/ru/post/pt445178/


All Articles