我不是Linux用户,所以这可能是一个简单的修复方法,但我尝试了以下方法:
- 首先,我使用命令
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安装:安装成功完成。
- 我执行
. ~/.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 PATH
或echo $PATH
来查看您的PATH
是什么。
另一个重要信息是环境变量如何传播。其实很简单:
- 程序(或进程(只能修改自己的一组环境变量
- 进程创建的任何子进程都继承其环境变量
这意味着您执行的程序不能修改另一个随机程序的环境变量。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