从 bashrc 自动查找最新版本的 anaconda

Finding latest version of anaconda automatically from bashrc

我正在尝试创建一个代码来获取最新版本的 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 脚本文件并安装它。

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

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

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

一些解释:

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

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

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

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