chrootにコピーされたオペレーティングシステムでエラーを生成する

chrootにコピーされたオペレーティングシステムでエラーを生成する

私はいくつかの興味深い状況に直面しています。

学校の物理ネットワークコンピュータへのルートアクセスを得るために、最終的にfakerootとfakechrootを使用してchroot環境を作成しました。私が読んだ内容はすべて、debootstrap(サブディレクトリにDebianをインストールするツール)にroot権限が必要であることを示しているので、リストされた方法を使用しました。ここcp- これを行うには、端末コマンドとその依存関係をこの環境にコピーする必要があります。

私はこのきちんとしたトリックを何度も使用して、ほぼ完全なオペレーティングシステム(Debian +複数の物理ツール)をサブディレクトリ、つまりオペレーティングシステムのように偽装したサブディレクトリにコピーしました。修道・神。

驚くべきことに、多くのことが動作します。最初はそうしませんでしたが、コーヒーは虫を殺しました。

残念ながら私は少し立ち往生しています。 Python(apt-getなど)を使用するたびに、次のようになります。

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]

この問題に対するほとんどの修正には、実際にはPYTHONHOMEおよびPYTHONPATH変数の設定が含まれますが、これは何も修正されません。もう一つの一般的な解決策は、ソースからPythonをビルドすることです。私はそれを試しましたが、何でもビルドしようとすると、次のメッセージが表示されます。

configure: error: C compiler cannot create executables

このエラーのための追加のconfig.logファイルを見つけることができます。ここ

どんな助けでも大変感謝します。また、この問題を完全に回避したり、ルートなしでdebootstrapを動作させようとする提案があればそれも良いでしょう。


アップデート1:仕事を少し単純化しようとしています。単純なcファイルをコンパイルしようとしましたが、別の一般的なエラーが発生しました。

gcc: error trying to exec 'cc1': execvp: No such file or directory

whereisそれを見つけようとしましたが、私の環境にはcc1が存在しないことがわかりました!今は戦い続けなければなりません...

アップデート2:gccからcc1()へのソフトリンクを生成し、ln -s /usr/bin/gcc /usr/bin/cc1火山に軽い包帯を巻き付けました。これで、サンプルファイルをgccするとき'-quiet''-imultiarch x86_64-linux-gnu'およびを含む認識できないコマンドラインオプションがあります'-auxbase'

アップデート3:コンパイラを動作させてください!他のコンパイラ(gcc-4.4、gcc-4.7、gcc-arなど)を使用して上記の問題をすべて解決しました。最後のゲームでは別のエラーが発生しました。必要なプラグインが見つかりませんでした。これにより、すべてのCライブラリがプライマリオペレーティングシステムからコピーされるわけではないことに気づきました。私はこれを解決し、私の問題(多くの問題の1つ)を解決しました。

私の新しい問題は、GMP、MPFR、およびMPCが(明らかに)不足していることです。これはgccを再構築するために必要です。

アップデート4: 3 つのライブラリがすべてコンパイルされます。 gccビルドプロセスの次の問題は、crt1.o、crti.o、crtn.o、-lgcc、-lgcc_s、および-lcが見つからないことです。--enable-multilib構成スクリプトにフラグを設定してこの問題を解決しました。

関連情報