我不是Linux用户,因此这可能很容易解决,但是我尝试了以下操作:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin
安装它,得到以下结果:dotnet-install:已安装.NET Core SDK版本2.1.403。 dotnet-install:添加到当前进程PATH:
/home/<!username!>/.dotnet
。注意:此更改仅在采购脚本时可见。 dotnet-install:安装成功完成。
. ~/.profile
重新加载个人资料,
但是即使在此之后,当我运行dotnet
时,也会出现以下错误:找不到命令'dotnet',但可以使用以下命令安装: sudo snap install dotnet-sdk`
我希望脚本能够完成所有工作并使dotnet
可用。
答案 0 :(得分:3)
TLDR:curl | bash
无法修改PATH
,因此不会将dotnet
添加到您的PATH
中。您需要手动将dotnet
添加到路径。将export PATH="$PATH:/home/<!username!>/.dotnet"
添加到您的~/.profile
(或~/.bashrc
或同等版本)中,然后注销并重新登录。
长版:
当您在外壳程序中运行命令(例如bash)时,外壳程序会尝试在环境变量PATH
中列出的所有路径中找到具有名称的可执行文件。 PATH
通常设置为/bin:/usr/bin
之类的东西。因此,当您键入诸如curl
之类的命令时,您的外壳会在/bin
和/usr/bin
中查找名为curl
的可执行文件。
您可以通过执行PATH
或env | grep PATH
来查看echo $PATH
是什么。
另一个重要的信息是环境变量如何传播。实际上很简单:
这意味着您执行的程序无法修改另一个随机程序的环境变量。该外壳实际上提供了一个特殊的命令export
来设置自己的环境变量(以后创建的任何子进程都将继承它们)。
请注意步骤1结束时的输出。
注意:此更改仅在采购脚本时可见。
如果您运行curl | bash
,它将作为子进程运行bash
。该子进程无法修改启动它的程序(调用curl | bash
的外壳)的环境变量。因此,它无法修改PATH
来向其中添加dotnet
的位置。它甚至(有帮助)告诉您它不能。
在步骤2中,您正在重新加载~/.profile
。但是它是否包含将dotnet
添加到PATH
的命令?我不这么认为。我知道dotnet-install.sh脚本历史上没有添加它。您需要添加一行
export PATH="$PATH:/home/<!username!>/.dotnet"
手动发送到您的~/.profile
(或~/.bashrc
或等效帐户)。
实际上,我将其编写如下,以使更改更易于其他用户使用:
export PATH="$PATH:$HOME/.dotnet"
答案 1 :(得分:0)
尝试再次运行:
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2