Open init-js opened 6 years ago
I've installed angsd=0.910 and htslib from the bioconda channel.
Once installed the angsd binary from the bioconda channel depends on a missing libhts.so file.
Here's a minimal environment file reproducing the issue:
channels: - bioconda dependencies: - angsd=0.910 - htslib
Here's a series of steps reproducing the bug:
$ conda env create -f environment.yaml -n badlib python=3.6.4 Fetching package metadata ............. Solving package specifications: . libgcc-ng-7.2. 100% |########| Time: 0:00:00 37.98 MB/s libstdcxx-ng-7 100% |########| Time: 0:00:00 34.46 MB/s xz-5.2.3-h55aa 100% |########| Time: 0:00:00 21.20 MB/s htslib-1.7-0.t 100% |########| Time: 0:00:01 836.83 kB/s angsd-0.910-0. 100% |########| Time: 0:00:00 945.27 kB/s # ... $ source activate badlib (badlib) $ angsd angsd: error while loading shared libraries: libhts.so.1: cannot open shared object file: No such file or directory
A little investigation shows the missing symlink:
(badlib) $ ldd `which angsd` linux-vdso.so.1 => (0x00007fff281d4000) libz.so.1 => /home/user/miniconda2/envs/badlib/bin/../lib/libz.so.1 (0x00007f5c7339c000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5c73180000) libhts.so.1 => not found libstdc++.so.6 => /home/user/miniconda2/envs/badlib/bin/../lib/libstdc++.so.6 (0x00007f5c72e46000) libm.so.6 => /lib64/libm.so.6 (0x00007f5c72b44000) libgcc_s.so.1 => /home/user/miniconda2/envs/badlib/bin/../lib/libgcc_s.so.1 (0x00007f5c72932000) libc.so.6 => /lib64/libc.so.6 (0x00007f5c7256f000) /lib64/ld-linux-x86-64.so.2 (0x00007f5c735b3000) (badlib) $ (cd ~/miniconda2/envs/badlib/lib/ && ls -l libhts* ) -rw-rw-r-- 2 user user 1180562 Jan 27 04:59 libhts.a lrwxrwxrwx 1 user user 13 Mar 15 14:16 libhts.so -> libhts.so.1.7 -rw-rw-r-- 2 user user 917336 Jan 27 04:59 libhts.so.1.7 lrwxrwxrwx 1 user user 13 Mar 15 14:16 libhts.so.2 -> libhts.so.1.7
The library link libhts.so.1 is missing.
libhts.so.1
The workaround is to do ln -s libhts.so.1.7 ~/miniconda2/envs/badlib/lib/libhts.so.1, which fixes the environment.
ln -s libhts.so.1.7 ~/miniconda2/envs/badlib/lib/libhts.so.1
i just updated angsd to 0.921, and it is using libhts.so.2 now.
libhts.so.2
I've installed angsd=0.910 and htslib from the bioconda channel.
Once installed the angsd binary from the bioconda channel depends on a missing libhts.so file.
Here's a minimal environment file reproducing the issue:
Here's a series of steps reproducing the bug:
A little investigation shows the missing symlink:
The library link
libhts.so.1
is missing.The workaround is to do
ln -s libhts.so.1.7 ~/miniconda2/envs/badlib/lib/libhts.so.1
, which fixes the environment.