web-dev-qa-db-fra.com

Besoin d'installer glibc> = 2.14 sur Wheezy

J'essaie de faire fonctionner Protractor pour effectuer des tests e2e angular, mais le rapporteur nécessite Selenium ce qui nécessite ChromeDriver qui nécessite glibc 2.14. Ma boîte de développement actuelle exécute Debian Wheezy qui vient avec glibc 2.13. J'ai lu que le passage à la branche instable de Debian donnerait accès à glib-2.14, mais d'après ce que j'ai entendu, instable est assez ... instable.

Existe-t-il un moyen de mettre à niveau glibc vers 2.14 ou 2.15 sans risquer de tout casser? Ou est-il possible de revenir de la branche Debian instable si les choses commencent à se casser?

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
22
chris

Vous n'avez pas besoin de passer à instable pour obtenir glib> = 2.14. En fait, la branche testing (maintenant stable, ou Jessie) a glib-2.17 que vous pouvez choisir en ajoutant simplement le référentiel de tests et en lançant:

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

ou,

Sudo apt-get -t testing install libc6-dev

Vous pouvez ajouter le commutateur --dry-run pour voir ce qui sera installé à l'avance. Vous pouvez voir l'état du paquet glibc dans Debian Package Tracker System (Debian a renommé le paquet eglibc simplement glibc à partir de Jessie).

Vous pouvez également attendre Jessie sortie le 25 avril .

23
Braiam

Dans ma situation, l'erreur apparaît lorsque j'essaie d'exécuter une application (compilée sur Ubuntu 12.04 LTS) à l'aide de GLIBC_2.14 sur Debian Wheezy (qui installe glibc 2.13 par défaut).

J'utilise un moyen délicat pour l'exécuter et obtenir un résultat correct:

  1. Téléchargez libc6 et libc6-dev depuis Ubuntu 12.04 LTS

  2. Exécutez la commande dpkg pour les installer dans un répertoire (/home/user/fakeroot/ Par exemple):

    $ 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. Exécutez votre commande avec le LD_LIBRARY_PATH Spécifié:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. Mon application utilise uniquement memcpy() de GLIBC_2.14, et cela fonctionne.

    Je ne sais pas si cela fonctionnera avec succès pour d'autres applications.

23
Bin S

Je suppose qu'il existe plusieurs options pour essayer la branche instable "en toute sécurité":

  • Virtualisation
  • Chrooting où vous choisissez un répertoire alternatif comme répertoire racine apparent. Vous pouvez ainsi créer une image du système de fichiers et installer manuellement les packages requis. C'est un processus compliqué et il est rendu beaucoup plus facile dans le cas de Debian en utilisant:
  • deboostrap qui, pour citer l'article Debian Wiki sur ce lien, est

    un outil qui installera un système de base Debian dans un sous-répertoire d'un autre système déjà installé. Il ne nécessite pas de CD d'installation, il suffit d'accéder à un référentiel Debian.

    Cela ne signifie pas que debootstrap utilise la technique du chrootage; Je ne connais pas sa mise en œuvre interne.

1
Joseph R.