爱收集资源网

Linux学习:新的软件安装方法

网络 2023-07-01 08:01

2017年生信宝典发布了Linux学习 - 又双叒叕一个软件安装方式,现在按照使用经验做一些更新,主要是降低了conda环境的复制、导入和导入功能。最开始是为了培训时,学员更方便搭建流程引入的,现在分享下来,方便更多人使用。

Conda包管理系统

Conda是一种通用包管理系统,旨在建立和管理任何语言的任何类型的软件。通常与Anaconda (集成了更多软件包,#download)和Miniconda(只包含基本功能软件包, )一起分发。

最初接触到Anaconda是用于Python包的安装。Anaconda涵盖了100多个常用的Python包,一键式安装,解决Python包安装的苦闷。但后来发觉,其还有更多的功能,尤其是其降低了bioconda ()频道后,生物信息剖析的1500多个软件都可以一键安装了,免去了编译时间浪费和解决库文件安装的问题。对于时常编译软件的人,这一点还不够有吸引力。最吸引我的是它的工作环境概念,可以简单的配置不同Python版本的环境、不同Python包的环境、不同R环境和R包的环境,对于生物信息软件纷扰的应用和频繁的更新提供了很大的便利。

Conda安装和配置

在里面给出的链接下载Anaconda或Conda对应版本的分分包以后,安装就是运行下边的命令,根据提示一步步操作,主要是更改安装路径 (如果是根用户,可以安装到/anaconda下,其它任意目录都可以,但路径短还是有用处的;普通用户安装到自己有权限的目录下)

bash Miniconda2-latest-Linux-x86_64.sh

安装完成以后,记得把安装路径下的bin文件夹加入到环境变量中。环境变量的解释和使用见 和文章“PATH和path,傻傻分不清”

Conda基本使用

在Conda安装配置好以后,就可以使用了。

conda list # 列出安装的软件包
conda search  # 搜索需要安装的软件包,获取其完成名字

以搜索numpy为例:

conda search numpy  # * 表示对于版本的包已安装

Fetching package metadata ...............
numpy                        1.7.2           py27_blas_openblas_201  conda-forge     [blas_openblas]
                             1.7.2           py27_blas_openblas_202  conda-forge     [blas_openblas]
                             1.12.0                   py36_0  defaults
                             1.12.0             py36_nomkl_0  defaults        [nomkl]
                          *  1.12.1                   py27_0  defaults
                             1.12.1             py27_nomkl_0  defaults        [nomkl]
                             1.13.1                   py36_0  defaults
                             1.13.1             py36_nomkl_0  defaults        [nomkl]
numpy-indexed                0.3.2                    py27_0  conda-forge
                             1.0.47                   py35_0  conda-forge
                             1.0.47                   py36_0  conda-forge
numpy_groupies               0.9.6                    py27_0  conda-forge
                             0.9.6                    py35_0  conda-forge
                             0.9.6                    py36_0  conda-forge
numpy_sugar                  1.0.6                    py27_0  conda-forge
                             1.0.6                    py34_0  conda-forge
numpydoc                     0.6.0                    py27_0  conda-forge
                             0.6.0                    py34_0  conda-forge
xnumpy                       0.0.1                    py27_0  conda-forge

安装包

conda install  # 安装软件包
conda install numpy=1.7.2 # 安装特定版本的软件包
conda remove  # 移除软件包

安装R

# 具体见下面
conda install -c r r-essentials # 安装R,及80多个常用的数据分析包, 包括idplyr, shiny, ggplot2, tidyr, caret 和 nnet
# 安装单个包
# conda install -c https://conda.binstar.org/bokeh ggplot

获取帮助信息

conda -h # 查看conda可用的命令
conda install -h #查看install子命令的帮助

只是那些命令就可以省去不少安装的麻烦了,但是假如软件没搜索到呢?

Conda的channel

Conda默认的源访问速率有些慢,可以降低国外的源 ();另外还可以降低几个源,以便于安装更多的软件,尤其是bioconda安装生信类工具。conda-forge通道是Conda社区维护的包含好多不在默认通道上面的通用型软件。r通道是向后兼容性通道,尤其是使用R3.3.1版本时会用到。后加的通道优先级更高,因此通常用下边列举的次序添加。

conda config --add channels conda-forge # Lowest priority
conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 清华通道, 最高优先级
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

vs2015帮助文档安装到什么地方_如何导出环境变量_导出conda环境

# 显示已有的通道
conda config --get channels

conda通道的配置文件通常在~/.condarc上面,内容如下。全局控制conda的安装在conda_path/.condarc,具体操作见。

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/conda
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # Anocanda清华镜像
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - bioconda
  - defaults
  - r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - conda-forge

创建不同的软件运行环境

这是Conda最有特色的地方,可以通过创建不同的环境,同时运行不同软件的多个版本。

新创建的软件环境的目录为anaconda_path/envs/enrironment_name,具体见下边的3个事例。

使用官方的推荐命令安装时出了问题,py3.5的包装到了py2.7环境下。解决办法,新建一个py2.7的环境,然后安装。

# 新建一个环境,命名为phylo,指定其内安装的python版本为2.7
conda create -n phylo python=2.7
# 在phylo环境中安装 ete3
# ete3存在于2个通道中,官方推荐使用自己的通道,但没有成功
# -n 指定安装环境  -c 指定下载通道
# conda install -n phylo -c etetoolkit ete3 ete3_external_apps
# bioconda通道里面也有ete3, 下面的安装未指定具体通道,将在前面设定的几个通道里面按先后顺序查找安装
conda install -n phylo ete3 ete3_external_apps
# 默认安装到了anaconda_path下面的envs/phylo目录下(在屏幕输出也会有显示)
# 这个目录下存在bin文件夹,一般使用全路径就可以调用,如下
# anaconda_path/envs/phylo/bin/ete3 -h # 但有时会因为依赖关系而失败
# 所以激活本次安装环境是比较不容易出问题的使用方式
source activate phylo
# 在新环境里面执行命令操作
ete3 -h
# 其它操作
# 退出新环境
source deactivate phylo

# Create a new conda environment called r,并且在里面安装anaconda
conda create -n r anaconda
# Switch to r environment
source activate r
# 在新环境里面安装R Installs R
conda install -c r r
# Install R kernel for IPython notebook
conda install -c r r-irkernel
# Install ggplot
conda install -c https://conda.binstar.org/bokeh ggplot
# 最后退出新环境
source deactivate r

# 环境名字为 aligners
# 环境中安装 bwa bowtie hisat star
conda create -n aligners bwa bowtie hisat star
# 如果还想继续安装
conda install -n aligners hisat2
# 启动新环境
source activate aligners
star -h
source deactivate aligners

如果环境不需要了,或出了错,则可以移除。比如须要移除phylo环境,执行conda remove -n phylo --all。

有的时侯会出现装一个新包,装衣着着就把当前环境搞装崩了的情况,所以备份一个环境还是必要的,conda create -n python35copy --clone python35

做培训时须要给出席培训的老师提供配置环境的脚本,之前都是提供一个Bash文件,更简单的方法是可以导入环境,自己配置时再导出就好了。

# 假设我们有一个环境叫 ehbio,可以导出为一个yml文件
conda env export --file ehbio_env.yml --name ehbio
# 然后换一台电脑,就可以完全重现这个环境了
conda env create -f ehbio_env.yml

Conda配置R

在添加了不同的源以后,有些源更新快,有些更新慢,经常会遇到版本不一的问题。而且软件版本的优先级,低于源的优先级。保险期间,先做下搜索,获得合适的版本号,然后再选择安装。

导出conda环境_如何导出环境变量_vs2015帮助文档安装到什么地方

conda search r-essentials
r-essentials                 1.0                    r3.2.1_0  r
                             1.0                   r3.2.1_0a  r
                             1.1                    r3.2.1_0  r
                             1.1                    r3.2.2_0  r
                             1.1                   r3.2.1_0a  r
                             1.1                   r3.2.2_0a  r
                             1.1                    r3.2.2_1  r
                             1.1                   r3.2.2_1a  r
                             1.4                           0  r
                             1.4.1                  r3.3.1_0  r
                             1.4.2                         0  r
                             1.4.2                  r3.3.1_0  r
                             1.4.3                  r3.3.1_0  r
                             1.5.0                         0  r
                             1.5.1                         0  r
                             1.5.2                  r3.3.2_0  r
                             1.5.2                  r3.4.1_0  r
                             1.6.0                  r3.4.1_0  r
                             1.0                    r3.2.1_0  defaults
                             1.0                   r3.2.1_0a  defaults
                             1.1                    r3.2.1_0  defaults
                             1.1                    r3.2.2_0  defaults
                             1.1                   r3.2.1_0a  defaults
                             1.1                   r3.2.2_0a  defaults
                             1.1                    r3.2.2_1  defaults
                             1.1                   r3.2.2_1a  defaults
                             1.4                           0  defaults
                             1.4.1                  r3.3.1_0  defaults
                             1.4.2                         0  defaults
                             1.4.2                  r3.3.1_0  defaults
                             1.4.3                  r3.3.1_0  defaults
                             1.5.0                         0  defaults
                             1.5.1                         0  defaults
                             1.5.2                  r3.3.2_0  defaults
                             1.5.2                  r3.4.1_0  defaults
                             1.6.0                  r3.4.1_0  defaults
                             1.5.2                  r3.3.2_0  conda-forge
                             1.5.2                  r3.3.2_0  https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

从里面可以看见北大的源版本同步于conda-forge, 都比较老,还是指定r通道安装。

conda install -c r -n r r-essentials=1.6.0

R会安装于conda_path/envs/r/bin中,软链到坐落环境变量的目录中即可正常使用。

Conda环境简化运行

为了便捷不同环境上面程序的运行,我写了一个shell脚本 (conda_env_run.sh),具体运行如下:

# -c: 表示实际需要运行的命令
# -e: 表示需要启动的软件环境,也就是上面conda create建立的环境
# -b:一般不需要指定,如果conda没在环境变量中需要给出conda的安装路径
conda_env_run.sh -c  'ete3 -h mod' -e phylo
conda_env_run.sh -c  'bwa mem -h' -e aligner -b "/usr/local/anaconda2/bin"

conda_env_run.sh内容如下

#!/bin/bash#set -xusage()
{
cat < parameter.${txtbld}OPTIONS${txtrst}:
    -c    Full command to be run ${bldred}[NECESSARY]${txtrst}
    -e    Environment name${bldred}[NECESSARY]${txtrst}
    -b    Conda path${bldred}[NECESSARY]${txtrst}EOF
}
command_cmd=''environment=''conda_path=''while getopts "hc:e:b:" OPTIONdo
    case $OPTION in
        h)            echo "Help mesage"
            usage            exit 1
            ;;
        c)
            command_cmd=$OPTARG
            ;;
        e)
            environment=$OPTARG
            ;;
        b)
            conda_path=$OPTARG
            ;;
        ?)
            usage            echo "Unknown parameters"
            exit 1
            ;;    esacdoneif [ -z ${environment} ]; then
    echo 1>&2 "Please give command and environment."
    usage    exit 1fiif ! [ -z ${conda_path} ]; then
    export PATH=${conda_path}:${PATH}fisource activate ${environment}${command_cmd}source deactivate ${environment}

Reference

vs2015帮助文档安装
上一篇:4G副卡使用方法及设置 下一篇:没有了
相关文章