3

Linux で mono 2.10.9 と 3.0.3 をコンパイルしましたが、これらのインストールを再コンパイルせずに別の場所に移動できるようにしたいと考えています。私が抱えている問題は、再配置後に mono-sgen が etc/ ディレクトリを見つけられないことです。興味深いことに、boehm GC を使用する monoは、再配置後にそのディレクトリを見つけることができます。2 つの実行可能ファイルの動作が異なる理由はありますか?

次のように MONO_PATH を使用して、更新されたライブラリ パスを指定できました。

export MONO_PATH=${PKG_DIR}/lib/mono/4.0:${PKG_DIR}/lib/mono/3.5:${PKG_DIR}/lib/mono/2.0:${PKG_DIR}/lib/mono/compat-2.0

しかし、etc/ ディレクトリを見つけるために mono-sgen を取得することに行き詰まっています。結果として受け取っている例外は次のとおりです。

ConfigurationErrorsException: Error Initializing the configuration system.

新しいプレフィックスを使用してモノを再コンパイルすることが最も簡単な解決策である場合は、その方法に進みますが、うまくいけば、これを機能させるためにできることが他にもあります。プログラム全体をそのすべての依存関係とともに再配置でき、それが引き続き機能するのは素晴らしいことです。

4

1 に答える 1

4

上記の質問に対する答えは次のとおりです。

export MONO_CONFIG=${PKG_DIR}/etc/mono/config
export MONO_CFG_DIR=${PKG_DIR}/etc

ただし、再配置されたモノラルインストールを完全に機能させるために設定する必要のある環境変数は他にもたくさんあります。読む...

私はこれを機能させることができました。再配置を正しく機能させるには、設定する必要のある変数がいくつかあることがわかりました。次のコードは、モノラルインストールがに移動されたことを前提としています${PKG_DIR}${PKG_DIR}/etc/fontsインストールを別のシステムに移動した場合にフォントが見つかるように、必要なすべてのフォントを移動しました。これが私が使用した環境変数です。これらのいくつかは必要ないかもしれません:

export LD_LIBRARY_PATH=$PKG_DIR/lib64:$PKG_DIR/lib:$LD_LIBRARY_PATH
export LD_RUN_PATH=$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$PKG_DIR/lib64/pkgconfig:$PKG_CONFIG_PATH
export MONO_GAC_PREFIX=${PKG_DIR}
export MONO_PATH=${PKG_DIR}/lib/mono/4.0:${PKG_DIR}/lib/mono/3.5:${PKG_DIR}/lib/mono/2.0:${PKG_DIR}/lib/mono/compat-2.0
export MONO_CONFIG=${PKG_DIR}/etc/mono/config
export MONO_CFG_DIR=${PKG_DIR}/etc
export C_INCLUDE_PATH=${PKG_DIR}/include
export ACLOCAL_PATH=${PKG_DIR}/share/aclocal
export FONTCONFIG_PATH=${PKG_DIR}/etc/fonts
export XDG_DATA_HOME=${PKG_DIR}/etc/fonts
export MONO_REGISTRY_PATH=~/.mono/registry
于 2013-03-02T20:57:29.473 に答える