Нужно установить glibc> = 2.14 на Wheezy

Я пытаюсь заставить Protractor работать для выполнения угловых испытаний e2e, но для транспортира требуется Selenium, для которого требуется ChromeDriver, для которого требуется glibc 2.14. В моем текущем окне разработки работает Debian Wheezy, который поставляется с glibc 2.13. Я прочитал, что переход на нестабильную ветку Debian обеспечит доступ к glib-2.14 , но из того, что я слышал, неустойчивый довольно … нестабилен.

Есть ли способ обновить glibc до 2.14 или 2.15 без риска сломать все? Или можно переключиться с нестабильной ветки Debian, если что-то начнет ломаться?

 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 

Вам не нужно переключаться на неустойчивое, чтобы получить glib> = 2.14. Фактически, ветка тестирования (теперь стабильная, или Jessie) имеет glib-2.17, которую вы можете выбрать, просто добавив тестовый репозиторий и запустив:

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

или,

 sudo apt-get -t testing install libc6-dev 

Вы можете добавить переключатель --dry-run чтобы посмотреть, что будет установлено перед --dry-run . Статус glibc-пакета можно увидеть в системе отслеживания пакетов Debian (Debian переименовал пакет eglibc, чтобы просто перейти от Jessie вперед).

Вы также можете просто дождаться выпуска Джесси 25 апреля .

В моей ситуации ошибка появляется, когда я пытаюсь запустить приложение (скомпилированное на Ubuntu 12.04 LTS), используя GLIBC_2.14 в Debian Wheezy (который устанавливает glibc 2.13 по умолчанию).

Я использую сложный способ запустить его и получить правильный результат:

  1. Загрузите libc6 и libc6-dev из Ubuntu 12.04 LTS

  2. Запустите команду dpkg чтобы установить их в каталог ( /home/user/fakeroot/ например):

     $ 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. Запустите команду с указанным LD_LIBRARY_PATH :

     $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND 
  4. Мое приложение использует только memcpy() из GLIBC_2.14, и оно работает.

    Я не знаю, будет ли он работать успешно для других приложений.

Я думаю, есть несколько вариантов для того, чтобы попробовать нестабильную ветку «безопасно»:

  • Виртуализация
  • Chrooting, в соответствии с которым вы выбираете альтернативный каталог как ваш кажущийся корневой каталог. Таким образом, вы можете создать образ файловой системы и вручную установить необходимые пакеты. Это сложный процесс, и в Debian это значительно упрощается, используя:
  • deboostrap, который, цитируя статью Debian Wiki по этой ссылке, является

    инструмент, который установит базовую систему Debian в подкаталог другой уже установленной системы. Для этого не требуется установочный компакт-диск, просто доступ к репозиторию Debian.

    Это не означает, что debootstrap использует метод chrooting; Я не знаю его внутренней реализации.