Wheezyに2.14以上のglibcをインストールする必要があります


22

e2e角度テストを実行するために分度器を動作させようとしていますが、分度器には2.14 が必要なChromeDriverが必要なSeleniumが必要ですglibc。私の現在の開発ボックスでは、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

ChromeDriverにはglibc 2.14が必要だと言うのはどこですか?一般に、高レベルのパッケージには、Cライブラリに対する非常に狭い制約はありません。ドキュメントまたはコードのどこかでそう言っていますか、それとも単にパッケージの依存関係としてリストされていますか?まだお持ちでない場合、ディストリビューションパッケージが正当な理由なく過度に厳密な依存関係を追加する可能性があることに注意してください。
ファヒームミタ

2.14または2.15が必要な場所を示す上記の端末出力を追加しました。しかし、すべてが現在機能しています。
クリス

回答:


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を追加して、事前にインストールされるものを確認できます。Debianパッケージトラッカーシステムでglibcパッケージのステータスを確認できます(Debianはeglibcパッケージの名前をJessie以降の単純なglibcに変更しました)。

4月25日にジェシーがリリースされるのを待つこともできます。


2
それでした。debian.org/doc/manuals/apt-howto/…のdebianの指示に従って、次にリストした2番目のコマンドを実行すると完全に機能しました。助けてくれてありがとう。ところで、テストの代わりに、不安定版が次のステップアップであることが頭にありました。
クリス

1
これらのどちらも私にとってはうまくいきませんでした。最初のメソッドが生成されE: The value 'testing' is invalid for APT::Default-Release as such a release is not available in the sources、2番目のメソッドE: Version '2.17-7' for 'libc6-dev' was not found
ショーンデニグリス

1
この受け入れられたソリューションには、実際に警告が必要です。その後、「FrankenDebian」 になりました:wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebianその後、依存関係の地獄からの脱出と私の安定したWheezyへの復帰に2〜3時間費やしました。
stanri

1
Debian.orgは、これは悪い考えだと明示的に述べています。誰もがシステム管理者ではありません。OPは、安全で推奨される解決策を求めましたが、それ とにかく壊れず、この解決策はこれらの基準のいずれにも適合しません。
stanri

2
引用しているので。OP:「すべてを壊すリスクなしに glibcを2.14または2.15にアップグレードする方法はありますか?」Debian.org:「他のDebianリリース用にリポジトリを追加するのは得策ではありません。...これにより、2つのシステムが壊れてしまいます。」このアドバイスを受ける前に、人々がコメントを読むことを願っています。私はこれで終わりです。
stanri

22

私の状況では、Debian Wheezy(デフォルトでglibc 2.13をインストールする)でGLIBC_2.14を使用してアプリケーション(Ubuntu 12.04 LTSでコンパイル)を実行しようとすると、エラーが表示されます。

私はそれを実行するためにトリッキーな方法を使用し、正しい結果を得る:

  1. ダウンロードlibc6libc6-devUbuntuの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からのみ使用し、動作します。

    他のアプリケーションで正常に機能するかどうかはわかりません。


ありがとう!これらの手順により、Debian WheezyでShaka Packagerを簡単に実行できました。exec env LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND "$@"毎回LD_LIBRARY_PATHを指定しなくてもコマンドが簡単に使用できるように、コマンドをbashスクリプトでラップしています。
ゲイブコプリー16

1

不安定なブランチを「安全に」試すためのいくつかのオプションがあると思います。

  • 仮想化
  • 見かけのルートディレクトリとして代替ディレクトリを選択するChrooting。したがって、ファイルシステムイメージ作成し、必要なパッケージを手動でインストールできます。これは複雑なプロセスであり、Debianの場合は以下を使用してはるかに簡単になります。
  • このリンクのDebian Wiki記事を引用すると、deboostrap

    Debianベースシステムを、すでにインストールされている別のシステムのサブディレクトリにインストールするツール。インストールCDは必要なく、Debianリポジトリにアクセスするだけです。

    これはdebootstrap、chroot技術を使用することを意味するものではありません。私はその内部実装を知りません。


私はdebootstrapチュートリアルを使用しましたが、それはまさに必要なものでした:wiki.debian.org/Debootstrap sidの例に従いましたが、代わりにjessieを使用しdebootstrap --arch amd64 jessie $MY_CHROOT http://http.debian.net/debian/ ました:ありがとう!
ドリューレスール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.