como executar um novo software sem atualizar o GLIBC?

18

Instalei o Mathematica 9 em um antigo sistema release 4 do Red Hat Enterprise Linux AS. Após a instalação, tentei iniciar o Mathematica, mas a seguinte mensagem saiu:

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libML64i3.so)

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /lib64/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libQtCore.so.4)

Eu não quero atualizar o sistema glibc, porque é arriscado e o administrador não me permite fazer isso.

Alguém sugeriu que é possível apenas instalar uma nova versão do glibc em outro lugar, e rodar o programa como

LD_LIBRARY_PATH=/lib/new your_application

e isso não afetará o sistema.

Então estou perguntando aqui se esse método realmente funciona. E se funcionar, eu quero saber como fazer isso passo a passo (eu não tenho experiência no Linux agora, e quero usar o Mathematica no Linux o mais rápido possível).

Editar :

Notei que existe um software chamado "Ermine". Parece que ele pode implantar um software como um pacote independente que não depende do ambiente externo. Infelizmente, é um shareware. Então eu acho que, como "Arminho" pode fazer isso, deve haver uma maneira de usar um novo software no sistema antigo.

    
por user15964 29.01.2013 / 11:31

3 respostas

9

Você pode definitivamente compilar uma nova versão do GLIBC e armazená-lo em um diretório separado. A primeira coisa que você terá que fazer é baixar a versão do glibc que você quer do link .

Execute o script configure e defina o --prefix= para algo como /home/you/mylibs .

Depois que você conseguir instalá-lo nesse diretório, você terá que definir seu LD_LIBRARY_PATH para o local do novo glibc.

Você precisará descobrir as dependências necessárias para compilar. Você pode criar um script de shell que defina as variáveis LD_ * e execute o programa (o que você precisaria fazer de qualquer maneira), e execute-o repetidamente - faça o download / recompilação de lobs perdidos ao longo do caminho.

Você também pode usar ldd para determinar quais bibliotecas compartilhadas o programa precisa, então use ldd em cada uma das bibliotecas para descobrir se elas precisam da glibc.

Este pode ser um processo muito demorado e não é para o impaciente ou fraco de coração - percorrer / recompilar o seu caminho através das possíveis dependências necessárias para tornar a sua aplicação o trabalho pode ocasionalmente fazer você querer arrancar o cabelo.

Atualização 1:

Eu baixei o glibc-2.4 e tentei compilá-lo no CentOS 6. Para fazer com que o configure funcionasse corretamente, tive que alterar as verificações do ac e ld version alterando:

2.1[3-9]*)

para:

2.*)

nas linhas 4045 e 4106 no próprio arquivo configure . Eu configurei minhas variáveis de ambiente * FLAGS da seguinte forma:

LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow" 
CFLAGS="-pipe -fomit-frame-pointer -g1 -O3 -frename-registers -fweb -ftracer -fmodulo-sched -fvariable-expansion-in-unroller -fgcse-sm"
CXXFLAGS="${CFLAGS}" 
CFLAGS="${CFLAGS} -freorder-blocks-and-partition" 
export LDFLAGS CFLAGS CXXFLAGS

e, em seguida, executou ./configure --prefix=/home/tim/masochist . Ele configurou corretamente ... e ele começou a construir corretamente também ... mas depois comecei a executar erros - principalmente o compilador reclamando sobre as coisas sendo redefinidas.

Nesse momento eu desisti ... porque estava se tornando muito demorado . ;)

    
por 05.02.2013 / 09:33
1

Atualizar o glibc para uma versão suportada pela sua distribuição é de baixo risco. Ele é escrito para lidar com compatibilidade com versões que datam longe de volta, e (descobrindo bugs) uma nova versão deve ser apenas uma queda na substituição. Instalar uma nova versão em algum lugar estranho é mais arriscado, IMHO.

    
por 29.01.2013 / 14:23
-3

Neste caso específico, eu diria que não se incomode, a menos que você tenha assistência (e permissão) dos administradores deste sistema compartilhado.

O Mathematica é executado no Windows, Mac e Linux, portanto basta instalá-lo na sua máquina desktop, onde você não precisa se preocupar em afetar os outros. Também é mais provável que o SO seja mais recente que o RHEL4 e, portanto, você não precisará fazer nenhuma contorção para instalá-lo.

    
por 05.02.2013 / 09:09

Tags