首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按脚本安装dotnet的最新版本

按脚本安装dotnet的最新版本
EN

Ask Ubuntu用户
提问于 2020-06-16 08:47:22
回答 2查看 375关注 0票数 0

我正在编写一个安装程序脚本,需要安装dotnet。我想安装最新的版本,是3.1或在未来3.2或其他什么。现在我发现apt-get中有两个版本:

代码语言:javascript
复制
user@NUC7CJYH:~$ apt search dotnet-sdk-3
Sorting... Done
Full Text Search... Done
dotnet-sdk-3.0/now 3.0.103-1 amd64 [installed,local]
  Microsoft .NET Core SDK 3.0.103

dotnet-sdk-3.1/focal 3.1.301-1 amd64
  Microsoft .NET Core SDK 3.1.301

然后将结果存储在一个数组中:

代码语言:javascript
复制
user@NUC7CJYH:~$ d=($(apt search dotnet-sdk-3 2>/dev/null | grep dotnet | cut -c 1-14))&&echo ${d[@]}
dotnet-sdk-3.0 dotnet-sdk-3.1

现在,我不得不按版本对数组进行排序,并为最新版本获取索引。

我想知道这是否是正确的方法(排序数组、获取字符串并安装此版本),还是有人知道一个自动安装最新版本的命令?

向你问好,斯特凡

EN

回答 2

Ask Ubuntu用户

发布于 2020-06-16 10:50:58

为了保持软件包的最新更新,我认为sudo apt-get update sudo apt-get upgrade就足够了。我使用python查找命令返回的最高版本号。

代码语言:javascript
复制
import re, sys
from distutils.version import StrictVersion

def get_release(out):
    r = re.compile(f'.*([v]?[0-9]+\.[0-9]+\.[0-9]+)您注意到的命令不会为我返回相同的结果。我将文本粘贴到一个文件中$ cat dotnet.txt | python3 maxver.py 
3.1.301从git获得最高可用版本:$ git ls-remote --tags --refs https://github.com/jquery/jquery.git | python3 maxver.py
3.5.1把它放在一起下载最新版本。$ wget -nv https://github.com/jquery/jquery/archive/$(git ls-remote --tags --refs https://github.com/jquery/jquery.git | python3 maxver.py).zip
2020-06-16 10:49:01 URL:https://codeload.github.com/jquery/jquery/zip/3.5.1 [1520729/1520729] -> "3.5.1.zip" [1])
    maxrel = "0.0.0"
    for rel in out:
        if r.match(rel) is not None:
            rel= r.split(rel)[1]
            if StrictVersion(rel) > StrictVersion(maxrel): maxrel = rel

    return maxrel

if __name__ == '__main__':
    print(get_release(sys.stdin.read().split("\n")))

您注意到的命令不会为我返回相同的结果。我将文本粘贴到一个文件中

A3

从git获得最高可用版本:

A4

把它放在一起下载最新版本。

A5

票数 0
EN

Ask Ubuntu用户

发布于 2020-06-23 09:35:06

我终于像这样解决了它:

代码语言:javascript
复制
desc="install dotnet SDK"
# find latest dotnet release (in version tree 3.x)
dotnet_releases=($(apt search dotnet-sdk-3 2>/dev/null | grep dotnet | cut -c 1-14))
dotnet_sorted=($(printf '%s\n' "${dotnet_releases[@]}" | sort -r))
echo -e  "Latest dotnet version in the 3.x branch is: ${dotnet_sorted[0]} "

dpkg -s ${dotnet_sorted[0]}
if [ $? -eq 1 ]; then
    apt-get install -q -y "${dotnet_sorted[0]}" && success $desc || failed $desc
else 
    success $desc
fi

请忽略我的成功或失败的函数,它们只是回音字符串和做一些日志记录。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1250804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档