解密conda channels

channels是conda下载包的镜像网站,通过如下命令可以查看已有的channels
conda config --show channels
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - defaults
以清华的镜像为例

>https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

每个url对应的是不同操作系统平台的文件夹

在操作系统对应的目录下,是具体的安装包,后缀为tar.bz2

>https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/

在这些安装包中,有一个比较特殊repodata.json, 存储了该目录下包含的所有包的名称,依赖,md5等信息

部分内容如下

{
  "info": {
 "arch": "x86_64",
 "platform": "linux",
 "subdir": "linux-64"
  },
  "packages": {
 "_libgcc_mutex-0.1-free.tar.bz2": {
   "build": "free",
   "build_number": 0,
   "date": "2019-07-01",
   "depends": [],
   "md5": "f7d7639c8485ae4701aeb6add534a774",
   "name": "_libgcc_mutex",
   "size": 3129,
   "timestamp": 1562011672620,
   "track_features": "free_channel_libgcc",
   "version": "0.1"
 },
 "_license-1.1-py27_0.tar.bz2": {
   "build": "py27_0",
   "build_number": 0,
   "date": "2013-03-01",
   "depends": [
  "python 2.7*"
   ],

在安装包的时候,conda会依次遍历所有的channnels,通过repodata来查找该channel是否包含需要下载的packages,  一个基本的安装过程如下

conda create -n myenv numpy
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

environment location: /media/gsadmin/vd1/heguangliang/bcbio3/anaconda/envs/myenv

added / updated specs:
 - numpy

The following packages will be downloaded:

package | build
 ---------------------------|-----------------
 blas-1.0 | mkl 6 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
 numpy-1.13.1   | py36_0 7.2 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
 ------------------------------------------------------------
 Total: 7.2 MB

The following NEW packages will be INSTALLED:

blas anaconda/pkgs/free/linux-64::blas-1.0-mkl
  certifi anaconda/pkgs/free/linux-64::certifi-2016.2.28-py36_0
  mkl anaconda/pkgs/free/linux-64::mkl-2017.0.3-0
  numpy anaconda/pkgs/free/linux-64::numpy-1.13.1-py36_0
  openssl anaconda/pkgs/free/linux-64::openssl-1.0.2l-0
  pip anaconda/pkgs/free/linux-64::pip-9.0.1-py36_1
  python anaconda/pkgs/free/linux-64::python-3.6.2-0
  readline anaconda/pkgs/free/linux-64::readline-6.2-2
  setuptools anaconda/pkgs/free/linux-64::setuptools-36.4.0-py36_1
  sqlite anaconda/pkgs/free/linux-64::sqlite-3.13.0-0
  tk anaconda/pkgs/free/linux-64::tk-8.5.18-0
  wheel anaconda/pkgs/free/linux-64::wheel-0.29.0-py36_0
  xz anaconda/pkgs/free/linux-64::xz-5.2.3-0
  zlib anaconda/pkgs/free/linux-64::zlib-1.2.11-0

Proceed ([y]/n)?

Downloading and Extracting Packages
numpy-1.13.1   | 7.2 MB | ################################################################################################################################# | 100%
blas-1.0 | 6 KB | ################################################################################################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate myenv
#
# To deactivate an active environment, use
#
# $ conda deactivate

对于某些不能用的镜像,会在下载repodata.json时失效,出现如下所示的报错

conda create -n myenv ggtree
Collecting package metadata (current_repodata.json): failed

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/linux-64/current_repodata.json>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
ConnectionError(ReadTimeoutError("HTTPSConnectionPool(host='mirrors.tuna.tsinghua.edu.cn', port=443): Read timed out.",),)

此时我们就需要确认下该镜像是失效了,还是因为网络原因,如果失效的话,就考虑删除这个镜像。

当网络波动时,会出现下载失败的情况,报错如下

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/mkl-2020.2-256.conda>
Elapsed: -

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

此时镜像本身是没问题的,就是下载速度慢,导致下载失败,只需要多试几次即可。

对于channels而言,我们需要学会新增和删除,对应的操作如下

1. 删除

conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

2. 增加

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

config子命令的本质是在操作.condarc这个配置文件,所以我们直接在这个配置文件里进行修改也是可以的,condarc的内容示例如下

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - defaults
ssl_verify: false
show_channel_urls: true

修改镜像的使用场景有以下两种,第一种是使用国内镜像,提高下载速度,第二种是为了下载特定镜像才包含的packages。镜像的修改非常简单,关键是要理解镜像的本质。

·end·
(0)

相关推荐

  • 从iso文件到可以随时移植的虚拟机vdi镜像 (Ubuntu20版本和R语言4.0版本)

    [toc] 我从ubuntu官网下载了ubuntu20.04版本的系统iso文件,我是想将这个iso镜像按照自己的需求进行配置,最后形成一个可以随时将这个文件移植到任何电脑的一个系统. 镜像下载地址: ...

  • pytorch慢到无法安装,该怎么办?

    最近几天,后台几个小伙伴问我,无论pip还是conda安装pytorch都太慢了,都是安装官方文档去做的,就是超时装不上,无法开展下一步,卡脖子的感觉太不好受. 这些小伙伴按照pytorch官档提示, ...

  • conda国内源

    清华源.中科大源大部分时间能用,但没事也会被封.最近发现的北外源挺好用.推荐使用: 北外镜像(推荐): conda config --add channels https://mirrors.bfsu ...

  • conda命令那点事

    清华 镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda con ...

  • 单细胞基因组拷贝数变异流程

    主要是上游流程,读文章拿到数据后走标准的比对流程,计算覆盖度测序深度,文章是(2020年4月份)第16周(总第112周 )- 单细胞基因组测序表明TNBC的CNV发展是爆发式的  http://www ...

  • 宏基因组分析专题(2):生物信息学软件的应用市场-Conda的安装流程

    本文由微科盟phage根据实践经验而整理,希望对大家有帮助. 微科盟原创微文,欢迎转发转载. 写在前面 什么是Conda? Conda是一款可以帮助我们轻松安装几乎所有的生物信息学软件的工具,说Con ...

  • R语言GEO数据处理(一)

    # 1. GEO数据下载 ----------------------------------------------------------------- rm(list=ls())   #清空环境 ...

  • Anaconda切换python版本

    文章目录 anaconda navigator使用 命令行创建 踩坑点 CondaHTTPError: HTTP 000 CONNECTION FAILED for url conda activat ...

  • Anaconda出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url的解决方法

    使用anaconda创建一个新的环境,执行"conda create -n scrapyEnv python=3.6",结果出现了CondaHTTPError,下面我们就一起来了解 ...

  • 国内可用Anaconda 源的镜像站及换国内源方法

    目前清华开源镜像站和中科大开源镜像站均已发出公告表示已取得Anaconda授权,不久就将重新上线Anaconda软件源(见文末图).那目前我知道的国内可用Anaconda源的镜像站就有3个,分别是清华 ...

  • (5条消息) anaconda 在内网中代理配置

    在 C:\Users\<username>\ 找到.condarc文件 修改内容为: channels: - defaults # Show channel URLs when displ ...

  • 居然还可以这样欺骗软件

    我们的马拉松生物信息学入门课程进入到Linux实战环节,给大家都提供了一个云服务器账号,这样全部的学员都可以登录到我们的服务器里面方便沟通和交流.授课进行到conda安装和管理生物信息学软件,首先在自 ...