gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 11:40:36 25 4
gpt4 key购买 nike

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

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

dotnet-install: .NET Core SDK version 2.1.403 is already installed. dotnet-install: Adding to current process PATH:
/home/<!username!>/.dotnet. Note: This change will be visible only when sourcing script. dotnet-install: Installation finished successfully.

  1. 我愿意. ~/.profile重新加载配置文件,但即使在我运行 dotnet 之后我收到以下错误:

Command 'dotnet' not found, but can be installed with: 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 PATHecho $PATH .

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

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

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

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

Note: This change will be visible only when sourcing script.

如果你运行 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"

关于linux - dotnet-install.sh 不在 Ubuntu 上添加 dotnet 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53182688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com