conda安装bowtie2的报错:undefined symbol

使用conda安装bowtie2遇到undefined symbol报错

/public/home/xuzhougeng/miniconda3/envs/bsseq/bin/bowtie2-build-s: symbol lookup error: /public/home/xuzhougeng/miniconda3/envs/bsseq/bin/bowtie2-build-s/public/home/xuzhougeng/miniconda3/envs/bsseq/bin/bowtie2-build-s: undefined symbol: _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv
: symbol lookup error: /public/home/xuzhougeng/miniconda3/envs/bsseq/bin/bowtie2-build-s: undefined symbol: _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv

直接复制报错信息进行谷歌检索,没有找到答案。

复制_ZN3tbb10interface78internal15task_arena_base19internal_initializeEv进行检索,定位到这个symbol由 tbb定义

tbb

使用ldd分析bowtie2-build-s的动态链接,发现libtbb的静态链接是对应的是系统的libtbb

ldd

切换到anaconda的动态库目录中,发现没有libtbb.so.2

image.png

因此最容易想到的解决方案就是

ln -s libtbb.so.12 libtbb.so.2

但是依然会报错。因为出现undefined symbol的根本原因是,tbb有bioconda, main, conda-forge三个版本,conda-forge是最新的结果,而我安装bowtie2用的就是最新的conda-forge, 而非bowtie2构建时候用的bioconda版本。如果我系统没有自带tbb,那么报错就是 symbol not found, 而非undefined symbol。因此真正的解决方法是卸载tbb和bowtie2,重新安装(确保bioconda是最高优先级)

conda install -c bioconda bowtie2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容