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"