bash - 从 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 脚本文件并安装它。
解决方案
您可以使用它来获取最新版本:
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"
我确信获取最新版本可以提高效率,但这对于您的用例来说应该足够了。
推荐阅读
- bash - 根据 SSID 更改 MacOS 位置 - 在更改之前检查当前位置
- amazon-web-services - AWS SAM 访问多个存储桶
- javascript - 使用 Bootstrap 显示/隐藏嵌套动态表的行
- ruby-on-rails - Rails 4.2 应用程序在虚拟专用服务器上的 2-3 小时空闲时间后没有响应
- json - 如何在 Dart 中将嵌套的 Json 传递到我的 http API
- java - Netbeans 11.3 Java - JPanel 设计选项卡被冻结,只有文字“正在加载...”
- javascript - SourceBuffer.appendBuffer() 在客户端加入实时流时失败
- node.js - 使用 Nodejs 进行内容翻译
- android - Firebase 数据库 - Firebase 数据库运行循环 (19.3.0) 中未捕获的异常
- python - 估计器管道的参数 n_neighbors 无效