linux dotnet-install.sh未在Ubuntu上添加dotnet命令

9njqaruj  于 11个月前  发布在  Linux
关注(0)|答案(3)|浏览(142)

我不是一个Linux用户,所以这可能是一个简单的修复,但我已经尝试了以下:
1.首先,我使用命令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:安装成功完成。
1.我执行. ~/.profile来重新加载配置文件,但即使在此之后,当我运行dotnet时,我也会得到以下错误:
未找到命令“dotnet”,但可以使用以下命令安装:sudo snap install dotnet-sdk我希望脚本能够完成所有工作,并使dotnet`可用。

cgvd09ve

cgvd09ve1#

TLDR:curl | bash无法修改PATH,因此它不会将dotnet添加到您的PATH。您需要手动将dotnet添加到您的路径。将export PATH="$PATH:/home/<!username!>/.dotnet"添加到您的~/.profile(或~/.bashrc或等效产品),然后注销并重新登录。
长版本:
当您在shell中运行命令时,(例如,bash),shell会尝试在环境变量PATH中列出的所有路径中找到一个名称为PATH的可执行文件。PATH通常设置为类似/bin:/usr/bin的值。因此,当您键入类似curl的命令时,你的shell在/bin/usr/bin中查找一个名为curl的可执行文件。
您可以通过执行env | grep PATHecho $PATH来查看您的PATH是什么。
另一个重要的信息是环境变量是如何传播的。实际上,这很简单:
1.程序(或进程)只能修改自己的环境变量集。
1.进程创建的任何子进程都继承它的环境变量。
这意味着您执行的程序不能修改另一个随机程序的环境变量。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"

xxb16uws

xxb16uws2#

omajid的简单答案是:
如果你得到command not found错误,即使你安装了以下微软的官方页面,你想运行dotnet从命令行,然后运行以下命令行在终端。

echo "export PATH=\"\$PATH:$HOME/.dotnet\"" >> $HOME/.profile

字符串
现在退出会话并重新登录。之后,您应该能够通过命令行访问dotnet。
此外,您需要将已安装的.Net位置添加到~/.bashrc文件的末尾,如下所示:

echo "export DOTNET_ROOT=$HOME/.dotnet" >> $HOME/.bashrc


否则,即使你可以在终端中调用.Net,你也不能运行dot.net应用程序(即vs代码中的控制台应用程序)。

68bkxrlz

68bkxrlz3#

尝试再次运行此命令:

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

字符串

相关问题