我曾经写过一篇关于C/C++软件编译的文章
还在烦恼没有root权限装不上软件嘛?
,在这篇文章中我总结了没有root权限下如何编译软件的一些基本概念,其实也很简单,就是缺什么库补充什么库,就是一种体力活而已。
为什么C语言写的工具安装会有点麻烦呢,其实主要问题就是
头文件
和
动态函数库.
C语言本身的标准库就那么几个,如果重新写一个项目肯定要造不知道多少个轮子,于是就有无数个人前人把轮子给造好,你只要调用这个工具就行了。
同时因为很多项目都是用的同一个轮子,大家就觉得没有必要把这个通用的轮子放在车子本身,只需要在用的时候把轮子按进去就好了,这就是
ld
干的活。
当我想通这一点之后,基本上我没事就编译编译程序,没事搞一个比较高版本的GCC压压惊。直到最近我遇到了
AUGUSTUS。
AUGUSTUS编译其实不是一件比较麻烦的事情,官方说了,你只需要用`
sudo apt-get install libboost-xxx
`把boost库安装,然后就用make就好了。但是问题在于我没有root权限呀,于是我就只能自己编一个boost-1.66。然后我把boost的lib加入到环境变量LIBRARY_PATH中和LDFLAGS,保证安装的时候会被用到。当然,机智的我还会修改他的Makefile手动声明这些boost的具体位置。但是,百密一疏,我遇到了下面这个问题
这个报错,让我觉得应该是boost编译的时候没有带上zlib,于是我就开始痛苦的搜索之旅,开始下载不同的boost版本,自己下载zlib想办法让boost编译的时候带上zlib,然后还是失败,我的的内心非常的崩溃。并且花了我大量的时间,身心俱疲。
另一方面,用bioconda安装augusts,我只需要输入`conda install -c bioconda augustus`,不到20分钟就搞定了。
综上,conda真的是没有root安装软件的神器,并且几乎不会出问题。顶多是动态函数库版本不对,我手动调整一下就就好了
生信软件的好帮手-bioconda
世上没有白走的路,每一步都算数
什么,你嫌bioconda下载速度太慢?