conda这个垃圾污染我电脑
2018-07-01 本文已影响229人
因地制宜的生信达人
使用不当导致环境变量被conda污染
我以前的教程都不改环境变量
我的软件通常是这样安装的:
## https://github.com/najoshi/sickle
cd ~/biosoft
mkdir sickle && cd sickle
wget https://codeload.github.com/najoshi/sickle/zip/master -O sickle.zip
unzip sickle.zip
cd sickle-master
make
~/biosoft/sickle/sickle-master/sickle -h
## Download and install sratoolkit
## http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software
## http://www.ncbi.nlm.nih.gov/books/NBK158900/
mkdir -p ~/biosoft
cd ~/biosoft
mkdir sratoolkit && cd sratoolkit
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-centos_linux64.tar.gz
tar zxvf sratoolkit.current-centos_linux64.tar.gz
~/biosoft/sratoolkit/sratoolkit.2.8.2-1-centos_linux64/bin/fastdump -h
cd ~/biosoft
mkdir SnpEff && cd SnpEff
## http://snpeff.sourceforge.net/
## http://snpeff.sourceforge.net/SnpSift.html
## http://snpeff.sourceforge.net/SnpEff_manual.html
wget http://sourceforge.net/projects/snpeff/files/snpEff_latest_core.zip
## java -jar snpEff.jar download GRCh37.75
## java -Xmx4G -jar snpEff.jar -i vcf -o vcf GRCh37.75 example.vcf > example_snpeff.vcf
unzip snpEff_latest_core.zip
这样我能完美的控制服务器里面的软件,反正都是在 ~/biosoft
目录
如果是常用软件需要添加环境变量
或者某些库文件需要添加到环境变量,我会:
mkdir -p ~/biosoft/myBin
echo 'export PATH=/home/jianmingzeng/biosoft/myBin/bin:$PATH' >>~/.bashrc
source ~/.bashrc
cd ~/biosoft
mkdir cmake && cd cmake
wget http://cmake.org/files/v3.3/cmake-3.3.2.tar.gz
tar xvfz cmake-3.3.2.tar.gz
cd cmake-3.3.2
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
cd ~/biosoft
mkdir zlib && cd zlib
wget https://zlib.net/zlib-1.2.11.tar.gz
# Extracting files from the downloaded package:
tar -xvzf zlib-1.2.11.tar.gz
# Now, enter the directory where the package is extracted.
cd zlib-1.2.11
# Configuring zlib Library:
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
这样会比较方便写教程
mkdir -p ~/biosoft/GATK/
cd ~/biosoft/GATK/
wget https://github.com/broadinstitute/gatk/releases/download/4.0.2.1/gatk-4.0.2.1.zip
unzip gatk-4.0.2.1.zip
~/biosoft/GATK/gatk-4.0.2.1/gatk --help
# for i in {1..22} X Y ;do echo "-I final_chr$i.vcf" '\';done
module load java/1.8.0_91
GATK=/home/jianmingzeng/biosoft/GATK/gatk-4.0.3.0/gatk
$GATK GatherVcfs \
-I final_chr1.vcf \
-O merge.vcf
而且读者也很容易理解,我是在使用哪个软件,是哪个版本。
但是最近为了图省事用了conda
conda这个东西,非常多人给我推荐过,即使是像我这样安装过上千款生物信息学软件的高手有时候也很痛苦各个软件的依赖关系,如果有省事的,我也比较乐意迁移我的习惯,但是,悲剧来了。
它在安装软件的时候需要C库就自己安装,需要R包就自己按照R,需要perl就自己安装,而且我把conda的默认路径添加到环境变量最新,最高权限,就把我默认的perl,r全部替换了。
比如下面的软件会报错:
BEGIN failed--compilation aborted at /home/jianmingzeng/biosoft/starFusion/STAR-Fusion/STAR-Fusion line 12.
Can't locate Set/IntervalTree.pm in @INC (you may need to install the Set::IntervalTree module) (@INC contains: /home/jianmingzeng/biosoft/starFusion/STAR-Fusion/PerlLib /home/jianmingzeng/miniconda2/lib/site_perl/5.26.0/x86_64-linux-thread-multi /home/jianmingzeng/miniconda2/lib/site_perl/5.26.0 /home/jianmingzeng/miniconda2/lib/5.26.0/x86_64-linux-thread-multi /home/jianmingzeng/miniconda2/lib/5.26.0 .) at /home/jianmingzeng/biosoft/starFusion/STAR-Fusion/STAR-Fusion line 12.
瞬间就明白问题所在,conda的某些过程,把我的环境变量污染了,我以前配置好的perl就这样被毁了,所以以前没问题的流程现在就开始报错了。
随口在生信技能树的VIP群里抱怨了一下,然后就有了今天这个教程!
conda请最好是通过source启动,一定要用conda安装不同功能的软件各个env,免得它污染环境变量,使用某些软件,就激活某些env。
leotao的建议
-
不要让conda在安装时,把path加到系统里去,要用的时候激活
-
激活后,用conda install -p /path/for/biotools/把 生信软件装到特定位置
而且这个位置的python版本最好和系统的一样
-
把这个 /path/for/biotools/ 加入到系统path
-
可能这样做后,反激活conda后生信软件也能用,同时不会污染环境