macportsからsubversionをインストールしようとしたらdb46のインストールでハマったのでメモ。
db46単体でインストールしようとするとこんなエラーが。
$ sudo port install db46 ---> Computing dependencies for db46 ---> Fetching db46 ---> Verifying checksum(s) for db46 ---> Extracting db46 ---> Applying patches to db46 ---> Configuring db46 ---> Building db46 Error: Target org.macports.build returned: shell command failed Log for db46 is at: /opt/local/var/macports/logs/_Users_sanojimaru_db46/main.log Error: Status 1 encountered during processing. To report a bug, see <http://guide.macports.org/#project.tickets>
ログにgrepをかけてみる。
$ cat /opt/local/var/macports/logs/_Users_sanojimaru_db46/main.log | grep 'error' :info:build ../dist/../libdb_java/db_java_wrap.c:123:17: error: jni.h: No such file or directory :info:build ../dist/../libdb_java/db_java_wrap.c:147: error: expected ')' before '*' token :info:build ../dist/../libdb_java/db_java_wrap.c:196: error: expected ')' before '*' token :info:build ../dist/../libdb_java/db_java_wrap.c:200: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token 以下略
javaが悪いことしてそう。
とりあえずググると、/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDKに何かシンボリックリンクを張ったら動いたとの記述を発見(ソース失念><)したので、とりあえず該当パスを見てみた。
$ ls /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK drwxr-xr-x 11 root wheel 374 10 28 16:07 . drwxr-xr-x 3 root wheel 102 10 12 14:56 .. drwxr-xr-x 11 root wheel 374 10 22 14:16 Classes drwxr-xr-x 41 root wheel 1394 10 22 14:16 Commands drwxr-xr-x 6 root wheel 204 10 22 14:16 Home -rw-r--r-- 1 root wheel 1576 10 12 14:39 Info.plist drwxr-xr-x 50 root wheel 1700 10 22 14:16 Libraries drwxr-xr-x 3 root wheel 102 10 22 14:16 MacOS drwxr-xr-x 21 root wheel 714 10 22 14:16 Resources -rw-r--r-- 1 root wheel 454 10 12 14:42 version.plist
あれ、Headersがない。。。
とりあえず、JDKの方のCurrentJDK/Headersにシンボリックリンクを張りつつ再チャレンジ。
$ ln -s /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers $ sudo port -f clean --all db46 $ sudo port install db46 ---> Computing dependencies for db46 ---> Fetching db46 ---> Attempting to fetch patch.4.6.21.1 from http://download.oracle.com/berkeley-db/patches/db/4.6.21/ ---> Attempting to fetch patch.4.6.21.2 from http://download.oracle.com/berkeley-db/patches/db/4.6.21/ ---> Attempting to fetch patch.4.6.21.3 from http://download.oracle.com/berkeley-db/patches/db/4.6.21/ ---> Attempting to fetch patch.4.6.21.4 from http://download.oracle.com/berkeley-db/patches/db/4.6.21/ ---> Attempting to fetch db-4.6.21.tar.gz from http://download-uk.oracle.com/berkeley-db/ ---> Verifying checksum(s) for db46 ---> Extracting db46 ---> Applying patches to db46 ---> Configuring db46 ---> Building db46 ---> Staging db46 into destroot ---> Installing db46 @4.6.21_6 ---> Activating db46 @4.6.21_6 ---> Cleaning db46
通ったよっと。
30分ぐらいハマった。
今日は忙しいので原因究明は我慢するっ
–2010年11月5日修正–
–$ ln -s /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers /Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers
++$ ln -s /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers
リンクの置き場所のパスが間違っていました、申し訳ございません。