首页 > 解决方案 > 从 bashrc 自动查找最新版本的 anaconda

问题描述

我正在尝试创建一个代码来获取最新版本的 anaconda 并安装它。目前我们可以这样做来安装最新版本:

mkdir tmp
cd tmp
wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
bash Anaconda3-2020.11-Linux-x86_64.sh

我希望脚本更通用,这样代码会自动找到最新版本的 anaconda,下载 shell 脚本文件并安装它。

标签: bashshellanaconda

解决方案


您可以使用它来获取最新版本:

wget https://repo.anaconda.com/archive/ -q -O- |\ 
   grep 'Anaconda3'| \ 
   sed -n 's|.*>Anaconda3-\([0-9]\{4\}\.[0-9]\{2\}\)-.*|\1|p'
   uniq |\ 
   sort -r |\ 
   head -1 

此解决方案适用于那些使用年份格式的版本(例如 2020-07),但由于最新版本可能是应该没问题的格式。

一些解释:

  • wget获取存档页面的内容,它为我们提供了包含所有下载 URL 的 HTML 内容。-q使输出安静,-O-打印到标准输出。或者,您可以使用curl -s相同的效果。
  • grep 'Anaconda3'给我们包含 Anaconda 的行,其中包含下载链接。
  • 用于sed从下载链接中选择版本字符串,例如2020-11. 这为您提供了所有版本的列表(格式为 YYYY-MM)。
  • 对该列表进行排序并选择第一个条目,即最新版本。

在脚本的其余部分使用该版本,您就完成了。一个完整的解决方案是:

version=$(wget https://repo.anaconda.com/archive/ -q -O- |\
   grep 'Anaconda3'|\
   sed -n 's|.*>Anaconda3-\([0-9]\{4\}\.[0-9]\{2\}\)-.*|\1|p' |\
   uniq |\
   sort -r |\
   head -1)
wget "https://repo.anaconda.com/archive/Anaconda3-$version-Linux-x86_64.sh"

我确信获取最新版本可以提高效率,但这对于您的用例来说应该足够了。


推荐阅读