
私の 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これを行うには、次の手順に従ってください。
- changeroot 用のディレクトリを作成します。
mkdir -pv $HOME/newroot
- RPM パッケージを chroot にインストールするようにリダイレクトするオーバーライドを作成します。
export ROOT=$HOME/newroot && echo $ROOT
興味がある場合は、手順 4 を参照してください。- 新しい変数はすぐに非常に重要になるので、エコーしてください。
- 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 形式
- ポップ
- ズリブ
- 回転数
- クロスコンパイルツールチェーンとその依存関係
- 上記のリストをインストールするには、次のコマンドを使用します。
rpm -i --root=$ROOT packagename
引数--root
に注意してください。これは、RPM のデフォルトのインストール動作を上書きします。リスト内の、bash && libtermcap などの追加機能を持つパッケージに注意してください。引数を含め、リストに記載されているとおりに rpm -i コマンドを実行してください。--root
上記の例では、libtermcap は bash と同じディレクトリにインストールされます。 - 最後に、
chroot $ROOT && export PS1="(chroot) $PS1"
.
参照
上記の手順は以下から改変したものですRedHat Linux 6.2 で chroot 環境を設定する方法 - FTP および Web サービス用