Como criar o sistema chroot de 32 bits que é apenas um espelho do meu sistema atual para fins de compilação?

1

Depois de pesquisar e postar e chorar sobre obscuras mensagens de erro do link do GCC, concluí que a única forma confiável de construir algo na arquitetura de CPU estrangeira é configurar um ambiente chroot. Isso é meio engraçado, porque eu já estou rodando o Debian no VirtualBox, então agora ele será o sistema virtual no sistema virtual.

Ao ler vários tutoriais sobre o chroot, notei duas coisas que não gosto neles:

  1. Eles sempre incluem um comando que baixa o sistema de alguma URL escolhida, como abaixo. Eu quero usar o sistema similar que eu já tenho, e o menor possível.

    sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ http://mirror.url.com/ubuntu/
    
  2. Nunca há uma menção real sobre a compilação de um projeto localizado no sistema host. Como se eu não quisesse copiar meu projeto em algum lugar - se esse fosse o caso, eu poderia simplesmente configurar outro sistema de caixa virtual.

Então eu queria perguntar se alguém realmente conseguiu criar o sistema chroot e usou para construir um projeto . É claro que seria ideal se esse sistema fosse o mínimo possível, já que estou apenas instalando-o para bibliotecas. E seria muito bom se ele baixasse a versão de 32 bits do sistema de 64 bits do qual ele está sendo executado.

Os programadores de Linux continuam dizendo como a programação no Linux é muito mais fácil que o Windows. Eu adoraria finalmente experimentar um pouco disso.

    
por Tomáš Zato 30.09.2015 / 11:01

2 respostas

1

Eu já escrevi um tutorial sobre como criar um chroot de 32 bits , então não vou repeti-lo aqui, e vou assumir que você o leu. Nesta resposta, vou abordar apenas os pontos específicos da sua pergunta.

They always include a command that downloads system from some URL they have chosen, like below. I want to use similar system I already have, and as minified as possible.

Você precisa baixar os pacotes. A maioria dos pacotes de 32 bits não é instalada ou instalável em seu sistema porque você tem pacotes de 64 bits que fornecem os mesmos arquivos.

Você precisa escolher a versão da distribuição de 32 bits para instalar. A mesma técnica pode ser usada para instalar outras versões de uma distribuição depois de tudo.

Você está declarando duas metas incompatíveis: uma é ter um sistema mínimo, a outra é reproduzir o sistema de 64 bits que você já possui. Se você quiser um sistema mínimo, comece com o que o debootstrap instala. Claro, você provavelmente pode economizar alguns megabytes de espaço removendo alguns pacotes que nunca serão usados no chroot, mas não vale a pena o tempo para mexer com as dependências (você provavelmente teria que quebrar muitas dependências para extirpar os pacotes que não são estritamente necessários). Se você deseja reproduzir sua instalação existente, use apt-clone se disponível (example ), e se não for use dpkg --get-selections e apt-mark .

There's never actual mention about compiling a project that is located on host system. Like I don't really want to copy my project somewhere - if that was the case, I can just setup another virtual box system.

O chroot configurado pelo schroot já tem o seu diretório home. Mais precisamente, /home é montado dentro do chroot. Então, se o seu projeto estiver em algum lugar abaixo de /home , ele já estará disponível dentro do chroot.

Se você quiser disponibilizar outros diretórios, adicione entradas a /etc/schroot/default/fstab , copiando a entrada existente para /home , por exemplo,

/dev            /dev            none    rw,bind         0       0
/dev/pts        /dev/pts        none    rw,bind         0       0
/home           /home           none    rw,bind         0       0
/tmp            /tmp            none    rw,bind         0       0
/scratch        /scrath         none    rw,bind         0       0

So I wanted to ask if someone actually did manage to create chroot system and used it to build a project.

Eu faço isso o tempo todo. Na verdade, é por isso que escrevi esse post em primeiro lugar.

    
por 01.10.2015 / 03:04
0

Compile um em uma VM, primeiro copie-o para um subdiretório para ser o seu chroot.

E, sim, eu fiz isso e o usei para criar construções limpas de 32 bits.

    
por 30.09.2015 / 11:09