Como redirecionar o caminho padrão da biblioteca de compartilhamento do linker /lib64/libc.so.6, /lib64/libc.so.6: versão 'GLIBC_2.14' não encontrada

1

Minha máquina linux é x86_64-redhat-linux.

No entanto, estou usando outra corrente de ferramentas de braço aarch64-linux-gnu-gcc nesta máquina para construir (não preciso executar o que eu construo sobre isso máquina, basta construir, por isso deve ser bom usar toolchain braço para construir)

Eu recebo o seguinte erro:

aarch64-linux-gnu-gcc: /lib64/libc.so.6: 
version 'GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)

Portanto, o caminho da biblioteca compartilhada padrão atual aponta para /lib64/libc.so.6, não quero atualizá-lo, pois não sou o único usuário dessa máquina, como posso usar minha própria libc.so. 6, posso redirecionar o caminho de busca para outro diretório?

    
por hellocoding 06.11.2015 / 20:08

1 resposta

1

Problema

O GLIBC 2.12 é instalado e, como o título do OP declara, a cadeia de ferramentas de compilação cruzada que ele está tentando usar requer GLIBC > 2.14. O OP afirma que ele também é restrito porque não pode atualizar o sistema.

Advertências

A lista abaixo no passo 3 é usada para construir o changeroot. Quando possível, use os pacotes incluídos nos seus repositórios de distribuição. Se a versão mais recente do seu repositório for igual à versão instalada fora do changeroot, interrompa a Etapa 3 e use uma pesquisa de pacote on-line, como RPMFind para encontrar uma versão mais recente e continuar. Não instale a versão mais recente ou online fora do changroot. Isso causará a quebra do sistema, da qual NÃO sou responsável!

Solução

O OP deve agora criar um changeroot jail para instalar o compilador cruzado ARM em como as versões do GLIBC não podem ser instaladas lado a lado. Veja também Wikipedia - Chroot . Para fazer isso, siga estas etapas:

  1. Crie o diretório para o changeroot: mkdir -pv $HOME/newroot
  2. Crie uma substituição para redirecionar os pacotes RPM a serem instalados no chroot: export ROOT=$HOME/newroot && echo $ROOT . Veja o passo 4 se você estiver curioso.
    • Por favor, repita a nova variável, pois isso se tornará muito importante em breve.
  3. Faça o download dos pacotes rpm recomendados para o changeroot (estes são os nomes dos pacotes): cd $ROOT && mkdir -v download && cd download
    • configuração
    • sistema de arquivos
    • basesystem
    • ldconfig
    • glibc < - Tome nota da advertência acima aqui, ou você terá feito este trabalho para nada.
    • mktemp
    • termcap
    • ncurses
    • informações
    • fileutils
    • bash & & libtermcap
    • gdbm
    • tcsh
    • perl
    • chkconfig
    • textutils
    • cracklib
    • cracklib-dicts
    • pwdb
    • simplificado
    • gawk
    • pam --nodeps
    • shadow-utils
    • gíria
    • util-linux --nodeps
    • sh-utils
    • zsh
    • sed
    • bzip2
    • popt
    • zlib
    • rpm
    • Seu conjunto de ferramentas crosscompile e suas dependências
  4. Use o seguinte comando para instalar a lista acima rpm -i --root=$ROOT packagename Observe o argumento --root . Isso substitui o comportamento de instalação padrão do RPM. Observe os pacotes na lista com extras, por exemplo bash & & libtermcap. Por favor, execute o comando rpm -i como escrito na lista, incluindo o argumento --root . No exemplo acima, o libtermcap é instalado no mesmo diretório que o bash.
  5. Por fim, pode-se usar chroot $ROOT && export PS1="(chroot) $PS1" .

Referência

Etapas acima adaptadas de Como configurar um ambiente chroot com o RedHat Linux 6.2 - para FTP e serviço da Web

    
por 09.11.2015 / 21:33