1. 尋找軟件所在的鏡像
用conda安裝軟件的標(biāo)準(zhǔn)語法格式為:
$ conda install -c <channel> <software>
其中-c這個(gè)參數(shù)很重要,通過它來指定軟件下載的鏡像位置
對于我們這些生物信息學(xué)的從業(yè)人員來說,最常用的channel(這里可以理解成鏡像)就是bioconda了,如果想要安裝生物信息學(xué),一般都會先到 bioconda官網(wǎng) 上找一找自己想要的軟件在不在bioconda的官方鏡像的列表中

如果軟件正好在bioconda官方鏡像里,萬事大吉,直接用下面的命令安裝就可以了
$ conda install -c bioconda bwa
如果你已經(jīng)將bioconda這個(gè)channel加到自己的默認(rèn)channel列表中,則不指定-c參數(shù)也可以
但是如果你要的軟件不在bioconda中怎么辦?
這時(shí)你可以通過執(zhí)行 anaconda search -t <software>來列出保存目標(biāo)軟件的所有官方鏡像
比如,如果你要安裝CNVnator(這是一個(gè)安裝過程神級坑的軟件),它就不在bioconda中,執(zhí)行
$ anaconda search -t cnvnator
得到的檢索結(jié)果如下:
Using binstar api site https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
Name | Version | Package Types | Platforms
------------------------- | ------ | --------------- | ---------------
pwwang/cnvnator | 0.3.3 | conda | linux-64
: a tool for CNV discovery and genotyping from depth-of-coverage by mapped reads
Found 1 packages
通過上面的檢索結(jié)果我們就知道目前只有唯一一個(gè)保存CNVnator的conda鏡像,為pwwang,這是就可以通過指定剛才找到的鏡像完成軟件的安裝了:
$ conda install -c pwwang cnvnator
2. conda中的Python與系統(tǒng)自帶的Python打架
在你安裝完conda(不論是Anaconda還是Miniconda),它會自帶安裝對應(yīng)的Python版本,而你的系統(tǒng)原先也安裝了Python,這時(shí)兩個(gè)來源兩個(gè)版本的Python會發(fā)生沖突,使得你新安裝的conda運(yùn)行報(bào)錯(cuò),比如簡單地運(yùn)行 conda list,會出現(xiàn)以下一長串的報(bào)錯(cuò)信息:
Error processing line 1 of /usr/local/lib/python2.7/site-packages/matplotlib-2.1.2-py2.7-nspkg.pth:
Fatal Python error: initsite: Failed to import the site module
Traceback (most recent call last):
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/site.py", line 168, in addpackage
exec(line)
File "<string>", line 1, in <module>
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/importlib/util.py", line 14, in <module>
from contextlib import contextmanager
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/contextlib.py", line 5, in <module>
from collections import deque
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/collections/__init__.py", line 27, in <module>
from reprlib import recursive_repr as _recursive_repr
File "/usr/local/lib/python2.7/site-packages/reprlib/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/site.py", line 73, in <module>
__boot()
File "/usr/local/lib/python2.7/site-packages/site.py", line 47, in __boot
addsitedir(item)
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/site.py", line 207, in addsitedir
addpackage(sitedir, name, known_paths)
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/site.py", line 178, in addpackage
import traceback
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/traceback.py", line 3, in <module>
import collections
File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/collections/__init__.py", line 27, in <module>
from reprlib import recursive_repr as _recursive_repr
File "/usr/local/lib/python2.7/site-packages/reprlib/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
仔細(xì)閱讀上面的報(bào)錯(cuò)信息,你會發(fā)現(xiàn)這就是系統(tǒng)的Python和conda里的Python沖突了(我喜歡稱這種現(xiàn)象為掐架、打架),這也是conda這個(gè)軟件安裝神器在給你帶來方便的同時(shí)帶來的副產(chǎn)品:它會污染你的環(huán)境變量!
遇到兩個(gè)Python環(huán)境沖突的情況,我一般的解決情況就是,關(guān)閉系統(tǒng)的Python,即將系統(tǒng)的Python路徑從我的環(huán)境變量中刪除
$ export PYTHONPATH=''
再執(zhí)行conda list就不會再報(bào)錯(cuò)了
3. 軟件太大老是下載中斷
在用conda安裝軟件的過程中還會經(jīng)常遇到的一個(gè)問題,就是:
我要下載一個(gè)軟件,conda會告訴我這個(gè)軟件底層依賴好幾個(gè)其他的軟件,需要將它們一起下載安裝,這個(gè)時(shí)候這一大堆軟件中可能有幾個(gè)體量很大,上百M(fèi)B,很容易下著下著網(wǎng)絡(luò)連接就中斷了,而conda有沒有斷點(diǎn)下載功能,一旦下載中斷,conda就會終止安裝進(jìn)程退出運(yùn)行
這個(gè)時(shí)候你可以嘗試通過 wget 把那幾個(gè)很大的軟件的安裝包下到本地,然后把它們移到conda的默認(rèn)安裝包下載路徑下,這樣再執(zhí)行conda install時(shí),就會跳過這幾個(gè)軟件的下載過程
conda的默認(rèn)安裝包下載保存路徑為:miniconda3/pkgs