使っていない機能のライブラリが足りない(not foundとなる)が、セキュリティーホールになるかも
しれないので適当に誤魔化した、誤魔化せてるのか?、の件、バットノウハウ。
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/%a5%e9%a5%a4%a5%d6%a5%e9%a5%ea%a4%ceinstall%c9%d4%c2%ad%a4%ce%a5%c1%a5%a7%a5%c3%a5%af
libQt5OpenGL.so.5 => not found (Qtは入れない、使わない)
libQt5Network.so.5 => not found
libQt5Widgets.so.5 => not found
libQt5Network.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Core.so.5 => not found
本来はQtのライブラリを誤魔化すのが最終目的だが、試しに他のライブラリで調べてやってみた。
Speech Dispatcher ライブラリが足りないため音声合成を使用できません
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/%a5%d6%a5%e9%a5%a6%a5%b6%a4%cf%cb%dc%b2%c8%a4%ce%a4%f2%bb%c8%a4%a6
で入れたライブラリが依存するライブラリに不足があった。
$ ldd -d /usr/lib64/speech-dispatcher-modules/sd_baratinoo
\ linux-vdso.so.1 (0x00007ffc3fdce000)
\ libbaratinoo.so => not found
\ libdl.so.2 => /lib64/libdl.so.2 (0x00007f17ac08b000)
\ libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007f17ac00b000)
\ libdotconf.so.0 => /usr/lib64/libdotconf.so.0 (0x00007f17ac003000)
\ libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f17abffe000)
\ libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f17abeca000)
\ libc.so.6 => /lib64/libc.so.6 (0x00007f17abce9000)
\ libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007f17abcdd000)
\ libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f17abcbc000)
\ libm.so.6 => /lib64/libm.so.6 (0x00007f17abb74000)
\ /lib64/ld-linux-x86-64.so.2 (0x00007f17ac0ab000)
\ libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007f17abb35000)
\ libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007f17abb07000)
\ libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007f17aba5a000)
\ libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007f17ab9fc000)
\ libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007f17ab9f1000)
\ libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f17ab979000)
$ ldd -r /usr/lib64/speech-dispatcher-modules/sd_baratinoo
\ linux-vdso.so.1 (0x00007ffff23dc000)
\ libbaratinoo.so => not found
\ libdl.so.2 => /lib64/libdl.so.2 (0x00007f7b82351000)
\ libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007f7b822d1000)
\ libdotconf.so.0 => /usr/lib64/libdotconf.so.0 (0x00007f7b822c9000)
\ libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f7b822c4000)
\ libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f7b82190000)
\ libc.so.6 => /lib64/libc.so.6 (0x00007f7b81faf000)
\ libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007f7b81fa3000)
\ libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7b81f82000)
\ libm.so.6 => /lib64/libm.so.6 (0x00007f7b81e3a000)
\ /lib64/ld-linux-x86-64.so.2 (0x00007f7b82371000)
\ libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007f7b81dfb000)
\ libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007f7b81dcd000)
\ libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007f7b81d20000)
\ libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007f7b81cc2000)
\ libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007f7b81cb7000)
\ libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f7b81c3f000)
undefined symbol: BCgetBaratinooVersion (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCinitlib (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCinputTextBufferInit (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCsetOutputSignal (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCinputTextBufferDelete (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCinit (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCinputTextBufferNew (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCnew (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCprocessLoop (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCgetNumberOfVoices (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCdelete (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCgetEvent (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCterminatelib (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCsetWantedEvent (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCgetState (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCinputTextBufferSetInEngine (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCgetVoiceInfo (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
undefined symbol: BCgetBaratinooVersionStruct (/usr/lib64/speech-dispatcher-modules/sd_baratinoo)
libbaratinoo.so => not found、を誤魔化す。足りないのはオブジェクトではなく関数らしい。
$ echo ‘BCgetBaratinooVersion(){} BCinitlib(){} BCinputTextBufferInit(){} BCsetOutputSignal(){} BCinputTextBufferDelete(){} BCinit(){} BCinputTextBufferNew(){} BCnew(){} BCprocessLoop(){} BCgetNumberOfVoices(){} BCdelete(){} BCgetEvent(){} BCterminatelib(){} BCsetWantedEvent(){} BCgetState(){} BCinputTextBufferSetInEngine(){} BCgetVoiceInfo(){} BCgetBaratinooVersionStruct(){} ‘ > libbaratinoo.c
$ gcc -shared -fPIC libbaratinoo.c -o libbaratinoo.so
$ LD_LIBRARY_PATH=. ldd /usr/lib64/speech-dispatcher-modules/sd_baratinoo
\ linux-vdso.so.1 (0x00007ffe4a9bf000)
\ libbaratinoo.so => ./libbaratinoo.so (0x00007f95eec52000)
\ libdl.so.2 => /lib64/libdl.so.2 (0x00007f95eec34000)
\ libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007f95eebb4000)
\ libdotconf.so.0 => /usr/lib64/libdotconf.so.0 (0x00007f95eebac000)
\ libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f95eeba7000)
\ libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f95eea73000)
\ libc.so.6 => /lib64/libc.so.6 (0x00007f95ee892000)
\ libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007f95ee886000)
\ libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f95ee865000)
\ libm.so.6 => /lib64/libm.so.6 (0x00007f95ee71d000)
\ /lib64/ld-linux-x86-64.so.2 (0x00007f95eec59000)
\ libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007f95ee6de000)
\ libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007f95ee6b0000)
\ libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007f95ee603000)
\ libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007f95ee5a5000)
\ libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007f95ee59a000)
\ libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f95ee522000)
うまくいけてそうなので、後は、/usr/local/libdummy とか作って、そこに libbaratinoo.so を入れて
/etc/ld.so.conf に登録するか。
とはいえ、外部にサービスを提供しているわけでもないし、数が多くてメンドクサいから当面やらない。
\-u とやるとリンクしてても使ってないライブラリを表示するらしい。含まれる全関数を使ってない?
$ ldd -u /usr/lib64/speech-dispatcher-modules/sd_baratinoo
Unused direct dependencies:
\ libbaratinoo.so
\ /lib64/libdl.so.2
\ /usr/lib64/libgthread-2.0.so.0
\ /lib64/libm.so.6
$ LD_LIBRARY_PATH=. ldd -u /usr/lib64/speech-dispatcher-modules/sd_baratinoo
Unused direct dependencies:
\ /lib64/libdl.so.2
\ /usr/lib64/libgthread-2.0.so.0
\ /lib64/libm.so.6
(無いなら無いで、使わないってか)
参考情報:
Linuxコマンド【 ldd 】共有ライブラリへの依存関係を表示する
https://webkaru.net/linux/ldd-command/
Linux共有ライブラリ「.so」の作り方
https://www.tenkaiken.com/short-articles/linux%E5%85%B1%E6%9C%89%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-so-%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9/