lbr*_*him 4 linux bash ubuntu .net-core asp.net-core
我不是 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提供。
TLDR:curl | bash无法修改,PATH因此不会添加dotnet到您的PATH. 您需要dotnet手动添加到您的路径。添加export PATH="$PATH:/home/<!username!>/.dotnet"到您的~/.profile(或~/.bashrc等效的)并注销并重新登录。
长版:
当您在 shell 中运行命令(例如,bash)时,shell 会尝试在环境变量中列出的所有路径中查找具有名称的可执行文件PATH。PATH通常设置为类似/bin:/usr/bin. 因此,当您键入类似 的命令时curl,您的 shell 会同时查找/bin和查找/usr/bin名为curl.
您可以PATH通过执行env | grep PATH或来查看您的内容echo $PATH。
另一个重要的信息是环境变量如何传播。其实很简单:
这意味着您执行的程序不能修改另一个随机程序的环境变量。shell 实际上提供了一个特殊的命令export来设置它自己的环境变量(它以后创建的任何子进程都将继承这些)。
请注意步骤 1 结束时的输出。
注意:此更改仅在采购脚本时可见。
如果您运行curl | bash,它将bash作为子进程运行。该子进程无法修改启动它的程序(调用 的shell curl | bash)的环境变量。所以它不能修改PATH添加位置dotnet。它甚至(有帮助地)告诉你它不能。
在第 2 步中,您正在重新加载~/.profile. 但它是否包含任何要添加dotnet到的命令PATH?我不这么认为。我知道 dotnet-install.sh 脚本历史上没有添加它。你需要添加一行
export PATH="$PATH:/home/<!username!>/.dotnet"
Run Code Online (Sandbox Code Playgroud)
手动发送到您的~/.profile(或~/.bashrc,或等效的)。
实际上,我将其编写如下以使更改更易于其他用户使用:
export PATH="$PATH:$HOME/.dotnet"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6241 次 |
| 最近记录: |