Construa erros em um sistema operacional copiado em um chroot

1

Estou em uma situação interessante.

Em uma tentativa de ter acesso root nos computadores da rede física da minha escola, acabei criando um ambiente chroot, usando fakeroot e fakechroot. Como toda fonte que eu li parece sugerir que o debootstrap, uma ferramenta para instalar o Debian em um subdiretório, requer root, eu prossegui com o método listado aqui - isso implica copiar, sim, usando cp , para copiar os comandos do terminal e suas dependências para esse ambiente.

Eu usei esse truque tão elegante que copiei todo o sistema operacional (Debian + uma grande quantidade de ferramentas físicas) em um subdiretório, um subdiretório que finge ser um sistema operacional, onde posso fingir que sou sudo / Deus.

Surpreendentemente, muitas coisas funcionam. Eles não a princípio, mas o café é bom para matar insetos.

Infelizmente, estou um pouco preso. Sempre que faço uso de python (apt-get, et cetera), fico:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]

A maioria das correções para este problema envolveu a definição das variáveis PYTHONHOME e PYTHONPATH, o que não corrigiu nada. A outra solução comum é apenas construir python a partir do código-fonte, o que eu tento, mas recebo o seguinte quando tento construir qualquer coisa:

configure: error: C compiler cannot create executables

O arquivo config.log anexado para esse erro pode ser encontrado aqui .

Qualquer ajuda seria muito apreciada. Além disso, se você tiver algum conselho para evitar completamente essa situação ou obter o debootstrap funcionando sem raiz, isso também seria ótimo.

Update1 : Tentei simplificar um pouco as coisas - tentei compilar um arquivo c simples e recebi outro erro comumente listado:

gcc: error trying to exec 'cc1': execvp: No such file or directory

Tentei whereis para localizá-lo - acontece que cc1 não existe no meu ambiente! Eu vou agora continuar a ser escravo ...

Update2 : Criado um link do gcc para o cc1 ( ln -s /usr/bin/gcc /usr/bin/cc1 ), que coloca uma bandagem leve no vulcão - agora tenho opções de linha de comando não reconhecidas quando eu gcc um arquivo de amostra, incluindo '-quiet' , '-imultiarch x86_64-linux-gnu' e '-auxbase' .

Update3 : Tem compilador para funcionar! Corrigidos todos os problemas acima, tentando diferentes compiladores (ou seja, gcc-4.4, gcc-4.7, gcc-ar) - o último dos quais jogo-me um erro diferente - que não poderia encontrar um plugin necessário. Isso me indicou o fato de que nem todas as bibliotecas c foram copiadas do SO base. Eu consertei isso, o que resolveu meu problema (um dos muitos).

Meu novo problema é uma (aparente) falta de GMP, MPFR e MPC. Estes são necessários para reconstruir o gcc.

Update4 : Compilou as três bibliotecas. O próximo problema no processo de compilação do gcc não foi encontrar o arquivo crt1.o, crti.o, crtn.o, -lgcc, -lgcc_s e -lc. Isso foi corrigido ao definir --enable-multilib como um sinalizador para o script de configuração.

    
por Miles 02.01.2016 / 11:03

0 respostas