Page 1 of 1

Alpine Linux MediaInfo: Unable to load library

Posted: 09 Oct 2016, 21:21
by rix
I have built a docker container around my sorting/bash script that is based on alpine linux. There currently is no filebot package available for this distro, but I have set it up successfully.

Only thing not working is MediaInfo:

Code: Select all

FileBot 4.7 (r3923)
JNA Native: 4.0.1
[b]MediaInfo: net.filebot.mediainfo.MediaInfoException: Unable to load amd64 native library libmediainfo.so: Unable to load library 'zen': Native library (linux-x86-64/libzen.so) not found in resource path ([file:/filebot/FileBot.jar])[/b]
Apache Commons VFS: [zip, rar, tar]
Chromaprint: java.io.IOException: Cannot run program "fpcalc": error=2, No such file or directory
Extended Attributes: OK
Script Bundle: 2016-10-08 (r408)
Groovy: 2.4.6
JRE: OpenJDK Runtime Environment 1.8.0_92-internal (headless)
JVM: 64-bit OpenJDK 64-Bit Server VM
CPU/MEM: 8 Core / 3 GB Max Memory / 14 MB Used Memory
OS: Linux (amd64)
Package: PORTABLE
Data: /filebot/data/root
uname: Linux c6223ee13ac4 4.4.23-unRAID #1 SMP PREEMPT Sat Oct 1 13:41:00 PDT 2016 x86_64 GNU/Linux
MediaInfo is installed, however:

Code: Select all

mediainfo --help
MediaInfo Command line,
MediaInfoLib - v0.7.85
Usage: "MediaInfo [-Options...] FileName1 [Filename2...]"
My system is x64 (java, container and host):

Code: Select all

uname -a
Linux c6223ee13ac4 4.4.23-unRAID #1 SMP PREEMPT Sat Oct 1 13:41:00 PDT 2016 x86_64 GNU/Linux
These files reside at

Code: Select all

 /usr/local/lib$ ls
libmediainfo.la  libmediainfo.so.0      libzen.a   pkgconfig
libmediainfo.so  libmediainfo.so.0.0.0  libzen.la
What am I doing wrong? Filebot itself works, not the mediainfo part, however.

Here is my Dockerfile: https://github.com/rix1337/docker-verar ... Dockerfile
Am I somehow building x86 mediainfo or doing some other newcomer-mistake?

Am I building mediainfo the wrong way, or is FileBot portable unable to use mediainfo?
Any help would be greatly appreciated. Even if it means building FileBot myself.. (if so, how?)

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 09 Oct 2016, 21:43
by rednoah
You need libmediainfo (the library) not mediainfo (the executable).

Have you tried the 64-bit Linux binaries yet?
https://github.com/filebot/filebot/tree ... inux-amd64

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 09 Oct 2016, 21:47
by rix
That makes sense, thank you for the fast reply.

I have downloaded and moved those binaries to various locations, but could not figure out the right one..

Could you give me a hint where to store the binaries?

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 09 Oct 2016, 21:52
by rednoah
The portable folder should be fine. You can use strace to see where it's looking for libraries.

@see strace viewtopic.php?f=13&t=4192

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 09 Oct 2016, 22:26
by rix
rednoah wrote:The portable folder should be fine. You can use strace to see where it's looking for libraries.

@see strace viewtopic.php?f=13&t=4192
Wow! Didn't know one could do that..

Code: Select all

[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/filebot/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/bin/../lib/amd64/jli/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/bin/../lib/amd64/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/lib/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/local/lib/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/libzen.so", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_PATH) = -1 ENOENT (No such file or directory)
[pid   499] stat("/usr/lib/libzen.so", 0x2b5844109030) = -1 ENOENT (No such file or directory)
[pid   499] open("/lib/libzen.so", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_PATH) = -1 ENOENT (No such file or directory)
[pid   499] stat("/lib/libzen.so", 0x2b5844109030) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/filebot/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/bin/../lib/amd64/jli/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/jvm/java-1.8-openjdk/jre/bin/../lib/amd64/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/lib/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/local/lib/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] open("/usr/lib/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
[pid   499] write(1, "MediaInfo: net.filebot.mediainfo"..., 242MediaInfo: net.filebot.mediainfo.MediaInfoException: Unable to load amd64 (64-bit) native library libmediainfo.so: Unable to load library 'zen': Native library (linux-x86-64/libzen.so) not found in resource path ([file:/filebot/FileBot.jar])
These are the lines that either contain zen or media from an strace run. I'll try placing the compiled files in those locations and report back. From past attempts I know, that neither /usr/local/lib nor /usr/lib work if I place libzen.so there..

Thank you for now

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 10 Oct 2016, 06:14
by rednoah
rednoah wrote:The portable folder should be fine. You can use strace to see where it's looking for libraries.
So /filebot is where you extracted the FileBot portable folder? You should copy the libraries there:

Code: Select all

[pid   499] open("/filebot/libzen.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
strace says that /filebot/libzen.so doesn't exist so I guess you copied the *.so files to the wrong location.

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 11 Aug 2017, 11:44
by cxhamilton
@rix Did you ever get this working? I have tried the native portable libs without success. I have also installed the libmediainfo package from Alpine's edge branch to no avail. strace shows FileBot finding the shared lib, but still reports the "could not load" error message.

Re: Alpine Linux MediaInfo: Unable to load library

Posted: 11 Aug 2017, 11:58
by rix
Nope.. switched to the phusion image.