dotnet-install.sh没有在Ubuntu上添加dotnet命令



我不是Linux用户,所以这可能是一个简单的修复方法,但我尝试了以下方法:

  1. 首先,我使用命令curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin安装它,得到以下结果:

dotnet安装:已安装.NET Core SDK 2.1.403版本。dotnet安装:添加到当前进程PATH:
/home/<!username!>/.dotnet。注意:此更改仅在源脚本时可见。dotnet安装:安装成功完成。

  1. 我执行. ~/.profile以重新加载配置文件,但即使在这之后,当我运行CCD_ 4时,我也会得到以下错误:

未找到命令"dotnet",但可以使用以下命令安装:sudo快照安装dotnet sdk`

我希望脚本能够完成所有任务并使dotnet可用。

TLDR:curl | bash无法修改PATH,因此不会将dotnet添加到您的PATH中。您需要手动将dotnet添加到您的路径中。将export PATH="$PATH:/home/<!username!>/.dotnet"添加到您的~/.profile(或~/.bashrc或同等产品(,然后注销并重新登录。

长版本:

当您在shell中运行命令(例如bash(时,shell会尝试在环境变量PATH中列出的所有路径中找到一个名称为的可执行程序。CCD_ 15通常被设置为类似于CCD_。因此,当您键入像curl这样的命令时,您的shell会在/bin/usr/bin中查找名为curl的可执行文件。

您可以通过执行env | grep PATHecho $PATH来查看您的PATH是什么。

另一个重要信息是环境变量如何传播。其实很简单:

  1. 程序(或进程(只能修改自己的一组环境变量
  2. 进程创建的任何子进程都继承其环境变量

这意味着您执行的程序不能修改另一个随机程序的环境变量。shell实际上提供了一个特殊的命令export来设置自己的环境变量(它以后创建的任何子进程都将继承这些变量(。

注意步骤1结束时的输出。

注意:此更改只有在源脚本时才可见。

如果运行curl | bash,它将作为子进程运行bash。该子进程不能修改启动它的程序(调用curl | bash的shell(的环境变量。所以它不能修改PATH来添加dotnet的位置。它甚至(有益地(告诉你它不能。

在步骤2中,您将重新加载~/.profile。但它是否包含将dotnet添加到PATH的任何命令?我不这么认为。我知道dotnet-install.sh脚本历史上没有添加过它。你需要添加一行类似的代码

export PATH="$PATH:/home/<!username!>/.dotnet"

手动发送至您的~/.profile(或~/.bashrc,或等效文件(。

事实上,我会这样写,以使更改更容易移植到其他用户:

export PATH="$PATH:$HOME/.dotnet"

再次尝试运行此程序:

sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

最新更新