debianでのblenderビルドメモ

本家のbuild手順踏まえても、debian8系でうまくbuildしたblender起動できなかったのでメモ書きしておく。

OS/HW環境

以下の通りです。

murase@debian:~/blender-git/build/bin$ cat /etc/debian_version 
8.2
murase@debian:~/blender-git/build/bin$ uname -a
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux
murase@debian:~/blender-git/build/bin$ lspci |grep VGA
05:00.0 VGA compatible controller: NVIDIA Corporation GF106 [GeForce GTS 450] (rev a1)
murase@debian:~/blender-git/build/bin$ cat /proc/cpuinfo |grep AMD
vendor_id	: AuthenticAMD
model name	: AMD Phenom(tm) II X6 1065T Processor
...

build to blender

で、基本は本家を参照。

で、本家の情報の通りbuildして、いざ実行しても、boostのいくつかの動的ライブラリで、以下リンクエラーとなりました。
boost1.5くらいが最新なので、1.49等を参照されてもこまるのですが、どこかhardcodingしてるんでしょうか?

murase@debian:~/blender-git/build/bin$ ./blender
./blender: error while loading shared libraries: libboost_filesystem.so.1.49.0: cannot open shared object file: No such file or directory

murase@debian:~/blender-git/build/bin$ ldd blender
	linux-vdso.so.1 (0x00007fff60320000)
	libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f244b0cd000)
...
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f24436b0000)
	libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f24434a1000)
	libboost_filesystem.so.1.49.0 => not found
	libboost_regex.so.1.49.0 => not found
	libboost_system.so.1.49.0 => not found
	libboost_thread.so.1.49.0 => not found
	libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f2443241000)
	libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f2442e46000)
...

fix link error

仕方ないので、boost1.5系の対応するライブラリへのシンボリックリンクを作ってやりましたが、こんな解決方法でいいのでしょうかね?

sudo paco -lp blender_hotfix_to_dynamic_link_err "\
ln -s /usr/lib/x86_64-linux-gnu/libboost_filesystem.so /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.49.0;\
ln -s /usr/lib/x86_64-linux-gnu/libboost_regex.so      /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.49.0;\
ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so     /usr/lib/x86_64-linux-gnu/libboost_system.so.1.49.0;\
ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so     /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.49.0"

result

はい、libboost1.5系を参照して、正常に起動するようになりました。終わり><

$ ldd blender
	linux-vdso.so.1 (0x00007fff111b8000)
	libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f35933bd000)
...
	libOpenImageIO.so.1.4 => /opt/lib/oiio/lib/libOpenImageIO.so.1.4 (0x00007f3591e3a000)
	libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f3591be3000)
	libboost_filesystem.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.55.0 (0x00007f35919cb000)
	libboost_regex.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.55.0 (0x00007f35916b7000)
	libboost_system.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.55.0 (0x00007f35914b3000)
	libboost_thread.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.55.0 (0x00007f3591298000)
	libboost_date_time.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.55.0 (0x00007f3591086000)
	libboost_locale.so.1.55.0 => /usr/lib/x86_64-linux-gnu/libboost_locale.so.1.55.0 (0x00007f3590d9c000)
...