Precisa instalar o glibc = 2.14 no Wheezy

21

Estou tentando obter o transferidor funcionando para a realização de testes angulares e2e, mas o transferidor exige Selenium que requer ChromeDriver que requer glibc 2,14. Minha caixa de desenvolvimento atual está rodando Debian Wheezy que vem com glibc 2.13. Eu li que mudar para a ramificação instável do Debian forneceria acesso a glib-2.14 , mas pelo que ouvi instável é bem ... instável.

Existe alguma maneira de atualizar glibc para 2,14 ou 2,15 sem o risco de quebrar tudo? Ou é possível voltar do ramo Debian instável se as coisas começarem a quebrar?

12:15:22.784 INFO - Executing: [new session: {browserName=chrome}] at URL: /session)
12:15:22.796 INFO - Creating a new session for Capabilities [{browserName=chrome}]
/home/chris/projects/personal/woddy/client/selenium/chromedriver:     /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.15' not found (required by      /home/chris/projects/personal/woddy/client/selenium/chromedriver)
/home/chris/projects/personal/woddy/client/selenium/chromedriver: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found (required by /home/chris/projects/personal/woddy/client/selenium/chromedriver)
12:15:43.032 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException:  java.lang.reflect.InvocationTargetException
    
por chris 04.08.2013 / 23:42

3 respostas

22

Você não precisa mudar para instável para obter glib > = 2.14. Na verdade, o ramo de testes (agora estável, ou Jessie) tem o glib-2.17, que você pode escolher apenas adicionando o repositório de testes e lançando:

sudo apt-get install libc6-dev=2.17-7

ou

sudo apt-get -t testing install libc6-dev

Você pode adicionar a opção --dry-run para ver o que será instalado antes. Você pode ver o status do pacote glibc no Sistema de Rastreamento de Pacotes Debian (o Debian renomeou o pacote eglibc para simplesmente glibc de Jessie em diante).

Você também pode esperar pelo lançamento do Jessie em 25 de abril .

    
por 05.08.2013 / 01:22
21

Na minha situação, o erro aparece quando tento executar uma aplicação (compilada no Ubuntu 12.04 LTS) usando o GLIBC_2.14 no Debian Wheezy (que instala o glibc 2.13 por padrão).

Eu uso uma maneira complicada de executá-lo e obter o resultado correto:

  1. Faça o download libc6 e libc6-dev do Ubuntu 12.04 LTS

  2. Execute o comando dpkg para instalá-los em um diretório ( /home/user/fakeroot/ , por exemplo):

    $ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    $ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    
  3. Execute seu comando com LD_LIBRARY_PATH especificado:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. Meu aplicativo usa apenas memcpy() do GLIBC_2.14 e funciona.

    Não sei se funcionará com sucesso para outros aplicativos.

por 11.08.2014 / 10:41
1

Eu acho que existem várias opções para você experimentar o ramo instável "com segurança":

  • Virtualização
  • Chrooting , onde você escolhe um diretório alternativo como seu aparente diretório raiz. Você pode, portanto, criar uma imagem do sistema de arquivos e manualmente instale os pacotes necessários. Este é um processo complicado e é muito mais fácil no caso do Debian usando:
  • deboostrap que, para citar o artigo do Wiki Debian neste link, é

    a tool which will install a Debian base system into a subdirectory of another, already installed system. It doesn't require an installation CD, just access to a Debian repository.

    Isto não implica que debootstrap use a técnica de chrooting; Não tenho conhecimento de sua implementação interna.

por 05.08.2013 / 00:12

Tags