リンカー共有ライブラリのデフォルト パス /lib64/libc.so.6 をリダイレクトする方法、/lib64/libc.so.6: バージョン `GLIBC_2.14' が見つかりません

リンカー共有ライブラリのデフォルト パス /lib64/libc.so.6 をリダイレクトする方法、/lib64/libc.so.6: バージョン `GLIBC_2.14' が見つかりません

私の Linux マシンは x86_64-redhat-linux です。

しかし、私は別のアームツールチェーンを使用していますaarch64-linux-gnu-gccこのマシンでビルドします(このマシンでビルドしたものを実行する必要はなく、ビルドするだけなので、ビルドには arm ツールチェーンを使用するのがよいでしょう)

次のエラーが表示されます:

aarch64-linux-gnu-gcc: /lib64/libc.so.6: 
version `GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)

現在のデフォルトの共有ライブラリ パスは /lib64/libc.so.6 を指していますが、このマシンのユーザーは私だけではないので、更新したくありません。自分の libc.so.6 を使用するにはどうすればよいでしょうか。検索パスを別のディレクトリにリダイレクトできますか。

答え1

問題

GLIBC 2.12がインストールされており、OPのタイトルにあるように、彼が使用しようとしているクロスコンパイルツールチェーン必要GLIBC >2.14。OP は、システムを更新できないため制約を受けているとも述べています。

注意点

手順3の以下のリストは、changerootの構築に使用されます。可能な場合は、ディストリビューションのリポジトリに含まれるパッケージを使用してください。リポジトリの最新バージョンがchangerootの外部にインストールされているバージョンと同じ場合は、手順3を中止し、次のようなオンラインパッケージ検索を使用します。RPM検索新しいバージョンを見つけて続行します。 新しいバージョンまたはオンライン バージョンを、changroot の外部にインストールしないでください。これによりシステムが破損しますが、私は責任を負いません。

解決

OPは今、チェンジルート刑務所GLIBCのバージョンはSide By Sideでインストールできないため、ARMクロスコンパイラをインストールするには、Wikipedia - Chrootこれを行うには、次の手順に従ってください。

  1. changeroot 用のディレクトリを作成します。mkdir -pv $HOME/newroot
  2. RPM パッケージを chroot にインストールするようにリダイレクトするオーバーライドを作成します。export ROOT=$HOME/newroot && echo $ROOT興味がある場合は、手順 4 を参照してください。
    • 新しい変数はすぐに非常に重要になるので、エコーしてください。
  3. changeroot に推奨される rpm パッケージをダウンロードします (パッケージ名は次のとおりです):cd $ROOT && mkdir -v download && cd download
    • 設定
    • ファイルシステム
    • ベースシステム
    • ldconfig
    • glibc <--上記の注意事項に注意してください。そうしないと、この作業は無駄になってしまいます。
    • mptemp は
    • タームキャップ
    • ncurses
    • 情報
    • ファイルユーティリティ
    • bash && libtermcap
    • gdbm
    • tcsh
    • パール
    • chkconfig
    • テキストユーティリティ
    • クラックライブラリ
    • cracklib-dicts
    • パスワード
    • 口先だけの
    • 驚いて見る
    • pam --nodeps
    • シャドウユーティリティ
    • スラング
    • ユーティリティLinux --nodeps
    • sh ユーティリティ
    • 翻訳
    • sed
    • zip2 形式
    • ポップ
    • ズリブ
    • 回転数
    • クロスコンパイルツールチェーンとその依存関係
  4. 上記のリストをインストールするには、次のコマンドを使用します。rpm -i --root=$ROOT packagename引数--rootに注意してください。これは、RPM のデフォルトのインストール動作を上書きします。リスト内の、bash && libtermcap などの追加機能を持つパッケージに注意してください。引数を含め、リストに記載されているとおりに rpm -i コマンドを実行してください。--root上記の例では、libtermcap は bash と同じディレクトリにインストールされます。
  5. 最後に、chroot $ROOT && export PS1="(chroot) $PS1".

参照

上記の手順は以下から改変したものですRedHat Linux 6.2 で chroot 環境を設定する方法 - FTP および Web サービス用

関連情報