リンカ共有ライブラリのデフォルトパス/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の外側にインストールされているバージョンと同じ場合は、手順3を停止してオンラインパッケージ検索を使用してください。RPMルックアップ最新バージョンを見つけて続行します。 changrootの外部に最新バージョンやオンラインバージョンをインストールしないでください。これによりシステムが損傷する可能性があり、私は責任を負いません!

解決策

OPは今ルート刑務所の変更GLIBCのバージョンは並列にインストールできないため、ARMクロスコンパイラをインストールしてください。また、見ることができますウィキペディア - Chroot。これを行うには、次の手順に従います。

  1. ChangeRoot用のディレクトリを作成します。mkdir -pv $HOME/newroot
  2. chrootにインストールするRPMパッケージをリダイレクトするオーバーライドを作成しますexport ROOT=$HOME/newroot && echo $ROOT。ご質問がある場合は、手順4を参照してください。
    • これは非常に重要になるので、新しい変数をエコーし​​てみてください。
  3. Changerootが推奨するrpmパッケージをダウンロードします(パッケージ名):cd $ROOT && mkdir -v download && cd download
    • 設定
    • ファイルシステム
    • 基本システム
    • LD構成
    • グリBC <--上記の警告に注意してください。それ以外の場合は、これを実行しても役に立ちません。
    • 一時テーブル
    • 用語キャップ
    • 呪い
    • 情報
    • ファイルツール
    • バッシュ&& libtermcap
    • データベース管理システム
    • tcsh
    • 真珠
    • 構成の確認
    • テキストユーティリティ
    • クラックライブラリ
    • Racklib-dicts
    • 汎用データベース
    • グリップ舌
    • 愚かな
    • パム --nodeps
    • シャドウツール
    • スラング
    • ユーティリティ - Linux --nodeps
    • sh-utils
    • 扱いにくい
    • sed
    • 圧縮パッケージ2
    • ポップト
    • 宿
    • 回転速度
    • クロスコンパイルツールチェーンとその依存関係
  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サービス用

関連情報