
Minha máquina Linux é x86_64-redhat-linux.
No entanto, estou usando outra cadeia de ferramentas de braçoaarch64-linux-gnu-gccnesta máquina para construir (não preciso executar o que construo nesta máquina, apenas construir, então deve ser bom usar o conjunto de ferramentas do braço para construir)
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 desta máquina, como posso usar meu próprio libc.so.6, posso Redireciono o caminho de pesquisa para outro diretório?
Responder1
Problema
GLIBC 2.12 está instalado e como indica o título do OP, o conjunto de ferramentas de compilação cruzada que ele está tentando usarrequerGLIBC >2,14. O OP afirma que também está limitado porque não consegue atualizar o sistema.
Ressalvas
A lista abaixo na etapa 3 é usada para construir o changeroot. Quando possível, use os pacotes incluídos nos repositórios de suas distribuições. Se a versão mais recente em seu repositório for igual à versão instalada fora do changeroot, pare a Etapa 3 e use uma pesquisa de pacotes online, comoRPMEncontrarpara encontrar uma versão mais recente e continuar. Não instale a versão mais recente ou online fora do changroot. Isso causará falha no sistema, pela qual NÃO sou responsável!
Solução
O OP deve agora construir umprisão changerootpara instalar o compilador cruzado ARM, pois as versões do GLIBC não podem ser instaladas lado a lado. Veja tambémWikipédia - Chroot. Para fazer isso, siga estas etapas:
- Crie o diretório para o changeroot:
mkdir -pv $HOME/newroot
- Crie uma substituição para redirecionar os pacotes RPM para instalação no chroot:
export ROOT=$HOME/newroot && echo $ROOT
. Veja a Etapa 4 se estiver curioso.- Por favor, repita a nova variável, pois ela se tornará muito importante em breve.
- Baixe os pacotes rpm recomendados para o changeroot (estes são os nomes dos pacotes):
cd $ROOT && mkdir -v download && cd download
- configurar
- sistema de arquivo
- sistema básico
- ldconfig
- glibc <--Observe a advertência acima aqui, ou você terá feito esse trabalho em vão.
- mktemp
- termcap
- maldições
- informações
- utilitários de arquivo
- bash && libtermcap
- gdbm
- tcsh
- perl
- chkconfig
- utilitários de texto
- cracklib
- cracklib-dictos
- pwdb
- simplista
- ficar boquiaberto
- pam --nodeps
- utilitários de sombra
- gíria
- util-linux --nodeps
- sh-utils
- zsh
- sed
- bzip2
- estourar
- zlib
- rpm
- Seu conjunto de ferramentas de compilação cruzada e suas dependências
- Use o seguinte comando para instalar a lista acima .
rpm -i --root=$ROOT packagename
Observe o--root
argumento. Isso substitui o comportamento de instalação padrão do RPM. Observe os pacotes na lista com extras, por exemplo bash && libtermcap. Execute o comando rpm -i conforme escrito na lista, incluindo o--root
argumento. No exemplo acima, o libtermcap é instalado no mesmo diretório do bash. - Por último, pode-se
chroot $ROOT && export PS1="(chroot) $PS1"
.
Referência
Etapas acima adaptadas deComo configurar um ambiente chroot com RedHat Linux 6.2 - Para FTP e Web Service