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