hack のためのネタ帳, etc,,,

unable to remap ... エラーへの対応

Cygwin で作業してるとたまに以下のようなエラーが出ることがある。
... unable to remap C:\cygwin\bin\cygglib-2.0-0.dll to same address as parent: 0x18BD0000 != 0x6AA40000 ...
このようなエラーが出る場合 cygwin 関連のプログラムをすべて終了した状態で ash または dash を起動し /bin/rebaseall を実行する必要がある。
通常は 田+R (Windowsキー+R) から C:\cygwin\bin\ash を実行して
/bin/rebaseall -v
等としておけばよい。

rbenv で管理された ruby への対応

上記通常の方法では rbenv 等で ~/.rbenv/versions/ 以下にビルドされた ruby が持つ *.so 等は rebaseall の対象にならない。このため
gem install hpricot
のように gem のインストールを行う際に unable to remap ... のエラーが出た場合、解消出来ない場合がある。
この場合 rebaseall 対象のファイルリストを生成して -T オプションで食わせると解消できる。
具体的には ash 上から以下のようにすれば良い。
/bin/find ~/.rbenv/versions/ -iname '*.so' > /tmp/rebasealllist.txt
/bin/rebaseall -v -T /tmp/rebasealllist.txt

関連

タグ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます