diary/Kojima

・Google Earth

MesaLib-9.2.2に更新して、OpenGL回りもちゃんと動くようになったので、 久しぶりにGoogle Earthを試してみた。

Google EarthはバイナリをRPMやDEBのパッケージで配布しているので、 rpm2cpio | cpio -ivd で展開し、txz形式にまとめ直してインストール。 ファイル類は /opt/google/earth/free/ 以下に入るらしい。

ところが、/opt/google/earth/free/google-earthや google-earth.bin を実行しようとすると全然動かない。

$ google-earth 
/usr/bin/google-earth: 行 44: ./googleearth-bin: そのようなファイルやディレクトリはありません
$ /opt/google/earth/free/googleearth-bin 
bash: /opt/google/earth/free/googleearth-bin: そのようなファイルやディレクトリはありません

何かライブラリが足りないのか、と調べても見えない。

$ ldd /opt/google/earth/free/googleearth-bin 
/usr/bin/ldd: 行 117: /opt/google/earth/free/googleearth-bin: そのようなファイルやディレクトリはありません

ファイルシステムの問題でファイルが見えなくなったのかな、と思ったが、 ファイルはちゃんと存在している。

$ readelf -a  /opt/google/earth/free/googleearth-bin | head
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1

「なぜだ?」としばし首を捻っていたが、バイナリエディタでファイルを開くと、 先頭付近に /lib64/ld-lsb-x86-64.so.3 なんて文字列が見える。

okteta.png

ld-lsb-x86-64.so.3 なんてローダは知らないなぁ、、とググってみたら、 Arch Linux方面で ld-linux-x86-64.so.2 へリンクを貼るだけで誤魔化しているのを 見つけ、そのとおりしてみたら、何とか起動することができた。

root@corei7:/lib64# ln ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3
$ google-earth
googleearth.png

ここ長いことGlibcは更新していないのだけど、最近は動的ローダの名前のルールが変ったのだろうか?



添付ファイル: fileokteta.png 160件 [詳細] filegoogleearth.png 199件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:42