宮城県沖の太平洋


Date/Time: 2021:02:28 06:09:05
Camera: Apple
Model: iPhone SE (1st generation)
Exporsure Time: 1/120
FNumber: 2.2
Aperture Value: 2.3
Focal Length: 4.2

Close

y2blog » OS X MavericksでのPerl依存アプリケーションの対応

11

02

2013

OS X MavericksでのPerl依存アプリケーションの対応

OS X MarvericksでPerlライブラリに依存するアプリでトラブル発生


OS X Marvericksにアップデートする際に、幾つかのPerl環境に依存するアプリケーションは動かなくなる可能性があります.私が使っているアプリケーションのうち、”GPSPhotolinker”(V1.6.5) は新しいMavericks環境では動きませんでしたが、ちょっと小細工することでMavericks環境でも動かすことができるようになります.


“GPSPhotolinker”(V1.6.5)をMavericks環境で起動すると、


Process:         GPSPhotoLinker [673]
Path:            /Applications/GPSPhotoLinker.app/Contents/MacOS/GPSPhotoLinker
Identifier:      com.earlyinnovations.GPSPhotoLinker
Version:         ???
Code Type:       X86 (Native)
Parent Process:  launchd [224]
Responsible:     GPSPhotoLinker [673]
User ID:         501

Date/Time:       2013-11-02 09:05:23.505 +0900
OS Version:      Mac OS X 10.9 (13A598)
Report Version:  11
Anonymous UUID:  B5A8D ....  C412


Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: /System/Library/Perl/lib/5.10/libperl.dylib
  Referenced from: /Applications/GPSPhotoLinker.app/Contents/MacOS/GPSPhotoLinker
  Reason: image not found


のようなメッセージを表示して強制終了してしまいます.どうやらPerlのダイナミックライブラリ “libperl.dylib” が見つからないのでアプリケーションを実行できないようです.GPSPhotoLinker以外にも、”MacVim” などもPerlの実装に依存しているようです.


そこでMavericksでのPerlの実装環境を調べて見ることにします.

Perl Library Path Mavericks(10.9)でのPerlの実装環境

 
OSX108 PerlLib
OSX 108 Perl Library Path Mountain Lion(10.8)でのPerlの実装環境


 

MarvericsではPerlの実装環境が変更されたようで、V5.10ではなくV5.16になっています.GPSPhotoLinkerはPerlのライブラリファイルのパスに依存しているため、新しいバージョンの Perlライブラリを見つけられないようです.


そこで 5.16 を無理矢理 5.10 に見せ掛けてGPSPhotoLinkerを起動できるようにしてみたところPerlライブラリが見つからなくてトラップされるエラーは発生しなくなったものの、アプリケションそのものはまともに動作する環境ではありませんでした.

無理矢理旧バージョン(V5.10)に見せ掛けてみる → 失敗


iMac27:Perl root# ls -la
total 0
drwxr-xr-x    5 root  wheel   170 Nov  2 10:03 .
drwxr-xr-x   78 root  wheel  2652 Nov  2 08:45 ..
drwxr-xr-x  158 root  wheel  5372 Nov  2 08:40 5.12
drwxr-xr-x  130 root  wheel  4420 Nov  2 08:40 5.16
drwxr-xr-x    4 root  wheel   136 Nov  2 08:36 Extras
iMac27:Perl root# ln -s 5.16 5.10
iMac27:Perl root# ls -la
total 8
drwxr-xr-x    6 root  wheel   204 Nov  2 10:04 .
drwxr-xr-x   78 root  wheel  2652 Nov  2 08:45 ..
lrwxr-xr-x    1 root  wheel     4 Nov  2 10:04 5.10 -> 5.16
drwxr-xr-x  158 root  wheel  5372 Nov  2 08:40 5.12
drwxr-xr-x  130 root  wheel  4420 Nov  2 08:40 5.16
drwxr-xr-x    4 root  wheel   136 Nov  2 08:36 Extras
iMac27:Perl root# mkdir lib
iMac27:Perl root# mkdir lib/5.10
iMac27:Perl root# ln -s /System/Library/Perl/5.16/darwin-thread-multi-2level/CORE/libperl.dylib /System/Library/Perl/lib/5.10/libperl.dylib

Mountain LionのPerl環境(V5.10)のフォルダ毎Marverics環境にコピー → 成功

iMac27:Perl root# cp -rp /Volumes/OSXSub/System/Library/Perl/5.10 . (←別なボリューム上のMountain LionのPerl環境をそっくりそのままコピーする)

iMac27:Perl root# ln -s /System/Library/Perl/5.10/darwin-thread-multi-2level/CORE/libperl.dylib /System/Library/Perl/lib/5.10/libperl.d (← Mountain LionのPerl環境に合わせる)


GPS PhotoLinker on Mavericks Mountain LionのPerl実行環境をコピーすることで一応GPSPhotoLinkerが使えるようになった