首页 > 其他分享 >完美解决dotnet-install.sh下载出错

完美解决dotnet-install.sh下载出错

时间:2023-01-19 18:23:10浏览次数:36  
标签:download sh link install dotnet 链接 下载

问题现象

Linux正常通过dotnet-install.sh安装dotnet(本篇以安装dotnet-runtime为例)时,会显示以下信息:

dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
dotnet-install: - The SDK needs to be installed without user interaction and without admin rights.
dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs.
dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.

dotnet-install: Attempting to download using aka.ms link https://dotnetcli.azureedge.net/dotnet/Runtime/6.0.13/dotnet-runtime-6.0.13-linux-x64.tar.gz

如果显示:

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
dotnet-install: Download attempt #1 has failed: 200 Unable to download https://dotnetcli.azureedge.net/dotnet/Runtime/6.0.13/dotnet-runtime-6.0.13-linux-x64.tar.gz.

说明服务器下载指定文件失败,毕竟是国外源,再加上伟大的长城,也就见怪不怪了。

尝试在本机挂魔法下载,如果可以下载,说明只是服务器单方面无法连接

解决办法

给服务器挂代理肯定是可行的,但是操作比较繁琐,故不推荐

既然dotnet-install.sh可以看到源码,那么直接在源码里指定下载链接岂不美哉?

  1. 在脚本中搜索语句Attempting to download using,跳转到1434行(可能会不太一样,但原理相同),显示如下:
say "Attempting to download using $link_type link $download_link"

这是控制台输出固定的语句,简单分析这句话,包含了$link_type$download_link两个变量,其中:

  • $link_type:使用的下载源,不必关注
  • $download_link:使用的下载链接,原来就是这个链接导致下载失败啊

既然找到了存储下载链接的变量,那么就替换为能正常访问的链接。

从该行开始向上找,找离得最近的变量$download_link赋值语句,就在不远的1429行,显示如下:

download_link="${download_links[$link_index]}"

看起来很复杂,等号后的内容又嵌套了其他变量。

其实只用把引号内替换为能正常访问的下载链接就行了。

我为了方便,就把原本链接下载得到的文件(dotnet-runtime-6.0.13-linux-x64.tar.gz)上传到了蓝奏云,从蓝奏云解析到的下载链接为https://i41.lanzoug.com/0119150098126364bb/2023/01/19/758b5c9030a455df9d69df84075f1b01.gz?st=ZrY_80DQAuRaT-pnxI8kTQ&e=1674117127&b=BTMMYwl9B2xVZVNxUSxTJQkpWmgDdlE_bBjgBaQIoV2MAfFpqVHoFMVQyVC8EOFQ5U2hddAR9Bi0CKQ02UmEDLwUjDG0JewcsVWdTfw_c_c&fi=98126364&pid=223-90-112-230&up=2&mp=0&co=1

替换后原语句就变成了:

download_link="https://i41.lanzoug.com/0119150098126364bb/2023/01/19/758b5c9030a455df9d69df84075f1b01.gz?st=ZrY_80DQAuRaT-pnxI8kTQ&e=1674117127&b=BTMMYwl9B2xVZVNxUSxTJQkpWmgDdlE_bBjgBaQIoV2MAfFpqVHoFMVQyVC8EOFQ5U2hddAR9Bi0CKQ02UmEDLwUjDG0JewcsVWdTfw_c_c&fi=98126364&pid=223-90-112-230&up=2&mp=0&co=1"

保存后退出,然后重新运行脚本,如果显示(和上述链接一致):

dotnet-install: Attempting to download using aka.ms link https://i41.lanzoug.com/0119150098126364bb/2023/01/19/758b5c9030a455df9d69df84075f1b01.gz?st=ZrY_80DQAuRaT-pnxI8kTQ&e=1674117127&b=BTMMYwl9B2xVZVNxUSxTJQkpWmgDdlE_bBjgBaQIoV2MAfFpqVHoFMVQyVC8EOFQ5U2hddAR9Bi0CKQ02UmEDLwUjDG0JewcsVWdTfw_c_c&fi=98126364&pid=223-90-112-230&up=2&mp=0&co=1

说明脚本成功的用指定的链接下载了,后续安装也可以正常进行了。

标签:download,sh,link,install,dotnet,链接,下载
From: https://www.cnblogs.com/night-ray/p/17061921.html

相关文章

  • JMeter BeanShell 学习
    JMeterBeanShell学习Beanshell分为:JMeter有如下BeanShell组件:定时器:BeanShellTimer前置处理器:BeanShellPreProcessor采样器:BeanShellSampler后置处理器......
  • git stash pop 冲突,git stash list 中的记录不会自动删除的解决方法
    在使用gitstash代码时,经常会碰到有冲突的情况,一旦出现冲突的话,系统会认为你的stash没有结束。导致的结果是gitstashlist中的列表依然存在,实际上代码已经pop出来了。处......
  • 移动端 ios pageShow 事件和 android visibilitychange 事件; A页面跳转到B页面操作
    1.pageshow事件当浏览器因导航而显示窗口的文档时,pageshow事件将被触发。这包括:初始加载页面从同一窗口或选项卡中的另一个页面导航到该页面在移动操作系统上恢复......
  • Unity PBR Shader之衣服渲染之丝袜,湿身
    一,丝袜渲染,其实相当简单了,在原有丝绸shader基础上增加半透明即可,效果图如下:  二,湿身,首先要模拟身体上有水流动的效果,可以用noise贴图配合ui动画经过一番处理生成雨水m......
  • centos7.9离线安装mysql5.7.40(本文使用mysql_install_db安装方法)
    centos7.9离线安装mysql5.7.40(本文使用mysql_install_db安装方法)一、卸载CentOS7系统自带mariadb#查看系统自带的Mariadb[root@NIWAY-190~]#rpm-qa|grepmariadbmari......
  • Xshell 使用自定义用户密钥登录, 类似 ssh-keygen -t rsa
    1.菜单栏工具-用户密钥-生成2.按提示生成后,点击属性,在__常规__选项卡旁边有公钥按钮。使用key登录后还需要提供用户名。......
  • Git使用SSH公钥
    生成SSH公钥你可以按如下命令来生成sshkey:ssh-keygen-trsa-C"itldg"其中的itldg为sshkey的名称Generatingpublic/privatersakeypair.Enterfilei......
  • Nginx日志按天自动切割的shell脚本
    简介默认情况Nginx会把所有访问日志生成到一个指定的访问日志文件access.log里,但这样一来,时间长了就会导致日志内容很多,不利于分析日志和处理,因此,有必要对Nginx按天或按......
  • 若依 excel 导出多个sheet
    同事操作excel用了若依的工具类 但是这个工具类里面一个工作簿里面只能有一个sheet 不好用稍微改了一下,加几个方法变成支持多个sheet的 主要就是里面有个sheet成......
  • bash命令速查表
    获取自:BashCheatsheet###############################################################################BASHCHEATSHEET(中文速查表)-byskywind(createdon......