Wheezy에서 glibc> = 2.14를 설치해야합니다.


22

e2e 앵귤러 테스트를 수행 하기 위해 Protractor를 작동 시키려고 노력하고 있지만, 각도기 에는 2.14 가 필요한 ChromeDriver 가 필요한 Selenium 이 필요 합니다 . 내 현재 개발 상자에는 2.13 과 함께 제공되는 Debian Wheezy가 실행 중 입니다. 데비안의 불안정한 지점으로 전환하면에 액세스 할 수 있지만 불안정하다고 들었던 것은 꽤 불안정합니다.glibcglibcglib-2.14

glibc모든 것을 깰 위험없이 2.14 또는 2.15로 업그레이드 할 수있는 방법이 있습니까? 아니면 문제가 발생하기 시작하면 불안정한 데비안 브랜치에서 다시 전환 할 수 있습니까?

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

ChromeDriver에 glibc 2.14가 필요하다고 말하는 곳은 어디입니까? 일반적으로 높은 수준의 패키지는 C 라이브러리에 대해 매우 좁은 제약 조건이 없습니다. 설명서 또는 코드 어딘가에 명시되어 있거나 단순히 일부 패키지의 종속성으로 나열되어 있습니까? 아직 배포 패키지가 아닌 경우에는 배포 패키지에 아무 이유없이 지나치게 엄격한 종속성이 추가 될 수 있습니다.
Faheem Mitha

2.14 또는 2.15가 필요한 곳을 보여주는 위의 터미널 출력을 추가했습니다. 그러나 모든 것이 지금 작동하고 있습니다.
chris

답변:


23

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를 추가하여 미리 설치 될 항목을 확인할 수 있습니다 . 데비안 패키지 트래커 시스템 에서 glibc 패키지의 상태를 볼 수 있습니다 (데비안은 eglibc 패키지의 이름 을 Jessie의 glibc 로 간단히 변경 했습니다).

4 월 25 일 에 제시 릴리스를 기다릴 수도 있습니다 .


2
그랬어. debian.org/doc/manuals/apt-howto/…에 있는 데비안 지침에 따라 두 번째 명령을 실행하면 완벽하게 작동했습니다. 도와 주셔서 감사합니다. BTW 나는 머리 대신 불안정한 것이 테스트 대신 다음 단계라고 생각했다.
chris

1
이 중 어느 것도 나를 위해 일하지 않았습니다. 첫 번째 방법 E: The value 'testing' is invalid for APT::Default-Release as such a release is not available in the sources과 두 번째 방법E: Version '2.17-7' for 'libc6-dev' was not found
Sean DeNigris 14:01에

1
이 수락 된 솔루션에는 실제로 경고가 있어야합니다. 나는 그것을 따르고 "FrankenDebian"으로 끝났다 : wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian 나는 그 다음 2-3 시간을 의존성 지옥에서 벗어나 싸우고 내 시스템을 안정적인 Wheezy로 되돌려 놓았다.
stanri

1
Debian.org는 이것이 나쁜 생각이라고 명시 적으로 언급합니다. 모든 사람이 시스템 관리자는 아닙니다. 영업 이익은 안전하고 권장 솔루션을 요구 하지 않습니다 anythong 휴식,이 솔루션은 그 기준 중 하나를 충족하지 않습니다.
stanri

2
우리는 지금 물건을 인용하고 있기 때문에. OP : " 모든 것을 깰 위험없이 glibc를 2.14 또는 2.15로 업그레이드 할 수있는 방법이 있습니까?" Debian.org : "다른 데비안 릴리즈를위한 리포지토리를 추가하는 것은 좋은 생각이 아닙니다 .... 이로 인해 시스템이 두 개가 섞인 것입니다. "얼마나 더 명확 할 수 있습니까? 이 조언을 받기 전에 사람들이 의견을 읽어 주시기를 바랍니다. 끝났어요
stanri

22

내 상황에서 Debian Wheezy (기본적으로 glibc 2.13 설치)에서 GLIBC_2.14를 사용하여 응용 프로그램 (Ubuntu 12.04 LTS에서 컴파일 됨)을 실행하려고하면 오류가 나타납니다.

까다로운 방법으로 실행하고 올바른 결과를 얻습니다.

  1. 우분투 12.04 LTS 다운로드 libc6및 다운로드libc6-dev

  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 에서만 사용 하며 작동합니다.

    다른 응용 프로그램에서 성공적으로 작동하는지 모르겠습니다.


감사! 이 지침을 통해 Debian Wheezy에서 Shaka Packager를 쉽게 실행할 수있었습니다. exec env LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND "$@"매번 LD_LIBRARY_PATH를 지정할 필요없이 명령을 쉽게 사용할 수 있도록 bash 스크립트로 명령을 래핑하고 있습니다.
Gabe Kopley

1

불안정한 분기를 "안전하게"시험해 볼 수있는 몇 가지 옵션이 있습니다.

  • 가상화
  • chroot를 당신이 당신의 명백한 루트 디렉토리와 다른 디렉토리를 선택된다. 따라서 파일 시스템 이미지작성 하고 필요한 패키지를 수동으로 설치할 수 있습니다 . 이것은 복잡한 프로세스이며 데비안의 경우 다음을 사용하여 훨씬 쉽게 만듭니다.
  • 이 링크에서 데비안 위키 기사를 인용 한 deboostrap

    데비안베이스 시스템을 이미 설치된 다른 시스템의 서브 디렉토리에 설치하는 도구. 설치 CD가 필요 없으며 데비안 저장소에 액세스하면됩니다.

    이것은 debootstrapchrooting 기술 을 사용 한다는 것을 의미하지는 않습니다 . 내부 구현에 대해 잘 모르겠습니다.


나는 debootstrap 튜토리얼을 사용했고 그것은 단지 내가 필요했던 것이었다 : wiki.debian.org/Debootstrap 나는 sid 예제를 따랐다 debootstrap --arch amd64 jessie $MY_CHROOT http://http.debian.net/debian/ .
Drew LeSueur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.