Strange behavior (different than Ubuntu)
-
- Offline
- 6 months 4 weeks ago
- 2016-07-01
Hello,
The following commands failed in the alpine linux docker:
Container:
docker run --rm -ti alpine:latest /bin/sh
apk update
apk add bash make gcc g++ gfortran git wget zlib-dev
Failed command:
# cd /tmp && \
> # Download MKL install package
> wget -q http://registrationcenter-download.intel.com/akdlm/irc_nas/8374/l_mkl_11.3.1.150.tgz && \
> # Install MKL
> tar -xzf l_mkl_11.3.1.150.tgz && cd l_mkl_11.3.1.150 && \
> sed -i 's/ACCEPT_EULA=decline/ACCEPT_EULA=accept/g' silent.cfg && \
> sed -i 's/ACTIVATION_TYPE=exist_lic/ACTIVATION_TYPE=trial_lic/g' silent.cfg && \
> ./install.sh -s silent.cfg
Illegal option -p
./install.sh: line 587: /tmp/l_mkl_11.3.1.150/./pset/32e/install: not found
The last line said "/tmp/l_mkl_11.3.1.150/./pset/32e/install" not found, but I can see the file there.
When I used the same command in a Ubuntu container, the above command ran fine.
I have no clue why ./install.sh failed in alpine Linux and succeed in Ubuntu.
Is there anyone giving some hints?
Thanks.
That 'install' file is a binary linked against
glibc
. But Alpine usesmusl
library instead, so it gives you the error 'not found' (yes, that error message is not very useful to diagnose...)However,
musl
provides some level of binary compatibility with binaries compiled for glibc, so you can try it with:apk add libc6-compat
Thanks for looking into this.
I installed
libc6-compat
, but got the same error.Then, I googled "Error relocating __strtod_internal: symbol not found".
The search results basically said that __strtod_internal is the glibc thing, and alpine-linux (or musl) does not have this.
It has caused problems for many other software, and there is no solution yet...